[FFmpeg-cvslog] r25646 - trunk/ffmpeg.c
stefano
subversion
Tue Nov 2 19:40:59 CET 2010
Author: stefano
Date: Tue Nov 2 19:40:59 2010
New Revision: 25646
Log:
Fix timestamp computation when the timebase changes during filtering.
The timestamps for all the buffered frames are scaled against
AV_TIME_BASE_Q, and need to be scaled back to AV_TIME_BASE_Q when they
are extracted from the filterchain.
Modified:
trunk/ffmpeg.c
Modified: trunk/ffmpeg.c
==============================================================================
--- trunk/ffmpeg.c Tue Nov 2 19:40:55 2010 (r25645)
+++ trunk/ffmpeg.c Tue Nov 2 19:40:59 2010 (r25646)
@@ -352,8 +352,7 @@ static int configure_filters(AVInputStre
return ret;
snprintf(args, 255, "%d:%d:%d:%d:%d", ist->st->codec->width,
- ist->st->codec->height, ist->st->codec->pix_fmt,
- ist->st->time_base.num, ist->st->time_base.den);
+ ist->st->codec->height, ist->st->codec->pix_fmt, 1, AV_TIME_BASE);
if ((ret = avfilter_init_filter(ist->input_video_filter, args, NULL)) < 0)
return ret;
if ((ret = avfilter_init_filter(ist->output_video_filter, NULL, &ffsink_ctx)) < 0)
@@ -1618,7 +1617,7 @@ static int output_packet(AVInputStream *
if (ist->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && ist->output_video_filter)
get_filtered_video_frame(ist->output_video_filter, &picture, &ist->picref, &ist_pts_tb);
if (ist->picref)
- ist->pts = ist->picref->pts;
+ ist->pts = av_rescale_q(ist->picref->pts, ist_pts_tb, AV_TIME_BASE_Q);
#endif
for(i=0;i<nb_ostreams;i++) {
int frame_size;
More information about the ffmpeg-cvslog
mailing list