[FFmpeg-cvslog] avformat/dashenc: fix writing the AV1 codec string in mp4 mode

James Almer git at videolan.org
Mon Aug 5 21:06:15 EEST 2019


ffmpeg | branch: release/4.2 | James Almer <jamrial at gmail.com> | Tue Jul 30 13:21:46 2019 -0300| [35e9d9cbf73877e638eac27d4ff3e058653f4da1] | committer: James Almer

avformat/dashenc: fix writing the AV1 codec string in mp4 mode

>From https://aomediacodec.github.io/av1-isobmff/#codecsparam, the parameters
sample entry 4CC, profile, level, tier, and bitDepth are all mandatory fields.
All the other fields are optional, mutually inclusive (all or none).

Fixes ticket #8049

Signed-off-by: James Almer <jamrial at gmail.com>
(cherry picked from commit 1cf2f040e34bbfedde60ff3d91b2f7b770aca85b)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=35e9d9cbf73877e638eac27d4ff3e058653f4da1
---

 libavformat/dashenc.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index a1b7b7242f..24d43c34ea 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -35,6 +35,7 @@
 #include "libavutil/time.h"
 #include "libavutil/time_internal.h"
 
+#include "av1.h"
 #include "avc.h"
 #include "avformat.h"
 #include "avio_internal.h"
@@ -385,6 +386,21 @@ static void set_codec_str(AVFormatContext *s, AVCodecParameters *par,
             av_strlcatf(str, size, ".%02x%02x%02x",
                         extradata[1], extradata[2], extradata[3]);
         av_free(tmpbuf);
+    } else if (!strcmp(str, "av01")) {
+        AV1SequenceParameters seq;
+        if (!par->extradata_size)
+            return;
+        if (ff_av1_parse_seq_header(&seq, par->extradata, par->extradata_size) < 0)
+            return;
+
+        av_strlcatf(str, size, ".%01u.%02u%s.%02u",
+                    seq.profile, seq.level, seq.tier ? "H" : "M", seq.bitdepth);
+        if (seq.color_description_present_flag)
+            av_strlcatf(str, size, ".%01u.%01u%01u%01u.%02u.%02u.%02u.%01u",
+                        seq.monochrome,
+                        seq.chroma_subsampling_x, seq.chroma_subsampling_y, seq.chroma_sample_position,
+                        seq.color_primaries, seq.transfer_characteristics, seq.matrix_coefficients,
+                        seq.color_range);
     }
 }
 



More information about the ffmpeg-cvslog mailing list