[FFmpeg-devel] [PATCH 0/5] adding ICC profile support to MOV decode/encode

vectronic hello.vectronic at gmail.com
Mon Sep 23 23:43:01 EEST 2019

As discussed earlier on this mailing list, I needed to implement support for reading and writing ICC profiles which can be stored in MOV/MP4 sample descriptor colour information.

The overall changes are:

1. Add a new enum value AVPacketSideDataType.AV_PKT_DATA_ICC_PROFILE. (Not sure if update to APIchanges is correct.) Added to ff_decode_frame_props() to ensure ICC profiles are attached to decoded frames. Added support for the new side data type to format dump as well.

2. Use av_stream_new_side_data() when reading from the MOV/MP4 in libavformat/mov.c => mov_read_colr() to store ICC profile if it exists.

3. Use av_stream_get_side_data() when writing to the MOV/MP4 in libavformat/moveenc.c => mov_write_colr_tag() to write ICC profile it it exists. Added a movflag 'prefer_icc' to ensure backwards compatible behaviour of 'write_colr' movflag.

vectronic (5):
  API: add AV_PKT_DATA_ICC_PROFILE to AVPacketSideDataType
  avformat/mov: add ICC profile support for colr atom
  avformat/mov: whitespace indent
  avformat/movenc: add ICC profile support to colr atom. If 'write_colr' movflag
    is set, then movflag 'prefer_icc' can be used to first look for an
    AV_PKT_DATA_ICC_PROFILE entry to encode. If ICC profile doesn't
    exist, default behaviour enabled by 'write_colr' occurs.

 doc/APIchanges        |  3 +++
 libavcodec/avcodec.h  |  6 +++++
 libavcodec/avpacket.c |  1 +
 libavcodec/decode.c   |  1 +
 libavformat/dump.c    |  3 +++
 libavformat/mov.c     | 63 +++++++++++++++++++++++++------------------
 libavformat/movenc.c  | 23 ++++++++++++++--
 libavformat/movenc.h  |  1 +
 8 files changed, 73 insertions(+), 28 deletions(-)

2.21.0 (Apple Git-122)

More information about the ffmpeg-devel mailing list