[FFmpeg-devel] [PATCH] avformat/mov: export xml metadata
Paul B Mahol
onemda at gmail.com
Wed Feb 1 14:21:18 EET 2017
On 2/1/17, wm4 <nfxjfg at googlemail.com> wrote:
> On Wed, 1 Feb 2017 12:50:51 +0100
> Paul B Mahol <onemda at gmail.com> wrote:
>
>> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>> ---
>> libavformat/mov.c | 25 +++++++++++++++++++++++++
>> 1 file changed, 25 insertions(+)
>>
>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>> index 9ae4f8c..75e1c9c60 100644
>> --- a/libavformat/mov.c
>> +++ b/libavformat/mov.c
>> @@ -3764,6 +3764,25 @@ static int mov_read_keys(MOVContext *c, AVIOContext
>> *pb, MOVAtom atom)
>> return 0;
>> }
>>
>> +static int mov_read_xml(MOVContext *c, AVIOContext *pb, MOVAtom atom)
>> +{
>> + uint8_t *xml;
>> +
>> + if (atom.size < 5)
>> + return 0;
>> +
>> + avio_skip(pb, 4);
>> + xml = av_calloc(atom.size - 4 + 1, sizeof(uint8_t));
>> + if (!xml)
>> + return AVERROR(ENOMEM);
>> +
>> + avio_read(pb, xml, atom.size - 4);
>> + av_dict_set(&c->fc->metadata, "xml", xml, 0);
>> + av_free(xml);
>> +
>> + return 0;
>> +}
>> +
>> static int mov_read_custom(MOVContext *c, AVIOContext *pb, MOVAtom atom)
>> {
>> int64_t end = avio_tell(pb) + atom.size;
>> @@ -5280,6 +5299,12 @@ static int mov_read_default(MOVContext *c,
>> AVIOContext *pb, MOVAtom atom)
>> parse = mov_read_keys;
>> }
>>
>> + if (!parse &&
>> + atom.type == MKTAG('m','e','t','a') &&
>> + a.type == MKTAG('x','m','l',' ')) {
>> + parse = mov_read_xml;
>> + }
>> +
>> if (!parse) { /* skip leaf atoms data */
>> avio_skip(pb, a.size);
>> } else {
>
> We had this discussion recently: the metadata AVDictionary should
> probably only contain real tags, not other information that's contained
> in the format but for which libavformat has no good way to export yet.
>
> There needs to be a concept for distinguishing user-visible tags and
> other data.
>
> (You don't want to show a xml dump in a GUI that happens to use ffmpeg,
> do you?)
You are being just rude, and do not want FFmpeg to improve.
More information about the ffmpeg-devel
mailing list