[SCM] libav/experimental: Return an error when get_buffer reads none or only partial data instead of returning packets with uninitialized data. Returning partial packets as for other demuxers is problematice due to packet scrambling and thus is not done.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:20:01 UTC 2013


The following commit has been merged in the experimental branch:
commit 4172951ba7e5e8450d2b081fa9516454fdfa1329
Author: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
Date:   Sat Dec 11 21:41:47 2010 +0000

    Return an error when get_buffer reads none or only partial data instead
    of returning packets with uninitialized data.
    Returning partial packets as for other demuxers is problematice due to
    packet scrambling and thus is not done.
    
    Originally committed as revision 25931 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/asfdec.c b/libavformat/asfdec.c
index 6918e20..843b109 100644
--- a/libavformat/asfdec.c
+++ b/libavformat/asfdec.c
@@ -848,6 +848,7 @@ static int ff_asf_parse_packet(AVFormatContext *s, ByteIOContext *pb, AVPacket *
     ASFContext *asf = s->priv_data;
     ASFStream *asf_st = 0;
     for (;;) {
+        int ret;
         if(url_feof(pb))
             return AVERROR_EOF;
         if (asf->packet_size_left < FRAME_HEADER_SIZE
@@ -950,8 +951,10 @@ static int ff_asf_parse_packet(AVFormatContext *s, ByteIOContext *pb, AVPacket *
             continue;
         }
 
-        get_buffer(pb, asf_st->pkt.data + asf->packet_frag_offset,
-                   asf->packet_frag_size);
+        ret = get_buffer(pb, asf_st->pkt.data + asf->packet_frag_offset,
+                         asf->packet_frag_size);
+        if (ret != asf->packet_frag_size)
+            return ret >= 0 ? AVERROR_EOF : ret;
         if (s->key && s->keylen == 20)
             ff_asfcrypt_dec(s->key, asf_st->pkt.data + asf->packet_frag_offset,
                             asf->packet_frag_size);

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list