[Libav-user] How to Convert AV_PIX_FMT_RGB24 to AV_PIX_FMT_YUV420P
Chris Share
cpsmusic at yahoo.com
Thu Feb 14 12:46:42 CET 2013
Chris Share <cpsmusic at ...> writes:
>> The scaling_video.c is close to what I need however the
>> conversion is the opposite of what I want. What I'm
>> not clear about is how to change the "fill_yuv_image"
>> function to something like "fill_rgb_image".
>The function is used to provide an artificial source image.
>You don't need it since you already have an input image.
>> How does the RGB data get written into the
>> "uint8_t *data[4]"? Is it written consecutively (all R
>> values get written to data[0], all G values to data[1], etc.)?
>That would be planar RGB, see PIX_FMT_GBR.
>RGB is a packed format, see libavutil/pixfmt.h
Does that mean I should use AV_PIX_FMT_GBRP as the input format?
In pixfmt.h it mentions the following: "///< planar GBR 4:4:4 24bpp". Does this mean that each color value needs to be set to a 24-bit data type?
Also, I'm still not clear about how to get the RGB data into the "uint8_t *src_data[4]" - how do I actually do this?
>Note that all this has limited relevance for you if you
>don't rescale yourself but use the scale filter (or
>libswscale directly).
Sorry, but I'm not sure what you mean.
More information about the Libav-user
mailing list