[Ffmpeg-devel] [PATCH] ASF Stream bitrate GUID parsing....

Michael Niedermayer michaelni
Wed Jan 10 02:59:12 CET 2007


Hi

On Tue, Jan 09, 2007 at 06:19:13PM -0600, Ryan Martell wrote:
> 
> On Jan 9, 2007, at 5:55 PM, Michael Niedermayer wrote:
> 
> >Hi
> >
> >On Fri, Jan 05, 2007 at 01:42:40PM -0600, Ryan Martell wrote:
> >>Hi--
> >>
> >>On Jan 4, 2007, at 9:27 PM, Ryan Martell wrote:
> >>
> >>>Hi...
> >>>
> >>>On Jan 4, 2007, at 6:59 PM, Michael Niedermayer wrote:
> >>>
> >>>>Hi
> >>>>
> >>>>On Thu, Jan 04, 2007 at 04:45:22PM -0600, Ryan Martell wrote:
> >>>>>Hi--
> >>>>>
> >>>>>To support my native mms code, I need to parse the bitrate GUID
> >>>>>header of the ASF file if it's present.  This small patch adds  
> >>>>>that
> >>>>>information to the ASFContext.
> >>>>>
> >>>>>A couple of quick notes:
> >>>>>
> >>>>>1) The indentation is actually correct now (the block below is
> >>>>>indented incorrectly) on the lines:
> >>>>>-       } else if (!memcmp(&g, &extended_content_header, sizeof
> >>>>>(GUID))) {
> >>>>>+        } else if (!memcmp(&g, &stream_bitrate_guid, sizeof
> >>>>>(GUID))) {
> >>>>>
> >>>>>2) I removed:
> >>>>>ASFStream streams[128];     /* it's max number and it's not that
> >>>>>big */
> >>>>>>from the ASFContext, as it was unused (and big).  I replaced it
> >>>>>>with
> >>>>>a 128 uint32_t array, which seems fair.
> >>
> >>Attached is another patch; I couldn't remove streams, as it was used
> >>by asf_enc.c, and I the deps aren't quite right, so I didn't catch it
> >>until I did a full rebuild.
> >[...]
> >>Index: libavformat/asf.h
> >>===================================================================
> >>--- libavformat/asf.h	(revision 7407)
> >>+++ libavformat/asf.h	(working copy)
> >>@@ -85,6 +85,7 @@
> >>     int is_streamed;
> >>     int asfid2avid[128];        /* conversion table from asf ID 2  
> >>AVStream ID */
> >>     ASFStream streams[128];     /* it's max number and it's not  
> >>that big */
> >>+    uint32_t stream_bitrates[128]; /* The above streams is used  
> >>by asf_enc.c; my bad. this is a fair trade (and much smaller) */
> >>     /* non streamed additonnal info */
> >
> >exporting the bitrates like this makes them invissible to the user
> >application so the user app cannot setup AVStream.discard
> >
> >AVStream.codec.bit_rate seems like its the more ideal place where this
> >could be stored
> 
> Okay, I can echo them into there, but the bitrate properties come  
> before the streams are setup, so I will still need a temporary place  
> to hold them.
> 
> I can either leave this like it is, but then when the streams are  
> setup, copy the bitrate parameters from this location int  
> AVStream.codec.bit_rate if they have been set.
> 
> Alternatively I would need an array of 128 ints in asf_read_header to  
> store them on the stack.  Either one works for me.

stack is better as its lifetime is shorter there 512byte more space not
big but still ...

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

No human being will ever know the Truth, for even if they happen to say it
by chance, they would not even known they had done so. -- Xenophanes
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070110/106256aa/attachment.pgp>



More information about the ffmpeg-devel mailing list