[FFmpeg-devel] [PATCH] lavc/hevc: Allow arbitrarily many trailing_zero_8bits after a NAL unit in bytestream format.
Hendrik Leppkes
h.leppkes at gmail.com
Thu Mar 17 00:41:40 CET 2016
On Wed, Mar 16, 2016 at 9:37 PM, Mark Thompson <sw at 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
More information about the ffmpeg-devel
mailing list