On 9/1/20, Anton Khirnov <[email protected]> wrote:
> Quoting Paul B Mahol (2020-08-31 14:20:11)
>> Support parsing 'cue ' and 'adtl' chunks.
>>
>> Signed-off-by: Paul B Mahol <[email protected]>
>> ---
>> libavformat/wavdec.c | 50 ++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 50 insertions(+)
>
> Looks ok beyond some nits.
>
>>
>> diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
>> index 5b3c481421..545f04c742 100644
>> --- a/libavformat/wavdec.c
>> +++ b/libavformat/wavdec.c
>> @@ -500,6 +500,7 @@ static int wav_read_header(AVFormatContext *s)
>> wav->smv_cur_pt = 0;
>> goto break_loop;
>> case MKTAG('L', 'I', 'S', 'T'):
>> + case MKTAG('l', 'i', 's', 't'):
>> if (size < 4) {
>> av_log(s, AV_LOG_ERROR, "too short LIST tag\n");
>> return AVERROR_INVALIDDATA;
>> @@ -507,6 +508,37 @@ static int wav_read_header(AVFormatContext *s)
>> switch (avio_rl32(pb)) {
>> case MKTAG('I', 'N', 'F', 'O'):
>> ff_read_riff_info(s, size - 4);
>> + break;
>> + case MKTAG('a', 'd', 't', 'l'):
>> + if (s->nb_chapters > 0) {
>> + while (avio_tell(pb) < next_tag_ofs) {
>> + AVChapter *chapter = NULL;
>> + char cue_label[512];
>> + unsigned id, sub_size;
>> +
>> + if (avio_feof(pb))
>> + break;
>
> nit: would look better in the loop condition
Done.
>
>> + if (avio_rl32(pb) != MKTAG('l', 'a', 'b', 'l'))
>> + break;
>> +
>> + sub_size = avio_rl32(pb);
>> + if (sub_size < 5)
>> + break;
>> + id = avio_rl32(pb);
>> + avio_get_str(pb, sub_size - 4, cue_label,
>> sizeof(cue_label));
>> + avio_skip(pb, avio_tell(pb) & 1);
>> +
>> + for (int i = 0; i < s->nb_chapters; i++) {
>> + if (s->chapters[i]->id == id) {
>> + chapter = s->chapters[i];
>> + break;
>> + }
>> + }
>> + if (chapter)
>> + av_dict_set(&chapter->metadata, "title",
>> cue_label, 0);
>
> nit: could be merged into the loop above
Done.
Also fixed size check to not ignore 4 read bytes, and applied.
Thanks.
>
> --
> Anton Khirnov
> _______________________________________________
> ffmpeg-devel mailing list
> [email protected]
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> [email protected] with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".