[FFmpeg-devel] [PATCH 1/2] h2645_parse: only read avc length code at the correct position

Hendrik Leppkes h.leppkes at gmail.com
Fri Jul 8 10:06:57 EEST 2016


On Fri, Jul 8, 2016 at 2:25 AM, Michael Niedermayer
<michael at niedermayer.cc> wrote:
> On Thu, Jul 07, 2016 at 08:21:17PM +0200, Hendrik Leppkes wrote:
>> Reading it from any other position would result in a wrong size being
>> read, instead fallback to the re-sync mechanic in the else clause.
>> ---
>>  libavcodec/h2645_parse.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavcodec/h2645_parse.c b/libavcodec/h2645_parse.c
>> index 9979b63..09fbc80 100644
>> --- a/libavcodec/h2645_parse.c
>> +++ b/libavcodec/h2645_parse.c
>> @@ -258,7 +258,7 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length,
>>          int extract_length = 0;
>>          int skip_trailing_zeros = 1;
>>
>> -        if (buf >= next_avc) {
>> +        if (buf == next_avc) {
>>              int i;
>>              for (i = 0; i < nal_length_size; i++)
>>                  extract_length = (extract_length << 8) | buf[i];
>
> the > case should print some warning if it doesnt,
> same for the 2nd patch the truncation should show some warning
>
> otherwise patches LGTM
>

The second patch is really nothing to warn about, the previous logic
was just wrong, causing overreads into the next NAL in some
situations.
I can add a warning for the > case, I guess, as it should usually not happen.

- Hendrik


More information about the ffmpeg-devel mailing list