Hi,
On Fri, Jan 6, 2012 at 1:19 PM, Paul B Mahol <[email protected]> wrote:
> On 1/6/12, Ronald S. Bultje <[email protected]> wrote:
>> On Fri, Jan 6, 2012 at 12:00 PM, Paul B Mahol <[email protected]> wrote:
>>> On 1/6/12, Ronald S. Bultje <[email protected]> wrote:
>>>> On Fri, Jan 6, 2012 at 10:08 AM, Paul B Mahol <[email protected]> wrote:
>>>>> On 1/6/12, Paul B Mahol <[email protected]> wrote:
>>>>>> On 1/6/12, Ronald S. Bultje <[email protected]> wrote:
>>>>>>> On Fri, Jan 6, 2012 at 9:18 AM, Paul B Mahol <[email protected]> wrote:
>>>>>>>> ---
>>>>>>>> libavformat/vqf.c | 42 ++++++++++++++++++++++++++++++++++++++++++
>>>>>>>> 1 files changed, 42 insertions(+), 0 deletions(-)
>>>>>>>>
>>>>>>>> diff --git a/libavformat/vqf.c b/libavformat/vqf.c
>>>>>>>> index 3e79299..608ecbd 100644
>>>>>>>> --- a/libavformat/vqf.c
>>>>>>>> +++ b/libavformat/vqf.c
>>>>>>>> @@ -140,6 +140,48 @@ static int vqf_read_header(AVFormatContext *s,
>>>>>>>> AVFormatParameters *ap)
>>>>>>>> case MKTAG('G','E','N','R'):
>>>>>>>> add_metadata(s, "genre" , len, header_size);
>>>>>>>> break;
>>>>>>>> + case MKTAG('L','Y','R','C'):
>>>>>>>> + add_metadata(s, "lyrics" , len, header_size);
>>>>>>>> + break;
>>>>>>>> + case MKTAG('G','U','I','D'):
>>>>>>>> + add_metadata(s, "GUID" , len, header_size);
>>>>>>>> + break;
>>>>>>>> + case MKTAG('I','S','R','C'):
>>>>>>>> + add_metadata(s, "ISRC" , len, header_size);
>>>>>>>> + break;
>>>>>>>
>>>>>>> I'm probably being a pain, but wouldn't a nice loop over a table
>>>>>>> matching fourcc-tag to metadata-string-tag lead to much less code?
>>>>>>
>>>>>> Probably, patch on hold.
>>>>>>
>>>>>
>>>>> This would need more work with no much gain IMHO.
>>>>
>>>> Not that much work:
>>>>
>>>> static const struct {
>>>> uint32_t fcc;
>>>> char *str;
>>>> } meta_conv_table[] = {
>>>> { MKTAG(...), "..." },
>>>> ..,
>>>> { 0, NULL },
>>>> };
>>>
>>> What about using AVMetadataConv from riff.h?
>>
>> It's string-string vs. fourcc-string, so you'll need to convert from a
>> fcc to a string. I'm fine with it if you prefer that.
>>
>> Another option is to add my new fcc/string conversion utility
>> function/struct to metadata.h. Choose whichever you prefer.
>
> I more interested in adding tags as they are and then let known tags
> get converted
> like in avi demuxer.
> Non-converted tags (chunks which may be not be tags at all) would be
> still displayed. Currenty they are all ignored.
for (n = 0; meta_conv_table[n].fcc != 0; n++) {
if (meta_conv_table[n].fcc == switch_fcc) {
set_metadata(meta_conv_table[n].str, ...);
break;
}
}
if (!meta_conv_table[n].fcc) {
char str[5];
AV_WL32(&str, switch_fcc);
str[4] = 0;
set_metadata(str, ...);
}
Ronald
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel