On Wed, Mar 16, 2016 at 9:37 PM, Mark Thompson <s...@jkqxz.net> wrote: > --- > libavcodec/hevc_parse.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/libavcodec/hevc_parse.c b/libavcodec/hevc_parse.c > index 63ed84a..8c629ff 100644 > --- a/libavcodec/hevc_parse.c > +++ b/libavcodec/hevc_parse.c > @@ -227,6 +227,20 @@ int ff_hevc_split_packet(HEVCContext *s, HEVCPacket > *pkt, const uint8_t *buf, in > return AVERROR_INVALIDDATA; > } > } else { > + if (pkt->nals > 0) { > + // Discard arbtrarily many trailing_zero_8bits before the > + // start code of the next NAL unit. > + while (buf[0] == 0 && buf[1] == 0 && buf[2] == 0) { > + ++buf; > + --length; > + if (length < 4) > + break; > + } > + if (length < 4) { > + // There are only zeroes left, so no more NAL units here. > + break; > + } > + } > /* search start code */ > while (buf[0] != 0 || buf[1] != 0 || buf[2] != 1) { > ++buf;
I'm slightly confused, wouldn't the loop right after skip over the zeroes until it finds a valid start code? It essentially does the same on a cursory look. - Hendrik _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel