[FFmpeg-devel] [PATCH] Add writing of vorbis comments to flac files

Justin Ruggles justin.ruggles
Sun Mar 14 19:24:29 CET 2010


Aurelien Jacobs wrote:

> On Sat, Mar 13, 2010 at 06:24:30PM +0100, James Darnley wrote:
>> On 13 March 2010 02:28, James Darnley <james.darnley at gmail.com> wrote:
>>> On 13 March 2010 01:00, Aurelien Jacobs <aurel at gnuage.org> wrote:
>>>> On Fri, Mar 12, 2010 at 02:19:54PM +0100, James Darnley wrote:
>>>>> On 12 March 2010 13:44, Aurelien Jacobs <aurel at gnuage.org> wrote:
>>>>>> You are not allowed to access to the content of AVMetadata *m by
>>>>>> yourself. You must not use anything else than what's described in
>>>>>> Public Metadata API (avformat.h).
>>>>>> Basically you should use av_metadata_get() to iterate over all the
>>>>>> elements.
>>>>>> Something like this should do the trick:
>>>>>>
>>>>>>  AVMetadataTag *t = NULL;
>>>>>>  while ((t = av_metadata_get(m, "", t, AV_METADATA_IGNORE_SUFFIX))) {
>>>>>>     /* do wathever you want with 't' */
>>>>>>  }
>>>>>>
>>>>>> Aurel
>>>>> Ew.  Why isn't there a cleaner method for getting the next tag?
>>>> What kind of cleaner method would you expect ?
>>>> Are you simply thinking about something like this :
>>>>
>>>>  #define av_metadata_next(m, t) \
>>>>          av_metadata_get(m, "", t, AV_METADATA_IGNORE_SUFFIX)
>>>>
>>>> I thougt about something like this while we were designing the API,
>>>> but it would only hide the real API... I'm not sure that it's a good
>>>> idea.
>>>>
>>>> Aurel
>>> Yeah, something like that.  This is used in 13 other places.  Another
>>> thing I discovered when making changes is that if I can't use m->count
>>> I need to count the number of tags over the while loop.  Sounds
>>> redundant to me.  Is making this value public (somehow) such a bad
>>> idea?
>>>
>> Changed patches attached.
> 
> The metadata API usage looks OK now.

So patch 1 looks good.

Baptiste, does patch 2 look ok for the ogg muxer?

-Justin



More information about the ffmpeg-devel mailing list