[FFmpeg-devel] [PATCH] AVI metadata retrieval improvements

Michael Niedermayer michaelni at gmx.at
Fri Mar 21 20:16:14 CET 2014

On Fri, Mar 21, 2014 at 05:29:16PM +0100, Thilo Borgmann wrote:
> Am 21.03.14 15:30, schrieb Michael Niedermayer:
> > On Thu, Mar 20, 2014 at 11:12:27PM +0100, Thilo Borgmann wrote:
> >> Am 04.03.14 17:16, schrieb gregory.wolfe at kodakalaris.com:
> >>> This is the second of two changes I've made as part of our upgrade to
> >>> the latest FFmpeg development branch.
> >>> 
> >>> This patch enhances two aspects of metadata retrieval from AVI files.
> >>> I've attached before/after command line output from ffmpeg for each
> >>> modification.  Test video files that can be used to generate the
> >>> before/after output have been uploaded to the FFmpeg FTP server.
> >>> 
> >>> 
> >>> Patched file:  libavformat/avidec.c
> >>> Description (from commit message):
> >>> 
> >>> Added function avi_extract_stream_metadata().  Some cameras (e.g., Fuji)
> >>> store stream metadata following the "strd" stream data tag.  Currently,
> >>> avi_read_header() calls ff_get_extradata() to read and save this data in
> >>> the codec's "extradata" slot.  This new function extracts metadata from
> >>> "extradata" by first looking for the AVIF tag, then extracting metadata
> >>> from the EXIF tags which follow it.
> >> 
> >> I've rewritten almost everything to use existing EXIF functions.
> >> 
> >> Patch attached, but there are 2 issues I need advise for:
> >> 
> >> a) Current EXIF is in lavc only and relies on lavc/tiff.h and lavc/bytestream,
> >> so these have to be moved (to lavu)?
> > 
> > using just a header with macros/inline functions is fine
> > using ff_* functions from other libs is not as ff_ is not exported
> > using avpriv_* functions in lavf from lavc is ok but the ABI/API
> > of such functions is then part of the libavcodec ABI/API, non public
> > but still, so care has to be taken with future changes to these
> > functions so their ABI/API isnt broken
> Ok these are the rules, but what should I do since there are ff_* functions
> used? My guess was to move to libavu because metadata decoding seems to be
> needed by formats and codecs, but I don't know if there is a better solution? Or
> make exif tag decoding a public av_* funtion in lavc?

i suggest to rename the functions to avpriv_*
and make sure their ABI/API is future proof

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The misfortune of the wise is better than the prosperity of the fool.
-- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20140321/a35c9ce4/attachment.asc>

More information about the ffmpeg-devel mailing list