projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix for title color in old edl xml, fix default edit popup color value
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
ffmpeg.C
diff --git
a/cinelerra-5.1/cinelerra/ffmpeg.C
b/cinelerra-5.1/cinelerra/ffmpeg.C
index 65e0c780e793cfaa82b04cd3860cafbe8cb98066..d13cf8b32f0aeccb9f2296e9435aff66950f7d6a 100644
(file)
--- a/
cinelerra-5.1/cinelerra/ffmpeg.C
+++ b/
cinelerra-5.1/cinelerra/ffmpeg.C
@@
-48,6
+48,9
@@
#define AUDIO_REFILL_THRESH 0x1000
#define AUDIO_MIN_FRAME_SZ 128
#define AUDIO_REFILL_THRESH 0x1000
#define AUDIO_MIN_FRAME_SZ 128
+#define FF_ESTM_TIMES 0x0001
+#define FF_BAD_TIMES 0x0002
+
Mutex FFMPEG::fflock("FFMPEG::fflock");
static void ff_err(int ret, const char *fmt, ...)
Mutex FFMPEG::fflock("FFMPEG::fflock");
static void ff_err(int ret, const char *fmt, ...)
@@
-481,7
+484,7
@@
int FFStream::write_packet(FFPacket &pkt)
int FFStream::encode_frame(AVFrame *frame)
{
int pkts = 0, ret = 0;
int FFStream::encode_frame(AVFrame *frame)
{
int pkts = 0, ret = 0;
- for( int retry=
100
; --retry>=0; ) {
+ for( int retry=
MAX_RETRY
; --retry>=0; ) {
if( frame || !pkts )
ret = avcodec_send_frame(avctx, frame);
if( !ret && frame ) return pkts;
if( frame || !pkts )
ret = avcodec_send_frame(avctx, frame);
if( !ret && frame ) return pkts;
@@
-1325,6
+1328,7
@@
FFMPEG::FFMPEG(FileBase *file_base)
opt_duration = -1;
opt_video_filter = 0;
opt_audio_filter = 0;
opt_duration = -1;
opt_video_filter = 0;
opt_audio_filter = 0;
+ fflags = 0;
char option_path[BCTEXTLEN];
set_option_path(option_path, "%s", "ffmpeg.opts");
read_options(option_path, opts);
char option_path[BCTEXTLEN];
set_option_path(option_path, "%s", "ffmpeg.opts");
read_options(option_path, opts);
@@
-1999,10
+2003,10
@@
int FFMPEG::open_decoder()
estimated = 1;
}
}
estimated = 1;
}
}
- static int notified = 0;
- if( !notified && estimated ) {
- notified = 1;
-
printf("FFMPEG::open_decoder: some stream times estimated\n"
);
+ if( estimated && !(fflags & FF_ESTM_TIMES) ) {
+ fflags |= FF_ESTM_TIMES;
+ printf("FFMPEG::open_decoder: some stream times estimated: %s\n",
+
fmt_ctx->url
);
}
ff_lock("FFMPEG::open_decoder");
}
ff_lock("FFMPEG::open_decoder");
@@
-2058,8
+2062,11
@@
int FFMPEG::open_decoder()
default: break;
}
}
default: break;
}
}
- if( bad_time )
- printf("FFMPEG::open_decoder: some stream have bad times\n");
+ if( bad_time && !(fflags & FF_BAD_TIMES) ) {
+ fflags |= FF_BAD_TIMES;
+ printf("FFMPEG::open_decoder: some stream have bad times: %s\n",
+ fmt_ctx->url);
+ }
ff_unlock();
return ret < 0 ? -1 : 0;
}
ff_unlock();
return ret < 0 ? -1 : 0;
}