mbox

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

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

Message

quietvoid Dec. 5, 2021, 5:35 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.

v8: https://ffmpeg.org/pipermail/ffmpeg-devel/2021-December/288819.html

Changes since v8:
  - Removed size argument from ff_isom_put_dvcc_dvvc, and changed the return type to void.
    The function always writes a constant number of bytes.

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                    |  40 ++++
 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, 521 insertions(+), 62 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