From 5ed1d7279298cfc218a9b989cad4d1b97a066e8d Mon Sep 17 00:00:00 2001 From: James Almer Date: Wed, 20 Aug 2025 13:03:21 -0300 Subject: [PATCH] avcodec/decode: remove Exif Orientation tag after adding it as display matrix Don't replace it with a conflicting value. Signed-off-by: James Almer --- libavcodec/decode.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 1dbb20de0e..b0ce94cadd 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -2290,24 +2290,22 @@ static int exif_attach_ifd(AVCodecContext *avctx, AVFrame *frame, const AVExifMe if (ret < 0) { av_log(avctx, AV_LOG_WARNING, "unable to attach displaymatrix from EXIF\n"); } else { - const AVExifEntry *cloned_orient; cloned = av_exif_clone_ifd(ifd); if (!cloned) { ret = AVERROR(ENOMEM); goto end; } - // will have the same offset in the clone as in the original - cloned_orient = &cloned->entries[orient - ifd->entries]; - cloned_orient->value.uint[0] = 1; + av_exif_remove_entry(avctx, cloned, orient->id, 0); + ifd = cloned; } } - ret = av_exif_ifd_to_dict(avctx, cloned ? cloned : ifd, &frame->metadata); + ret = av_exif_ifd_to_dict(avctx, ifd, &frame->metadata); if (ret < 0) goto end; if (cloned || !og) { - ret = av_exif_write(avctx, cloned ? cloned : ifd, &written, AV_EXIF_TIFF_HEADER); + ret = av_exif_write(avctx, ifd, &written, AV_EXIF_TIFF_HEADER); if (ret < 0) goto end; }