This is a second or alternative way that would allow us to deprecate J formats without breaking AVCodec API. Instead of creating a monster struct with any possible color combination, I propose to supply a list of formats which have to be interpreted as full range, by adding a .pix_fmts_full to AVCodec. The old pix_fmts can remain and is compatible with current behaviour.
In this set there is also an additional structure that will allow to seamlessly move all color-related information from avcodeccontext to frame and then to avscale. Note that the API for handling the second list is not yet implemented as I wanted to get some feedback for it. Cheers, Vittorio Vittorio Giovara (4): lavu: Move all color-related enums to AVPixFmtModel avframe: add COLOR side data WIP: add .pix_fmts_full for the list of full range colors lavu: add deprecation guards to full scale formats doc/APIchanges | 8 +++ libavcodec/avcodec.h | 69 +-------------------- libavcodec/dirac.c | 10 +++ libavcodec/fraps.c | 4 ++ libavcodec/h264.c | 12 ++++ libavcodec/hevc_ps.c | 2 + libavcodec/imgconvert.c | 8 ++- libavcodec/libx264.c | 8 +++ libavcodec/ljpegenc.c | 16 ++++- libavcodec/mdec.c | 4 ++ libavcodec/mjpegdec.c | 16 +++++ libavcodec/mjpegenc.c | 10 ++- libavcodec/mpegvideo_enc.c | 9 ++- libavcodec/raw.c | 9 ++- libavcodec/svq3.c | 9 +++ libavcodec/utils.c | 2 + libavcodec/version.h | 4 +- libavfilter/vf_boxblur.c | 2 + libavfilter/vf_crop.c | 2 + libavfilter/vf_cropdetect.c | 11 ++-- libavfilter/vf_drawbox.c | 6 +- libavfilter/vf_fade.c | 6 +- libavfilter/vf_framepack.c | 7 ++- libavfilter/vf_hflip.c | 2 + libavfilter/vf_hqdn3d.c | 2 + libavfilter/vf_interlace.c | 8 ++- libavfilter/vf_lut.c | 7 +++ libavfilter/vf_pad.c | 2 + libavfilter/vf_transpose.c | 6 +- libavfilter/vf_unsharp.c | 8 ++- libavfilter/vf_yadif.c | 4 +- libavfilter/vsrc_color.c | 2 + libavformat/rtpenc_jpeg.c | 13 +++- libavutil/Makefile | 2 + libavutil/frame.h | 5 ++ libavutil/pixdesc.c | 4 ++ libavutil/pixdesc.h | 1 + libavutil/pixfmt.h | 4 ++ libavutil/pixmodel.c | 38 ++++++++++++ libavutil/pixmodel.h | 146 ++++++++++++++++++++++++++++++++++++++++++++ libavutil/version.h | 5 +- libswscale/utils.c | 6 ++ 42 files changed, 405 insertions(+), 94 deletions(-) create mode 100644 libavutil/pixmodel.c create mode 100644 libavutil/pixmodel.h -- 1.8.3.4 (Apple Git-47) _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel