OSDN Git Service

ffplay: factorize code calling output_packet() in video_thread()
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Fri, 22 Apr 2011 09:09:48 +0000 (11:09 +0200)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Sat, 23 Apr 2011 10:49:04 +0000 (12:49 +0200)
Slightly simplify.

Signed-off-by: Stefano Sabatini <stefano.sabatini-lala@poste.it>
ffplay.c

index f97d97f..eb08f36 100644 (file)
--- a/ffplay.c
+++ b/ffplay.c
@@ -1803,14 +1803,13 @@ static int video_thread(void *arg)
 {
     VideoState *is = arg;
     AVFrame *frame= avcodec_alloc_frame();
-    int64_t pts_int;
+    int64_t pts_int, pos;
     double pts;
     int ret;
 
 #if CONFIG_AVFILTER
     AVFilterGraph *graph = avfilter_graph_alloc();
     AVFilterContext *filt_out = NULL;
-    int64_t pos;
 
     if ((ret = configure_video_filters(graph, is, vfilters)) < 0)
         goto the_end;
@@ -1844,6 +1843,7 @@ static int video_thread(void *arg)
         }
 #else
         ret = get_video_frame(is, frame, &pts_int, &pkt);
+        pos = pkt.pos;
 #endif
 
         if (ret < 0) goto the_end;
@@ -1853,10 +1853,8 @@ static int video_thread(void *arg)
 
         pts = pts_int*av_q2d(is->video_st->time_base);
 
-#if CONFIG_AVFILTER
         ret = output_picture(is, frame, pts, pos);
-#else
-        ret = output_picture(is, frame, pts,  pkt.pos);
+#if !CONFIG_AVFILTER
         av_free_packet(&pkt);
 #endif
         if (ret < 0)