Commit 811d58e0 authored by Michael Niedermayer's avatar Michael Niedermayer

avcodec/utils: support non edge emu for grayscale

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent cf06dee5
...@@ -568,6 +568,7 @@ static int video_get_buffer(AVCodecContext *s, AVFrame *pic) ...@@ -568,6 +568,7 @@ static int video_get_buffer(AVCodecContext *s, AVFrame *pic)
for (i = 0; i < 4 && pool->pools[i]; i++) { for (i = 0; i < 4 && pool->pools[i]; i++) {
const int h_shift = i == 0 ? 0 : h_chroma_shift; const int h_shift = i == 0 ? 0 : h_chroma_shift;
const int v_shift = i == 0 ? 0 : v_chroma_shift; const int v_shift = i == 0 ? 0 : v_chroma_shift;
int is_planar = pool->pools[2] || (i==0 && s->pix_fmt == AV_PIX_FMT_GRAY8);
pic->linesize[i] = pool->linesize[i]; pic->linesize[i] = pool->linesize[i];
...@@ -576,7 +577,7 @@ static int video_get_buffer(AVCodecContext *s, AVFrame *pic) ...@@ -576,7 +577,7 @@ static int video_get_buffer(AVCodecContext *s, AVFrame *pic)
goto fail; goto fail;
// no edge if EDGE EMU or not planar YUV // no edge if EDGE EMU or not planar YUV
if ((s->flags & CODEC_FLAG_EMU_EDGE) || !pool->pools[2]) if ((s->flags & CODEC_FLAG_EMU_EDGE) || !is_planar)
pic->data[i] = pic->buf[i]->data; pic->data[i] = pic->buf[i]->data;
else { else {
pic->data[i] = pic->buf[i]->data + pic->data[i] = pic->buf[i]->data +
......
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