On Mon, 18 Aug 2014 09:33:49 +0002 Markus Pfundstein <[email protected]> wrote:
> Hello, > > I am currently developing a program that uses the libavcodec library > for decoding (not encoding) various movie formats. I have some > questions about color space conversion and how ffmpeg handles it. > > Assume I have RGB input where I don't know if its FullRange or ITU-R > BT.709 and I want to have my output ITU-R BT.709. How can I configure > SwSContext properly? > > Assume I have YUV422 BT 601 input and I want my output to be YUV444 > FullRange. Is this possible without telling SwsContext that my input > source is BT 601? > > I would also appreciate if someone could explain to me how swscale > works in terms of color space conversion. I did read through the source > and I think I understand a bit but I don't get the whole picture. Does > color space conversion work on 10bit and 12bit as well or does it > always downscale first to 8bit? (would be a big bummer). Also, does > swscale first transform the input color space to XYZ and then transform > it further into the target color space? And why is there no yuv2rgb > function but only a rgb2yuv function? If I want my output color space > to be rgb, such a function would be needed or not? > > Thanks a lot already for your answers. I hope my english is > understandable (not native) > > With best regards, > Markus You have to set them with av_opt_*. Look at libavfilter/vf_scale for an example. Yes, all this stuff is probably under-documented. As for libswscale itself: it's mostly horrible, but with some luck and if you provide the right flags (SWS_BITEXACT and others) it might actually do what you want. _______________________________________________ Libav-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/libav-user
