[SCM] libav/experimental: greyscale decoding (option to skip u, v planes) support

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:41:33 UTC 2013


The following commit has been merged in the experimental branch:
commit f970a8e682d8da038bbabffffd1d30b184b62cf3
Author: Alex Beregszaszi <alex at rtfs.hu>
Date:   Tue Sep 21 17:31:46 2004 +0000

    greyscale decoding (option to skip u,v planes) support
    
    Originally committed as revision 3487 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/indeo3.c b/libavcodec/indeo3.c
index 14ff028..a27c3ba 100644
--- a/libavcodec/indeo3.c
+++ b/libavcodec/indeo3.c
@@ -223,6 +223,9 @@ static unsigned long iv_decode_frame(Indeo3DecodeContext *s,
     hdr_height, buf_pos + offs * 2, fflags2, hdr_pos, buf_pos, 
     min(hdr_width, 160));
 
+  if (!(s->avctx->flags & CODEC_FLAG_GRAY))
+  {
+
   buf_pos = buf + 16 + offs2;
   offs = le2me_32(*(uint32_t *)buf_pos);
   buf_pos += 4;
@@ -239,6 +242,8 @@ static unsigned long iv_decode_frame(Indeo3DecodeContext *s,
     chroma_height, buf_pos + offs * 2, fflags2, hdr_pos, buf_pos, 
     min(chroma_width, 40));
 
+  }
+
   return 8;
 }
 
@@ -1080,6 +1085,8 @@ static int indeo3_decode_frame(AVCodecContext *avctx,
       dest += s->frame.linesize[0];
     }
 
+    if (!(s->avctx->flags & CODEC_FLAG_GRAY))
+    {
     src = s->cur_frame->Ubuf;
     dest = s->frame.data[1];
     for (y = 0; y < s->height / 4; y++) {
@@ -1095,6 +1102,7 @@ static int indeo3_decode_frame(AVCodecContext *avctx,
       src += s->cur_frame->uv_w;
       dest += s->frame.linesize[2];
     }
+    }
 
     *data_size=sizeof(AVFrame);
     *(AVFrame*)data= s->frame;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list