Merge commit '0f562f5b833d603e04123d198c59f8b2b5eb43e4'
authorHendrik Leppkes <h.leppkes@gmail.com>
Mon, 10 Aug 2015 09:11:42 +0000 (11:11 +0200)
committerHendrik Leppkes <h.leppkes@gmail.com>
Mon, 10 Aug 2015 09:11:42 +0000 (11:11 +0200)
* commit '0f562f5b833d603e04123d198c59f8b2b5eb43e4':
  h264: Do not print an error when the buffer has to be refilled

Conflicts:
libavcodec/h264.c

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
1  2 
libavcodec/h264.h

@@@ -1176,35 -1081,6 +1176,36 @@@ static av_always_inline int get_dct8x8_
                    0x0001000100010001ULL));
  }
  
 +static inline int find_start_code(const uint8_t *buf, int buf_size,
 +                           int buf_index, int next_avc)
 +{
 +    uint32_t state = -1;
 +
 +    buf_index = avpriv_find_start_code(buf + buf_index, buf + next_avc + 1, &state) - buf - 1;
 +
 +    return FFMIN(buf_index, buf_size);
 +}
 +
 +static inline int get_avc_nalsize(H264Context *h, const uint8_t *buf,
 +                           int buf_size, int *buf_index)
 +{
 +    int i, nalsize = 0;
 +
 +    if (*buf_index >= buf_size - h->nal_length_size) {
++        // the end of the buffer is reached, refill it.
 +        return AVERROR(EAGAIN);
 +    }
 +
 +    for (i = 0; i < h->nal_length_size; i++)
 +        nalsize = ((unsigned)nalsize << 8) | buf[(*buf_index)++];
 +    if (nalsize <= 0 || nalsize > buf_size - *buf_index) {
 +        av_log(h->avctx, AV_LOG_ERROR,
 +               "AVC: nal size %d\n", nalsize);
 +        return AVERROR_INVALIDDATA;
 +    }
 +    return nalsize;
 +}
 +
  int ff_h264_field_end(H264Context *h, H264SliceContext *sl, int in_setup);
  
  int ff_h264_ref_picture(H264Context *h, H264Picture *dst, H264Picture *src);