mbox

[FFmpeg-devel,v11,0/5] Add support for Matroska BlockAdditionMapping elements

Message ID 20220101041621.427012-1-tcChlisop0@gmail.com
Headers show

Message

quietvoid Jan. 1, 2022, 4:16 a.m. UTC
This patch set adds support for reading/writing the Matroska BlockAdditionMapping
elements, as well as for reading/writing dvcC/dvvC blocks in Matroska.

Created utility functions to read/write Dolby Vision boxes for ISOM.
This was done to avoid duplicating the code, as the Matroska blocks and MOV boxes
follow the same specification, defined by Dolby.

Refactored the reading/writing in mov/movenc to use the new dovi_isom functions.

v10: https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/289645.html

Changes since v10:
  - dovi_isom: Limited written values to fit into the amount of bits.
  - matroskaenc: Corrected mkv_write_dovi to only allow profiles
    that are valid for dvcC/dvvC configurations.
  - mov: Improved code to be more concise.

quietvoid (5):
  avformat/dovi_isom: Implement Dolby Vision configuration
    parsing/writing
  avformat/matroska{dec, enc}: Parse BlockAdditionMapping elements
  avformat/mov: Refactor mov_read_dvcc_dvvc to use
    ff_isom_parse_dvcc_dvvc
  avformat/movenc: Refactor mov_write_dvcc_dvvc_tag to use
    ff_isom_put_dvcc_dvvc
  fate/matroska: Add tests for reading/writing BlockAdditionMapping
    elements

 libavformat/Makefile                         |   4 +-
 libavformat/dovi_isom.c                      | 118 ++++++++++
 libavformat/dovi_isom.h                      |  35 +++
 libavformat/matroska.h                       |   9 +
 libavformat/matroskadec.c                    |  58 ++++-
 libavformat/matroskaenc.c                    |  37 +++
 libavformat/mov.c                            |  50 +----
 libavformat/movenc.c                         |  24 +-
 tests/fate/matroska.mak                      |   9 +
 tests/ref/fate/matroska-dovi-config-profile5 |  13 ++
 tests/ref/fate/matroska-dovi-write-config    | 223 +++++++++++++++++++
 11 files changed, 516 insertions(+), 64 deletions(-)
 create mode 100644 libavformat/dovi_isom.c
 create mode 100644 libavformat/dovi_isom.h
 create mode 100644 tests/ref/fate/matroska-dovi-config-profile5
 create mode 100644 tests/ref/fate/matroska-dovi-write-config