[FFmpeg-cvslog] avformat/matroskaenc: Check return value of ff_isom_write_hvcc()
Andreas Rheinhardt
git at videolan.org
Wed Jan 1 18:09:06 EET 2020
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Wed Jan 1 01:58:22 2020 +0100| [34e3810b04cadf4ccb0d96b9d36a9daf45179c05] | committer: Michael Niedermayer
avformat/matroskaenc: Check return value of ff_isom_write_hvcc()
The Matroska muxer currently does not check the return value of
ff_isom_write_hvcc(), the function used to write mp4-style
HEVC-extradata as Matroska also uses it. This was intentionally done in
7a5356c72 to allow remuxing from mpeg-ts.
But if ff_isom_write_hvcc() fails, it has not output anything and the
file ends up without CodecPrivate and, if the input was Annex B, with
Annex B data, which is against the spec. So check the return value
again.
The underlying issue of not having extradata seems to have been fixed by
the introduction of the extract_extradata bitstream filter.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
Reviewed-by: "mypopy at gmail.com" <mypopy at gmail.com>
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=34e3810b04cadf4ccb0d96b9d36a9daf45179c05
---
libavformat/matroskaenc.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 03dcdab9a6..9dcd1946e8 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -748,9 +748,8 @@ static int mkv_write_native_codecprivate(AVFormatContext *s, AVIOContext *pb,
return ff_isom_write_avcc(dyn_cp, par->extradata,
par->extradata_size);
case AV_CODEC_ID_HEVC:
- ff_isom_write_hvcc(dyn_cp, par->extradata,
- par->extradata_size, 0);
- return 0;
+ return ff_isom_write_hvcc(dyn_cp, par->extradata,
+ par->extradata_size, 0);
case AV_CODEC_ID_AV1:
if (par->extradata_size)
return ff_isom_write_av1c(dyn_cp, par->extradata,
More information about the ffmpeg-cvslog
mailing list