Skip to content

Commit

Permalink
contrib: update FFmpeg to version 6.1.
Browse files Browse the repository at this point in the history
  • Loading branch information
galad87 committed Nov 11, 2023
1 parent 564eb30 commit a554c18
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 50 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
From ef33c5bd72846c5c93662a3e6a75c4f3273f0a35 Mon Sep 17 00:00:00 2001
From d0f915c761cfba6ae46d20fa9b995311ef0f0727 Mon Sep 17 00:00:00 2001
From: Damiano Galassi <[email protected]>
Date: Tue, 11 Jul 2023 07:38:26 +0200
Date: Fri, 3 Nov 2023 13:43:50 +0100
Subject: [PATCH 1/2] avcodec: add ambient viewing environment packet side
data.

Expand All @@ -12,10 +12,10 @@ Subject: [PATCH 1/2] avcodec: add ambient viewing environment packet side
4 files changed, 12 insertions(+)

diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 4fcfe1164b..5663a12dc4 100644
index 71f6cc3a74..58b07ac20c 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -2349,6 +2349,9 @@ static void print_pkt_side_data(WriterContext *w,
@@ -2392,6 +2392,9 @@ static void print_pkt_side_data(WriterContext *w,
AVContentLightMetadata *metadata = (AVContentLightMetadata *)sd->data;
print_int("max_content", metadata->MaxCLL);
print_int("max_average", metadata->MaxFALL);
Expand All @@ -26,10 +26,10 @@ index 4fcfe1164b..5663a12dc4 100644
AVDynamicHDRPlus *metadata = (AVDynamicHDRPlus *)sd->data;
print_dynamic_hdr10_plus(w, metadata);
diff --git a/libavcodec/avpacket.c b/libavcodec/avpacket.c
index 5fef65e97a..db9c0c95e8 100644
index e29725c2d2..9f3e9d7d7c 100644
--- a/libavcodec/avpacket.c
+++ b/libavcodec/avpacket.c
@@ -300,6 +300,7 @@ const char *av_packet_side_data_name(enum AVPacketSideDataType type)
@@ -301,6 +301,7 @@ const char *av_packet_side_data_name(enum AVPacketSideDataType type)
case AV_PKT_DATA_DOVI_CONF: return "DOVI configuration record";
case AV_PKT_DATA_S12M_TIMECODE: return "SMPTE ST 12-1:2014 timecode";
case AV_PKT_DATA_DYNAMIC_HDR10_PLUS: return "HDR10+ Dynamic Metadata (SMPTE 2094-40)";
Expand All @@ -38,19 +38,19 @@ index 5fef65e97a..db9c0c95e8 100644
return NULL;
}
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 7eada8e9ab..e58b462272 100644
index ad39021354..6049fbb2dd 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1428,6 +1428,7 @@ int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx,
{ AV_PKT_DATA_S12M_TIMECODE, AV_FRAME_DATA_S12M_TIMECODE },
{ AV_PKT_DATA_DYNAMIC_HDR10_PLUS, AV_FRAME_DATA_DYNAMIC_HDR_PLUS },
{ AV_PKT_DATA_SKIP_SAMPLES, AV_FRAME_DATA_SKIP_SAMPLES },
+ { AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT },
};
@@ -1434,6 +1434,7 @@ static const struct {
{ AV_PKT_DATA_CONTENT_LIGHT_LEVEL, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL },
{ AV_PKT_DATA_ICC_PROFILE, AV_FRAME_DATA_ICC_PROFILE },
{ AV_PKT_DATA_DYNAMIC_HDR10_PLUS, AV_FRAME_DATA_DYNAMIC_HDR_PLUS },
+ { AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT },
};

