Commit f970a8e6 authored by Alex Beregszaszi's avatar Alex Beregszaszi

greyscale decoding (option to skip u,v planes) support

Originally committed as revision 3487 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 6cb38650
...@@ -223,6 +223,9 @@ static unsigned long iv_decode_frame(Indeo3DecodeContext *s, ...@@ -223,6 +223,9 @@ static unsigned long iv_decode_frame(Indeo3DecodeContext *s,
hdr_height, buf_pos + offs * 2, fflags2, hdr_pos, buf_pos, hdr_height, buf_pos + offs * 2, fflags2, hdr_pos, buf_pos,
min(hdr_width, 160)); min(hdr_width, 160));
if (!(s->avctx->flags & CODEC_FLAG_GRAY))
{
buf_pos = buf + 16 + offs2; buf_pos = buf + 16 + offs2;
offs = le2me_32(*(uint32_t *)buf_pos); offs = le2me_32(*(uint32_t *)buf_pos);
buf_pos += 4; buf_pos += 4;
...@@ -239,6 +242,8 @@ static unsigned long iv_decode_frame(Indeo3DecodeContext *s, ...@@ -239,6 +242,8 @@ static unsigned long iv_decode_frame(Indeo3DecodeContext *s,
chroma_height, buf_pos + offs * 2, fflags2, hdr_pos, buf_pos, chroma_height, buf_pos + offs * 2, fflags2, hdr_pos, buf_pos,
min(chroma_width, 40)); min(chroma_width, 40));
}
return 8; return 8;
} }
...@@ -1080,6 +1085,8 @@ static int indeo3_decode_frame(AVCodecContext *avctx, ...@@ -1080,6 +1085,8 @@ static int indeo3_decode_frame(AVCodecContext *avctx,
dest += s->frame.linesize[0]; dest += s->frame.linesize[0];
} }
if (!(s->avctx->flags & CODEC_FLAG_GRAY))
{
src = s->cur_frame->Ubuf; src = s->cur_frame->Ubuf;
dest = s->frame.data[1]; dest = s->frame.data[1];
for (y = 0; y < s->height / 4; y++) { for (y = 0; y < s->height / 4; y++) {
...@@ -1095,6 +1102,7 @@ static int indeo3_decode_frame(AVCodecContext *avctx, ...@@ -1095,6 +1102,7 @@ static int indeo3_decode_frame(AVCodecContext *avctx,
src += s->cur_frame->uv_w; src += s->cur_frame->uv_w;
dest += s->frame.linesize[2]; dest += s->frame.linesize[2];
} }
}
*data_size=sizeof(AVFrame); *data_size=sizeof(AVFrame);
*(AVFrame*)data= s->frame; *(AVFrame*)data= s->frame;
......
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