summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerek Buitenhuis <derek.buitenhuis@gmail.com>2020-06-17 14:43:28 +0100
committerDerek Buitenhuis <derek.buitenhuis@gmail.com>2020-06-17 19:06:45 +0100
commit94bac7b3f8dcd8af33d9f7e18b4e4e73c73f98dd (patch)
tree68c32c1e55034e2751df3f9f981920e4c3640720
parent157feea0416b41d309820e6595c27428ad04502c (diff)
avformat/movenc: Write 'av01' as a compatible brand when muxing AV1
This is a requirement of the AV1-ISOBMFF spec. Section 2.1. General Requirements & Brands states: * It SHALL have the av01 brand among the compatible brands array of the FileTypeBox Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
-rw-r--r--libavformat/movenc.c6
-rw-r--r--tests/ref/lavf-fate/av1.mp44
2 files changed, 7 insertions, 3 deletions
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index 520aaafb74..6eeac8efa6 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -4875,7 +4875,7 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
{
MOVMuxContext *mov = s->priv_data;
int64_t pos = avio_tell(pb);
- int has_h264 = 0, has_video = 0;
+ int has_h264 = 0, has_av1 = 0, has_video = 0;
int i;
for (i = 0; i < s->nb_streams; i++) {
@@ -4886,6 +4886,8 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
has_video = 1;
if (st->codecpar->codec_id == AV_CODEC_ID_H264)
has_h264 = 1;
+ if (st->codecpar->codec_id == AV_CODEC_ID_AV1)
+ has_av1 = 1;
}
avio_wb32(pb, 0); /* size */
@@ -4909,6 +4911,8 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
ffio_wfourcc(pb, "cmfc");
if (mov->flags & FF_MOV_FLAG_FRAGMENT && !(mov->flags & FF_MOV_FLAG_NEGATIVE_CTS_OFFSETS))
ffio_wfourcc(pb, "iso6");
+ if (has_av1)
+ ffio_wfourcc(pb, "av01");
} else {
if (mov->flags & FF_MOV_FLAG_FRAGMENT)
ffio_wfourcc(pb, "iso6");
diff --git a/tests/ref/lavf-fate/av1.mp4 b/tests/ref/lavf-fate/av1.mp4
index 38d2a80afe..c8dc8e9a1a 100644
--- a/tests/ref/lavf-fate/av1.mp4
+++ b/tests/ref/lavf-fate/av1.mp4
@@ -1,3 +1,3 @@
-0388467214421a19ba65d10a74dc35c0 *tests/data/lavf-fate/lavf.av1.mp4
-55936 tests/data/lavf-fate/lavf.av1.mp4
+4eed679a1d3e18edfd95b268167d8060 *tests/data/lavf-fate/lavf.av1.mp4
+55940 tests/data/lavf-fate/lavf.av1.mp4
tests/data/lavf-fate/lavf.av1.mp4 CRC=0x7c27cc15