[libav-user] RE : RE : Conversion yuvj420P to RGB24

Candice Seenyen candice.seenyen at ims.es
Tue Aug 24 09:10:47 CEST 2010

-----Mensaje original-----
De: libav-user-bounces at mplayerhq.hu [mailto:libav-user-bounces at mplayerhq.hu]
En nombre de Mike Scheutzow
Enviado el: sábado, 21 de agosto de 2010 14:37
Para: Libav* user questions and discussions
Asunto: Re: [libav-user] RE : RE : Conversion yuvj420P to RGB24

Candice Seenyen wrote:
> THanks for your input, but it actually doesn't work. I am using the latest
> version of ffmpeg where YUVJ420P is deprecated, so that could be the
> problem. No idea. I'll look into it.

Please don't top-post in this list.

Looking at the FFmpeg source code, in pixfmt.h I see the "deprecated" 
comment you are talking about. But I think it is not completely 
accurate. PIX_FMT_YUVJ420P might be deprecated for libavcodec, but it's 
not deprecated for libswscale.

For libavcodec, the new approach is to use PIX_FMT_YUV420P together with 

This change means that if you want your code to handle full-range 
pixels,  you have to add new lines of code that check 
AVCodecContext->color_range, then pass the correct PIX_FMT_* value to 
sws_getContext(). I didn't create a test case, but looking at the source 
code it appears that libswscale does the right thing with PIX_FMT_YUVJ420P.

Switching topics, an all green output from YUV->RGB conversion usually 
means that the input YUV buffer was all zeros. You should use a debugger 
to confirm that you see non-zero data in the input Y plane buffer.

For debugging, you might also try --disable-optimizations and 
--disable-asm when you configure FFmpeg. This will slow down execution a 
lot, but might help you figure out where the problem is.

Mike Scheutzow

libav-user mailing list
libav-user at mplayerhq.hu

Thanks a lot for your help. I've been able to solve my problem.

More information about the libav-user mailing list