|
|
|
@@ -68,16 +68,18 @@ static int dnxhd_find_frame_end(DNXHDParserContext *dctx, |
|
|
|
dctx->w = (state >> 32) & 0xFFFF; |
|
|
|
} else if (dctx->cur_byte == 42) { |
|
|
|
int cid = (state >> 32) & 0xFFFFFFFF; |
|
|
|
int remaining; |
|
|
|
|
|
|
|
if (cid <= 0) |
|
|
|
continue; |
|
|
|
|
|
|
|
dctx->remaining = avpriv_dnxhd_get_frame_size(cid); |
|
|
|
if (dctx->remaining <= 0) { |
|
|
|
dctx->remaining = ff_dnxhd_get_hr_frame_size(cid, dctx->w, dctx->h); |
|
|
|
if (dctx->remaining <= 0) |
|
|
|
return dctx->remaining; |
|
|
|
remaining = avpriv_dnxhd_get_frame_size(cid); |
|
|
|
if (remaining <= 0) { |
|
|
|
remaining = ff_dnxhd_get_hr_frame_size(cid, dctx->w, dctx->h); |
|
|
|
if (remaining <= 0) |
|
|
|
continue; |
|
|
|
} |
|
|
|
dctx->remaining = remaining; |
|
|
|
if (buf_size - i + 47 >= dctx->remaining) { |
|
|
|
int remaining = dctx->remaining; |
|
|
|
|
|
|
|
|