[Fwd: Re: [Ffmpeg-devel] DV Metadata Patch]

Brian Brice bbrice
Wed Aug 23 06:44:31 CEST 2006

Brian Brice wrote:
> Roman Shaposhnik wrote:
>> On Wed, Jul 26, 2006 at 08:04:51PM -0500, Brian Brice wrote:
>>> > I've been working on getting metadata for DV encoded frames written
>>> > properly within the frame's header.  It seems as if lavf/dv.c's
>>> > dv_format_frame() is the function that can perform this task, except
>>> > it should be done within the codec level rather than output format.
>>   Nice try ;-)
>>> > The patch I've attached is pretty much moving those functions from the
>>> > muxer side to the codec.  I'm a bit stuck on the organization that you
>>> > guys follow though.  This code calls lavf/cutils.c's brktimegm().  I
>>> > copied this function from lavf to lavc just as a temporary "get it to
>>> > work" solution.  The functions in lavf/cutils.c, couldn't they go into
>>> > lavu?
>>   That's the trouble -- some of these functions are truly muxer related
>> and *can not* be moved to the codec level successfully. Everything that
>> deals with date/time/#frames falls into that category.
>>> > Anyway, I'm sending this patch to you guys for advice on how to 
>>> organize
>>> > this "move" more efficiently within the library.  Thanks!
>>   I'll be the one to approve it. So far you're on the right track,
>> however:
>>     1. It seems that the BIG UGLY TABLES (tm) are no longer needed.
>>      I put them there for testing purposes -- but haven't had
>>      a single complaint yet. Please consider folding them      into 
>> nice if-then-else code.
>>   2. The following PACKs should remain in libavformat/dv.c or at least
>>      not be fully set:
>>            dv_timecode             dv_audio_source
>>            dv_audio_control
>>            dv_audio_recdate
>>            dv_audio_rectime
>>   3. The following PACKs *theoretically* can be set in 
>> libavcodec/dv.c, but      you might find it problematic to convince 
>> security minded folks to do that:
>>           dv_video_recdate
>>           dv_video_rectime
> Sorry for taking a while.  Here's a patch that will write preliminary
> metadata within DV frames on the codec level.  This is useful for when
> DV is encapsulate in AVI or QuickTime files.  It writes the following
> sections when encoding a video frame:
>     dv_header525
>     dv_header625
>     dv_video_source
>     dv_video_control
> The remaining sections are left to the DV DIF output format to fill in.
> Some functionality was taken out of lavf/dv.c because it'll be done in
> the codec instead.  It also makes sure not to overwrite what the codec
> has set.
> Some types were moved to lavc/dvdata.h because they're shared by both
> lavc and lavf.
> I'm actually not sure what those BIG UGLY TABLES (tm) are necessarily
> for, so I left them as is.  Sorry, Roman. :-P

OK, sorry, I messed something up but fixed it.  In raw DV, I had
forgotten to modify dv_inject_video to copy header metadata that is
set in the codec rather than skip over it.  New patch is attached.

Brian Brice
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: dv-metadata.patch
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20060822/974a87b4/attachment.asc>

More information about the ffmpeg-devel mailing list