|
|
@ -670,9 +670,10 @@ static int vp8_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si |
|
|
|
buf_size -= header_size; |
|
|
|
buf_size -= header_size; |
|
|
|
|
|
|
|
|
|
|
|
if (s->keyframe) { |
|
|
|
if (s->keyframe) { |
|
|
|
if (vp8_rac_get(c)) |
|
|
|
s->colorspace = vp8_rac_get(c); |
|
|
|
|
|
|
|
if (s->colorspace) |
|
|
|
av_log(s->avctx, AV_LOG_WARNING, "Unspecified colorspace\n"); |
|
|
|
av_log(s->avctx, AV_LOG_WARNING, "Unspecified colorspace\n"); |
|
|
|
vp8_rac_get(c); // whether we can skip clamping in dsp functions
|
|
|
|
s->fullrange = vp8_rac_get(c); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ((s->segmentation.enabled = vp8_rac_get(c))) |
|
|
|
if ((s->segmentation.enabled = vp8_rac_get(c))) |
|
|
@ -2490,6 +2491,13 @@ int vp78_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, |
|
|
|
|
|
|
|
|
|
|
|
curframe = s->framep[VP56_FRAME_CURRENT] = vp8_find_free_buffer(s); |
|
|
|
curframe = s->framep[VP56_FRAME_CURRENT] = vp8_find_free_buffer(s); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!s->colorspace) |
|
|
|
|
|
|
|
avctx->colorspace = AVCOL_SPC_BT470BG; |
|
|
|
|
|
|
|
if (s->fullrange) |
|
|
|
|
|
|
|
avctx->color_range = AVCOL_RANGE_JPEG; |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
avctx->color_range = AVCOL_RANGE_MPEG; |
|
|
|
|
|
|
|
|
|
|
|
/* Given that arithmetic probabilities are updated every frame, it's quite
|
|
|
|
/* Given that arithmetic probabilities are updated every frame, it's quite
|
|
|
|
* likely that the values we have on a random interframe are complete |
|
|
|
* likely that the values we have on a random interframe are complete |
|
|
|
* junk if we didn't start decode on a keyframe. So just don't display |
|
|
|
* junk if we didn't start decode on a keyframe. So just don't display |
|
|
|