mirror of https://git.ffmpeg.org/ffmpeg.git
Merge commit '65875a8b3b079752da25a61ec188d2e3d90a569f'
* commit '65875a8b3b079752da25a61ec188d2e3d90a569f': vp8: initialize color space and range properties Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
commit
3bc86462a2
|
@ -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,
|
||||||
|
|
||||||
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 {
|
||||||
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.
|
||||||
|
|
Loading…
Reference in New Issue