[SCM] libav/experimental: Attempt seeking to write EBML master sizes even if streamed

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:02:50 UTC 2013


The following commit has been merged in the experimental branch:
commit 2529bb3019a027c39d6ba7de3e7d4c7a49bdf384
Author: David Conrad <lessen42 at gmail.com>
Date:   Thu Mar 4 08:53:00 2010 +0000

    Attempt seeking to write EBML master sizes even if streamed
    
    Most EBML masters are much smaller than IO_BUFFER_SIZE and thus the size
    can be updated. This makes parsing the resulting files easier.
    
    Originally committed as revision 22197 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index ad41893..0f74ad3 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -218,11 +218,8 @@ static void end_ebml_master(ByteIOContext *pb, ebml_master master)
 {
     int64_t pos = url_ftell(pb);
 
-    // leave the unknown size for masters when streaming
-    if (url_is_streamed(pb))
+    if (url_fseek(pb, master.pos - master.sizebytes, SEEK_SET) < 0)
         return;
-
-    url_fseek(pb, master.pos - master.sizebytes, SEEK_SET);
     put_ebml_num(pb, pos - master.pos, master.sizebytes);
     url_fseek(pb, pos, SEEK_SET);
 }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list