[MPlayer-users] fftheora and 4:4:4 chroma subsampling
Giorgio
mywing81 at gmail.com
Sun Jun 6 15:35:48 CEST 2010
2010/6/6 Reimar Döffinger <Reimar.Doeffinger at gmx.de>:
> On Sun, Jun 06, 2010 at 01:22:23PM +0200, Reimar Döffinger wrote:
>> On Sun, Jun 06, 2010 at 12:51:52PM +0200, Giorgio wrote:
>> > I have a file with 4:4:4 chroma subsampling that doesn't decode
>> > correctly with -vc fftheora. As you can see from the picture [2] the
>> > colored rectangles in the top part of the picture aren't horizontal.
>> > It's worth noting that ffplay displays the video perfectly.
>>
>> I think ffplay does not support slices.
>> It works fine with -noslices, I guess the slice code was not updated
>> properly for 4:4:4
With -noslices the problem goes away, and -vo md5sum reports the same
checksum with "-vc fftheora" and "-vc theora" for all frames, although
I see:
[swscaler @ 0x183d970]BICUBIC scaler, from yuv444p to yuv420p using MMX2
VO: [md5sum] 1056x592 => 1056x592 Planar YV12
because md5sum vo doesn't support 444P. It would be nice to add it
(looking at the code it shouldn't be too difficult).
> This seems to fix it:
> Index: libavcodec/vp3.c
> ===================================================================
> --- libavcodec/vp3.c (revision 23501)
> +++ libavcodec/vp3.c (working copy)
> @@ -1329,7 +1329,9 @@
> y = s->height - y - h;
> }
>
> - cy = y >> 1;
> + cy = y;
> + if (s->avctx->pix_fmt == PIX_FMT_YUV420P)
> + cy >>= 1;
> offset[0] = s->current_frame.linesize[0]*y;
> offset[1] = s->current_frame.linesize[1]*cy;
> offset[2] = s->current_frame.linesize[2]*cy;
This patch seems to solve the problem visually, but md5sums are still
different from what I get with the theora decoder. Maybe the mantainer
of the vp3 decoder can look into it?
Giorgio Vazzana
More information about the MPlayer-users
mailing list