Browse Source

packetizer/av1: Fix size calculation in AV1_OBUSkipHeader

In case that AV1_OBUHasSizeField is false, i_header was used
uninitialized. The OBU header is always at least 1 byte and
the extension field is unrelated to the fact if a size field
exists or not.

Signed-off-by: Francois Cartegnie <fcvlcdev@free.fr>
pull/83/head
Marvin Scholz 8 years ago
committed by Francois Cartegnie
parent
commit
e3ada8723d
  1. 4
      modules/packetizer/av1_obu.h

4
modules/packetizer/av1_obu.h

@ -112,14 +112,14 @@ static bool AV1_OBUSkipHeader(const uint8_t **pp_buf, size_t *pi_buf)
{
if(*pi_buf < 1)
return false;
size_t i_header;
size_t i_header = 1 + !!AV1_OBUHasExtensionField(*pp_buf);
if(AV1_OBUHasSizeField(*pp_buf))
{
uint8_t i_len;
(void) AV1_OBUSize(*pp_buf, *pi_buf, &i_len);
if(i_len == 0)
return false;
i_header = 1 + !!AV1_OBUHasExtensionField(*pp_buf) + i_len;
i_header += i_len;
}
if(i_header > *pi_buf)
return false;

Loading…
Cancel
Save