mbox

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

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

Message

quietvoid Dec. 14, 2021, 3:29 p.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.

v9: https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/288896.html

Changes since v9:
  - mov: Fixed size validation for reading into temporary buffer.
      As suggested here: https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/289087.html
  - mov: Removed the unnecessary padding for the temporary buffer.
      Because avio_read respects the requested size.
  - matroskaenc: Changed mkv_write_dovi return type to void, as it is infallible.

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                            |  52 +----
 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, 518 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