[FFmpeg-devel] [PATCH 2/4] Change the PTS time base to AV_TIME_BASE before to process a frame in the filter chain, and change it back to the stream time base in the filtered frame.

Stefano Sabatini stefano.sabatini-lala
Wed Jun 9 00:17:27 CEST 2010


This is required, since all the frames in the filterchain are supposed
to use a time base of AV_TIME_BASE.
---
 ffplay.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index 129cd28..dd3cba0 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1678,7 +1678,7 @@ static int input_request_frame(AVFilterLink *link)
     }
     av_free_packet(&pkt);
 
-    picref->pts = pts;
+    picref->pts = av_rescale_q(pkt.pts, priv->is->video_st->time_base, AV_TIME_BASE_Q);
     picref->pos = pkt.pos;
     picref->pixel_aspect = priv->is->video_st->codec->sample_aspect_ratio;
     avfilter_start_frame(link, picref);
@@ -1838,6 +1838,7 @@ static int video_thread(void *arg)
             SDL_Delay(10);
 #if CONFIG_AVFILTER
         ret = get_filtered_video_frame(filt_out, frame, &pts_int, &pos);
+        pts_int = av_rescale_q(pts_int, AV_TIME_BASE_Q, is->video_st->time_base);
 #else
         ret = get_video_frame(is, frame, &pts_int, &pkt);
 #endif
-- 
1.7.1




More information about the ffmpeg-devel mailing list