[SCM] libav/experimental: mov_read_packet: extract code that searches for the stream/sample to demux next into a separate function.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:48:12 UTC 2013


The following commit has been merged in the experimental branch:
commit 5dc5c43bdaf3f318000c4f1ead024c09ab4a337e
Author: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
Date:   Wed Jun 24 08:57:53 2009 +0000

    mov_read_packet: extract code that searches for the stream/sample to demux next
    into a separate function.
    
    Originally committed as revision 19263 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 3b9cc26..1ced244 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2055,15 +2055,11 @@ static int mov_read_header(AVFormatContext *s, AVFormatParameters *ap)
     return 0;
 }
 
-static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
+static AVIndexEntry *mov_find_next_sample(AVFormatContext *s, AVStream **st)
 {
-    MOVContext *mov = s->priv_data;
-    MOVStreamContext *sc = 0;
-    AVIndexEntry *sample = 0;
-    AVStream *st = NULL;
+    AVIndexEntry *sample = NULL;
     int64_t best_dts = INT64_MAX;
-    int i, ret;
- retry:
+    int i;
     for (i = 0; i < s->nb_streams; i++) {
         AVStream *avst = s->streams[i];
         MOVStreamContext *msc = avst->priv_data;
@@ -2078,10 +2074,22 @@ static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
                   (FFABS(best_dts - dts) > AV_TIME_BASE && dts < best_dts)))))) {
                 sample = current_sample;
                 best_dts = dts;
-                st = avst;
+                *st = avst;
             }
         }
     }
+    return sample;
+}
+
+static int mov_read_packet(AVFormatContext *s, AVPacket *pkt)
+{
+    MOVContext *mov = s->priv_data;
+    MOVStreamContext *sc;
+    AVIndexEntry *sample;
+    AVStream *st = NULL;
+    int ret;
+ retry:
+    sample = mov_find_next_sample(s, &st);
     if (!sample) {
         mov->found_mdat = 0;
         if (!url_is_streamed(s->pb) ||

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list