frame->pts = pkt->pts;
int ff_decode_frame_props_from_pkt(const AVCodecContext *avctx,
diff --git a/libavcodec/packet.h b/libavcodec/packet.h
index f28e7e7011..199baad763 100644
index b19409b719..f5e0751497 100644
--- a/libavcodec/packet.h
+++ b/libavcodec/packet.h
@@ -299,6 +299,13 @@ enum AVPacketSideDataType {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
From 39152a8730363c6eca43b5e0f006165d7c138a64 Mon Sep 17 00:00:00 2001
From bd3e5a9d0a3e5e909881b2ced8e0824d3d2bb01a Mon Sep 17 00:00:00 2001
From: Damiano Galassi <[email protected]>
Date: Tue, 11 Jul 2023 07:39:06 +0200
Date: Fri, 3 Nov 2023 13:46:20 +0100
Subject: [PATCH 2/2] avformat/mov: add support for 'amve' ambient viewing
environment box. As defined in ISOBMFF (ISO/IEC 14496-12) document.

---
libavformat/dump.c | 15 +++++++++++++++
libavformat/isom.h | 3 +++
libavformat/mov.c | 36 ++++++++++++++++++++++++++++++++++++
libavformat/mov.c | 35 +++++++++++++++++++++++++++++++++++
libavformat/movenc.c | 22 ++++++++++++++++++++++
4 files changed, 76 insertions(+)
4 files changed, 75 insertions(+)

diff --git a/libavformat/dump.c b/libavformat/dump.c
index d31e4c2ec6..88dc9dd89c 100644
index c0868a1bb3..1058829cc7 100644
--- a/libavformat/dump.c
+++ b/libavformat/dump.c
@@ -27,6 +27,7 @@
Expand Down Expand Up @@ -52,7 +52,7 @@ index d31e4c2ec6..88dc9dd89c 100644
av_log(ctx, AV_LOG_INFO, "unknown side data type %d "
"(%"SIZE_SPECIFIER" bytes)", sd->type, sd->size);
diff --git a/libavformat/isom.h b/libavformat/isom.h
index 4b1cd42f0f..e24dfb3dd0 100644
index 3d375d7a46..46247b0ec7 100644
--- a/libavformat/isom.h
+++ b/libavformat/isom.h
@@ -29,6 +29,7 @@
Expand All @@ -73,10 +73,10 @@ index 4b1cd42f0f..e24dfb3dd0 100644
uint32_t format;

diff --git a/libavformat/mov.c b/libavformat/mov.c
index be9975f297..ac193ff021 100644
index 2f29487beb..270b306711 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -6017,6 +6017,31 @@ static int mov_read_clli(MOVContext *c, AVIOContext *pb, MOVAtom atom)
@@ -6030,6 +6030,31 @@ static int mov_read_clli(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return 0;
}

Expand Down Expand Up @@ -108,43 +108,42 @@ index be9975f297..ac193ff021 100644
static int mov_read_st3d(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{
AVStream *st;
@@ -7928,6 +7953,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = {
@@ -7950,6 +7975,7 @@ static const MOVParseTableEntry mov_default_parse_table[] = {
{ MKTAG('p','c','m','C'), mov_read_pcmc }, /* PCM configuration box */
{ MKTAG('p','i','t','m'), mov_read_pitm },
{ MKTAG('e','v','c','C'), mov_read_glbl },
+{ MKTAG('a','m','v','e'), mov_read_amve }, /* ambient viewing environment box */
{ 0, NULL }
};

@@ -8398,6 +8424,7 @@ static int mov_read_close(AVFormatContext *s)
@@ -8420,6 +8446,7 @@ static int mov_read_close(AVFormatContext *s)
av_freep(&sc->spherical);
av_freep(&sc->mastering);
av_freep(&sc->coll);
+ av_freep(&sc->ambient);
}

av_freep(&mov->dv_demux);
@@ -8763,6 +8790,15 @@ static int mov_read_header(AVFormatContext *s)
@@ -8781,6 +8808,14 @@ static int mov_read_header(AVFormatContext *s)

sc->coll = NULL;
}
+ if (sc->ambient) {
+ err = av_stream_add_side_data(st, AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,
+ (uint8_t *)sc->ambient,
+ sc->ambient_size);
+ if (err < 0)
+ return err;
+ if (!av_packet_side_data_add(&st->codecpar->coded_side_data, &st->codecpar->nb_coded_side_data,
+ AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,
+ (uint8_t *)sc->ambient, sc->ambient_size, 0))
+ return AVERROR(ENOMEM);
+
+ sc->ambient = NULL;
+ }
break;
}
}
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 7ef6cef46a..507d57d811 100644
index e39f1ac987..41a87f5168 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -2225,6 +2225,27 @@ static int mov_write_mdcv_tag(AVIOContext *pb, MOVTrack *track)
@@ -2226,6 +2226,27 @@ static int mov_write_mdcv_tag(AVIOContext *pb, MOVTrack *track)
return 32;
}

