On 1/6/12, Ronald S. Bultje <[email protected]> wrote: > 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, ...); > } >
Can I use ff_metadata_conv_ctx() ? _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
