ret = read_obu_with_size(p->buf + cnt, p->buf_size - cnt, &obu_size, &type);
if (ret < 0 || obu_size <= 0)
return 0;
- cnt += ret;
+ cnt += FFMIN(ret, p->buf_size - cnt);
ret = get_score(type, &seq);
if (ret >= 0)
static int obu_get_packet(AVFormatContext *s, AVPacket *pkt)
{
ObuContext *c = s->priv_data;
- uint8_t header[MAX_OBU_HEADER_SIZE];
+ uint8_t header[MAX_OBU_HEADER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE];
int64_t obu_size;
int size = av_fifo_space(c->fifo);
int ret, len, type;