Expand Down Expand Up @@ -172,7 +171,7 @@ index 7ef6cef46a..507d57d811 100644
static void find_compressor(char * compressor_name, int len, MOVTrack *track)
{
AVDictionaryEntry *encoder;
@@ -2435,6 +2456,7 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex
@@ -2437,6 +2458,7 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex
if (track->mode == MODE_MOV || track->mode == MODE_MP4) {
mov_write_clli_tag(pb, track);
mov_write_mdcv_tag(pb, track);
Expand Down
6 changes: 3 additions & 3 deletions contrib/ffmpeg/module.defs
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ endif
$(eval $(call import.MODULE.defs,FFMPEG,ffmpeg,$(__deps__)))
$(eval $(call import.CONTRIB.defs,FFMPEG))

FFMPEG.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/ffmpeg-snapshot-20231006-f62c441.tar.gz
#FFMPEG.FETCH.url += https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
FFMPEG.FETCH.sha256 = 3afe5896e901fee85aeb8113ba85a58ff88f5e324d727254b903763dd66e1dec
FFMPEG.FETCH.url = https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/ffmpeg-6.1.tar.bz2
FFMPEG.FETCH.url += https://ffmpeg.org/releases/ffmpeg-6.1.tar.bz2
FFMPEG.FETCH.sha256 = eb7da3de7dd3ce48a9946ab447a7346bd11a3a85e6efb8f2c2ce637e7f547611

FFMPEG.CONFIGURE.deps =
FFMPEG.CONFIGURE.host =
Expand Down
27 changes: 16 additions & 11 deletions libhb/muxavformat.c
Original file line number Diff line number Diff line change
Expand Up @@ -562,10 +562,11 @@ static int avformatInit( hb_mux_object_t * m )
uint8_t *mastering_data = av_malloc(sizeof(AVMasteringDisplayMetadata));
memcpy(mastering_data, &mastering, sizeof(AVMasteringDisplayMetadata));

av_stream_add_side_data(track->st,
av_packet_side_data_add(&track->st->codecpar->coded_side_data,
&track->st->codecpar->nb_coded_side_data,
AV_PKT_DATA_MASTERING_DISPLAY_METADATA,
mastering_data,
sizeof(AVMasteringDisplayMetadata));
sizeof(AVMasteringDisplayMetadata), 0);
}

if (job->coll.max_cll && job->coll.max_fall)
Expand All @@ -577,10 +578,11 @@ static int avformatInit( hb_mux_object_t * m )
uint8_t *coll_data = av_malloc(sizeof(AVContentLightMetadata));
memcpy(coll_data, &coll, sizeof(AVContentLightMetadata));

av_stream_add_side_data(track->st,
av_packet_side_data_add(&track->st->codecpar->coded_side_data,
&track->st->codecpar->nb_coded_side_data,
AV_PKT_DATA_CONTENT_LIGHT_LEVEL,
coll_data,
sizeof(AVContentLightMetadata));
sizeof(AVContentLightMetadata), 0);
}
}

Expand All @@ -591,10 +593,11 @@ static int avformatInit( hb_mux_object_t * m )
uint8_t *ambient_data = av_malloc(sizeof(AVAmbientViewingEnvironment));
memcpy(ambient_data, &ambient, sizeof(AVAmbientViewingEnvironment));

av_stream_add_side_data(track->st,
av_packet_side_data_add(&track->st->codecpar->coded_side_data,
&track->st->codecpar->nb_coded_side_data,
AV_PKT_DATA_AMBIENT_VIEWING_ENVIRONMENT,
ambient_data,
sizeof(AVAmbientViewingEnvironment));
sizeof(AVAmbientViewingEnvironment), 0);
}

if (job->passthru_dynamic_hdr_metadata & DOVI)
Expand All @@ -611,10 +614,11 @@ static int avformatInit( hb_mux_object_t * m )
uint8_t *dovi_data = av_malloc(sizeof(AVDOVIDecoderConfigurationRecord));
memcpy(dovi_data, &dovi, sizeof(AVDOVIDecoderConfigurationRecord));

av_stream_add_side_data(track->st,
av_packet_side_data_add(&track->st->codecpar->coded_side_data,
&track->st->codecpar->nb_coded_side_data,
AV_PKT_DATA_DOVI_CONF,
dovi_data,
sizeof(AVDOVIDecoderConfigurationRecord));
sizeof(AVDOVIDecoderConfigurationRecord), 0);

m->oc->strict_std_compliance = FF_COMPLIANCE_UNOFFICIAL;
}
Expand Down Expand Up @@ -925,9 +929,10 @@ static int avformatInit( hb_mux_object_t * m )

track = audio->priv.mux_data;
fallback_track = fallback->priv.mux_data;
sd = (int*)av_stream_new_side_data(track->st,
AV_PKT_DATA_FALLBACK_TRACK,
sizeof(int));
sd = (int*)av_packet_side_data_new(&track->st->codecpar->coded_side_data,
&track->st->codecpar->nb_coded_side_data,
AV_PKT_DATA_FALLBACK_TRACK,
sizeof(int), 0);
if (sd != NULL)
{
*sd = fallback_track->st->index;
Expand Down
4 changes: 2 additions & 2 deletions libhb/stream.c
Original file line number Diff line number Diff line change
Expand Up @@ -5852,9 +5852,9 @@ static hb_title_t *ffmpeg_title_scan( hb_stream_t *stream, hb_title_t *title )
}

int j;
for (j = 0; j < st->nb_side_data; j++)
for (j = 0; j < codecpar->nb_coded_side_data; j++)
{
AVPacketSideData sd = st->side_data[j];
AVPacketSideData sd = codecpar->coded_side_data[j];
switch (sd.type)
{
case AV_PKT_DATA_DISPLAYMATRIX:
Expand Down

0 comments on commit a554c18

Please sign in to comment.