[FFmpeg-cvslog] avcodec/utils: support non edge emu for grayscale
Michael Niedermayer
git at videolan.org
Thu Aug 29 22:58:32 CEST 2013
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Aug 29 22:45:16 2013 +0200| [811d58e08386e4b948de324c766c1a9143ebd116] | committer: Michael Niedermayer
avcodec/utils: support non edge emu for grayscale
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=811d58e08386e4b948de324c766c1a9143ebd116
---
libavcodec/utils.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 0be9340..4dbd834 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -568,6 +568,7 @@ static int video_get_buffer(AVCodecContext *s, AVFrame *pic)
for (i = 0; i < 4 && pool->pools[i]; i++) {
const int h_shift = i == 0 ? 0 : h_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];
@@ -576,7 +577,7 @@ static int video_get_buffer(AVCodecContext *s, AVFrame *pic)
goto fail;
// 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;
else {
pic->data[i] = pic->buf[i]->data +
More information about the ffmpeg-cvslog
mailing list