diff options
author | James Almer <jamrial@gmail.com> | 2018-07-23 12:33:55 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2018-08-02 12:41:55 -0300 |
commit | 2de5209d912d1ef153850d67b33dc87ee51c7ec9 (patch) | |
tree | 9ef4ccbcdc31a9992714413af2035e3af87b12b7 /libavformat/matroskaenc.c | |
parent | ded339fb3c8a7364e047f6a19181eb6a7aa18470 (diff) | |
download | ffmpeg-2de5209d912d1ef153850d67b33dc87ee51c7ec9.tar.gz |
avformat/matroskaenc: filter and reorder AV1 OBUs
Make sure to not write forbidden OBUs to CodecPrivate, and do the same with
unnecessary OBUs for packets.
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/matroskaenc.c')
-rw-r--r-- | libavformat/matroskaenc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index b7ff1950d3..816ddd059a 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -21,6 +21,7 @@ #include <stdint.h> +#include "av1.h" #include "avc.h" #include "hevc.h" #include "avformat.h" @@ -769,6 +770,9 @@ static int mkv_write_native_codecprivate(AVFormatContext *s, AVIOContext *pb, ff_isom_write_hvcc(dyn_cp, par->extradata, par->extradata_size, 0); return 0; + case AV_CODEC_ID_AV1: + return ff_isom_write_av1c(dyn_cp, par->extradata, + par->extradata_size); case AV_CODEC_ID_ALAC: if (par->extradata_size < 36) { av_log(s, AV_LOG_ERROR, @@ -2120,6 +2124,8 @@ static void mkv_write_block(AVFormatContext *s, AVIOContext *pb, (AV_RB24(par->extradata) == 1 || AV_RB32(par->extradata) == 1)) /* extradata is Annex B, assume the bitstream is too and convert it */ ff_hevc_annexb2mp4_buf(pkt->data, &data, &size, 0, NULL); + else if (par->codec_id == AV_CODEC_ID_AV1) + ff_av1_filter_obus_buf(pkt->data, &data, &size); else if (par->codec_id == AV_CODEC_ID_WAVPACK) { int ret = mkv_strip_wavpack(pkt->data, &data, &size); if (ret < 0) { |