mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-29 22:00:58 +02:00
lavf/movenc: Write 'dby1' minor brand if Dolby content is being muxed to MP4
This is as per: * mp4ra: http://mp4ra.org/#/brands * Dolby Vision muxing spec (which is public): https://professional.dolby.com/siteassets/content-creation/dolby-vision-for-content-creators/dolby_vision_bitstreams_within_the_iso_base_media_file_format_dec2017.pdf Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
parent
da5497a1a2
commit
68815d6791
@ -4991,7 +4991,7 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
|
|||||||
{
|
{
|
||||||
MOVMuxContext *mov = s->priv_data;
|
MOVMuxContext *mov = s->priv_data;
|
||||||
int64_t pos = avio_tell(pb);
|
int64_t pos = avio_tell(pb);
|
||||||
int has_h264 = 0, has_av1 = 0, has_video = 0;
|
int has_h264 = 0, has_av1 = 0, has_video = 0, has_dolby = 0;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < s->nb_streams; i++) {
|
for (i = 0; i < s->nb_streams; i++) {
|
||||||
@ -5004,6 +5004,11 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
|
|||||||
has_h264 = 1;
|
has_h264 = 1;
|
||||||
if (st->codecpar->codec_id == AV_CODEC_ID_AV1)
|
if (st->codecpar->codec_id == AV_CODEC_ID_AV1)
|
||||||
has_av1 = 1;
|
has_av1 = 1;
|
||||||
|
if (st->codecpar->codec_id == AV_CODEC_ID_AC3 ||
|
||||||
|
st->codecpar->codec_id == AV_CODEC_ID_EAC3 ||
|
||||||
|
st->codecpar->codec_id == AV_CODEC_ID_TRUEHD ||
|
||||||
|
av_stream_get_side_data(st, AV_PKT_DATA_DOVI_CONF, NULL))
|
||||||
|
has_dolby = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
avio_wb32(pb, 0); /* size */
|
avio_wb32(pb, 0); /* size */
|
||||||
@ -5029,6 +5034,8 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
|
|||||||
ffio_wfourcc(pb, "iso6");
|
ffio_wfourcc(pb, "iso6");
|
||||||
if (has_av1)
|
if (has_av1)
|
||||||
ffio_wfourcc(pb, "av01");
|
ffio_wfourcc(pb, "av01");
|
||||||
|
if (has_dolby)
|
||||||
|
ffio_wfourcc(pb, "dby1");
|
||||||
} else {
|
} else {
|
||||||
if (mov->flags & FF_MOV_FLAG_FRAGMENT)
|
if (mov->flags & FF_MOV_FLAG_FRAGMENT)
|
||||||
ffio_wfourcc(pb, "iso6");
|
ffio_wfourcc(pb, "iso6");
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
da6122873fb83ce4340cf5d0ab8d475e *tests/data/fate/copy-trac3074.mp4
|
452d91e7c6889b787717fef25b6fce43 *tests/data/fate/copy-trac3074.mp4
|
||||||
334012 tests/data/fate/copy-trac3074.mp4
|
334016 tests/data/fate/copy-trac3074.mp4
|
||||||
#tb 0: 1/48000
|
#tb 0: 1/48000
|
||||||
#media_type 0: audio
|
#media_type 0: audio
|
||||||
#codec_id 0: eac3
|
#codec_id 0: eac3
|
||||||
|
Loading…
x
Reference in New Issue
Block a user