Commit 3bc86462 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '65875a8b'

* commit '65875a8b':
  vp8: initialize color space and range properties
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 349a32c4 65875a8b
...@@ -688,9 +688,10 @@ static int vp8_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si ...@@ -688,9 +688,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)))
...@@ -2547,6 +2548,13 @@ int vp78_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, ...@@ -2547,6 +2548,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
......
...@@ -266,6 +266,9 @@ typedef struct VP8Context { ...@@ -266,6 +266,9 @@ typedef struct VP8Context {
vp8_mc_func put_pixels_tab[3][3][3]; vp8_mc_func put_pixels_tab[3][3][3];
VP8Frame frames[5]; VP8Frame frames[5];
uint8_t colorspace; ///< 0 is the only value allowed (meaning bt601)
uint8_t fullrange; ///< whether we can skip clamping in dsp functions
int num_jobs; int num_jobs;
/** /**
* This describes the macroblock memory layout. * This describes the macroblock memory layout.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment