aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgnattu via ffmpeg-devel <ffmpeg-devel@ffmpeg.org>2024-10-15 17:41:35 +0800
committerAnton Khirnov <anton@khirnov.net>2024-11-28 14:15:50 +0100
commit248832dd5b799a95bcb1beb4d65a9ad5071a06a8 (patch)
tree382cd4b99b44259a31f391ae819e9e80915ed4ef
parentbc991ca048b6c5d931d705bb900b0a165233bfdd (diff)
downloadffmpeg-248832dd5b799a95bcb1beb4d65a9ad5071a06a8.tar.gz
avcodec/bsf/dovi_rpu: remove EL when stripping dovi metadata
When RPU is removed EL should also be removed. This only applies to HEVC as AV1 based Profile 10 does not support EL at all. Signed-off-by: Gnattu OC <gnattuoc@me.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r--libavcodec/bsf/dovi_rpu.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/bsf/dovi_rpu.c b/libavcodec/bsf/dovi_rpu.c
index ae04d16360..5dccd4bc7e 100644
--- a/libavcodec/bsf/dovi_rpu.c
+++ b/libavcodec/bsf/dovi_rpu.c
@@ -84,7 +84,8 @@ static int dovi_rpu_update_fragment_hevc(AVBSFContext *bsf, AVPacket *pkt,
uint8_t *rpu = NULL;
int rpu_size, ret;
- if (!nal || nal->type != HEVC_NAL_UNSPEC62)
+ // HEVC_NAL_UNSPEC62 is Dolby Vision PRU and HEVC_NAL_UNSPEC63 is Dolby Vision EL
+ if (!nal || (nal->type != HEVC_NAL_UNSPEC62 && nal->type != HEVC_NAL_UNSPEC63))
return 0;
if (s->strip) {
@@ -92,6 +93,9 @@ static int dovi_rpu_update_fragment_hevc(AVBSFContext *bsf, AVPacket *pkt,
return 0;
}
+ if (nal->type == HEVC_NAL_UNSPEC63)
+ return 0;
+
ret = update_rpu(bsf, pkt, 0, nal->data + 2, nal->data_size - 2, &rpu, &rpu_size);
if (ret < 0)
return ret;