If nb_bits is zero when reading an OBU, then it's not a bug in CBS but an invalid bitstream, and we should abort gracefully instead.
Signed-off-by: James Almer <jamr...@gmail.com> --- rav1e is currently encoding invalid Metadata OBUs without trailing bits, which are triggering the assert when parsed by CBS. This change makes sure to instead report the bitstream as invalid and gracefully return with an error code instead of crashing. libavcodec/cbs_av1_syntax_template.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c index 48f4fab514..02b4ed221c 100644 --- a/libavcodec/cbs_av1_syntax_template.c +++ b/libavcodec/cbs_av1_syntax_template.c @@ -45,7 +45,11 @@ static int FUNC(trailing_bits)(CodedBitstreamContext *ctx, RWContext *rw, int nb { int err; +#ifdef READ + av_assert0(nb_bits >= 0); +#else av_assert0(nb_bits > 0); +#endif fixed(1, trailing_one_bit, 1); --nb_bits; -- 2.20.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel