From ba2ea285e0f270a0a885b414cafaace6a89b9a91 Mon Sep 17 00:00:00 2001 From: Leo Izen Date: Tue, 11 Mar 2025 12:15:14 -0400 Subject: [PATCH] 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 --- libavformat/avidec.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/libavformat/avidec.c b/libavformat/avidec.c index 81a0ae31ba..8fb6931e5d 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -427,15 +427,21 @@ static int avi_extract_stream_metadata(AVFormatContext *s, AVStream *st) tag = bytestream2_get_le32(&gb); switch (tag) { - case MKTAG('A', 'V', 'I', 'F'): + case MKTAG('A', 'V', 'I', 'F'): { + AVExifMetadata ifd = { 0 }; + int ret; // skip 4 byte padding bytestream2_skip(&gb, 4); offset = bytestream2_tell(&gb); // decode EXIF tags from IFD, AVI is always little-endian - return avpriv_exif_decode_ifd(s, data + offset, data_size - offset, - 1, 0, &st->metadata); - break; + ret = av_exif_parse_buffer(s, data + offset, data_size - offset, &ifd, AV_EXIF_ASSUME_LE); + if (ret < 0) + return ret; + ret = av_exif_ifd_to_dict(s, &ifd, &st->metadata); + av_exif_free(&ifd); + return ret; + } case MKTAG('C', 'A', 'S', 'I'): avpriv_request_sample(s, "RIFF stream data tag type CASI (%u)", tag); break;