[FFmpeg-devel] [PATCH 1/3] cbs_av1: Fix header writing when already aligned

Mark Thompson sw at jkqxz.net
Mon Nov 5 16:12:06 EET 2018


On 05/11/18 13:14, James Almer wrote:
> On 11/4/2018 9:10 PM, Mark Thompson wrote:
>> ---
>> Previously it lost the trailing bits byte but did include it in the OBU size, completely breaking the stream.
>>
>>
>>  libavcodec/cbs_av1.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavcodec/cbs_av1.c b/libavcodec/cbs_av1.c
>> index 9bac9dde09..1c49d90f51 100644
>> --- a/libavcodec/cbs_av1.c
>> +++ b/libavcodec/cbs_av1.c
>> @@ -1179,7 +1179,7 @@ static int cbs_av1_write_obu(CodedBitstreamContext *ctx,
>>          if (err < 0)
>>              return err;
>>          end_pos = put_bits_count(pbc);
>> -        obu->obu_size = (end_pos - start_pos + 7) / 8;
>> +        obu->obu_size = header_size = (end_pos - start_pos + 7) / 8;
>>      } else {
>>          // Empty OBU.
>>          obu->obu_size = 0;
>>
> 
> What samples was this breaking? The few i tried have matching checksum
> after an av1_metadata passthrough.

Your s6Nh.ivf file with redundant headers requires it.  (I spent quite a while banging my head against that one, because the write trace showed exactly the right thing but then reading it back was messed up.)

- Mark


More information about the ffmpeg-devel mailing list