avformat/avidec: use new EXIF metadata API instead of avpriv_

This commit switches avidec to use the new metadata API exposed by
the previous commit instead of relying on the existing avipriv_ function
exposed by lavc.

Signed-off-by: Leo Izen <leo.izen@gmail.com>
This commit is contained in:
Leo Izen
2025-03-11 12:15:14 -04:00
parent ad77345a5d
commit ba2ea285e0

View File

@@ -427,15 +427,21 @@ static int avi_extract_stream_metadata(AVFormatContext *s, AVStream *st)
tag = bytestream2_get_le32(&gb); tag = bytestream2_get_le32(&gb);
switch (tag) { switch (tag) {
case MKTAG('A', 'V', 'I', 'F'): case MKTAG('A', 'V', 'I', 'F'): {
AVExifMetadata ifd = { 0 };
int ret;
// skip 4 byte padding // skip 4 byte padding
bytestream2_skip(&gb, 4); bytestream2_skip(&gb, 4);
offset = bytestream2_tell(&gb); offset = bytestream2_tell(&gb);
// decode EXIF tags from IFD, AVI is always little-endian // decode EXIF tags from IFD, AVI is always little-endian
return avpriv_exif_decode_ifd(s, data + offset, data_size - offset, ret = av_exif_parse_buffer(s, data + offset, data_size - offset, &ifd, AV_EXIF_ASSUME_LE);
1, 0, &st->metadata); if (ret < 0)
break; return ret;
ret = av_exif_ifd_to_dict(s, &ifd, &st->metadata);
av_exif_free(&ifd);
return ret;
}
case MKTAG('C', 'A', 'S', 'I'): case MKTAG('C', 'A', 'S', 'I'):
avpriv_request_sample(s, "RIFF stream data tag type CASI (%u)", tag); avpriv_request_sample(s, "RIFF stream data tag type CASI (%u)", tag);
break; break;