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

Reply via email to