[FFmpeg-devel] [PATCH] avformat/mxfenc: fix DNxHD GC ULs

Matthieu Bouron matthieu.bouron at gmail.com
Tue Dec 14 11:41:27 EET 2021


On Tue, Nov 30, 2021 at 10:22:20AM +0100, Nicolas Gaullier wrote:
> Fix GC container ul.
> Fix GC element type both for the generic case and for OPAtom.
> 
> Thanks to Philip de Nier <philip.denier at bbc.co.uk>
> for checking the values, especially for OPAtom.
> ---
>  libavformat/mxfenc.c      | 8 ++++++--
>  tests/ref/lavf/mxf_opatom | 2 +-
>  2 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> index fcd9afda2a..38de3d1ab5 100644
> --- a/libavformat/mxfenc.c
> +++ b/libavformat/mxfenc.c
> @@ -32,6 +32,7 @@
>   * SMPTE 379M MXF Generic Container
>   * SMPTE 381M Mapping MPEG Streams into the MXF Generic Container
>   * SMPTE 422M Mapping JPEG 2000 Codestreams into the MXF Generic Container
> + * SMPTE ST2019-4 Mapping VC-3 Coding Units into the MXF Generic Container
>   * SMPTE RP210: SMPTE Metadata Dictionary
>   * SMPTE RP224: Registry of SMPTE Universal Labels
>   */
> @@ -181,8 +182,8 @@ static const MXFContainerEssenceEntry mxf_essence_container_uls[] = {
>        { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x04,0x01,0x02,0x02,0x02,0x00,0x00,0x00 },
>        mxf_write_cdci_desc },
>      // DNxHD
> -    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x11,0x01,0x00 },
> -      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x15,0x01,0x05,0x00 },
> +    { { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0A,0x0D,0x01,0x03,0x01,0x02,0x11,0x01,0x00 },

Can the chunk fixing the container UL be put in a separate commit (I just
checked the spec and it is fine) ?

> +      { 0x06,0x0E,0x2B,0x34,0x01,0x02,0x01,0x01,0x0D,0x01,0x03,0x01,0x15,0x01,0x0C,0x00 },

It only have access to ST2019-4 (2008) and it mentions two possible value
for the essence element type:
- 0x05 frame wrapped picture element
- 0x06 clip wrapped picture element

Is 0x0C introduced in a later revision of ST2019 ?

>        { 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x0A,0x04,0x01,0x02,0x02,0x71,0x01,0x00,0x00 },
>        mxf_write_cdci_desc },
>      // JPEG2000
> @@ -2674,6 +2675,9 @@ static int mxf_init(AVFormatContext *s)
>  
>          memcpy(sc->track_essence_element_key, mxf_essence_container_uls[sc->index].element_ul, 15);
>          sc->track_essence_element_key[15] = present[sc->index];
> +        if (s->oformat == &ff_mxf_opatom_muxer && st->codecpar->codec_id == AV_CODEC_ID_DNXHD) {
> +            sc->track_essence_element_key[14] = 0x06;
> +        }
>          PRINT_KEY(s, "track essence element key", sc->track_essence_element_key);
>  
>          if (!present[sc->index])
> diff --git a/tests/ref/lavf/mxf_opatom b/tests/ref/lavf/mxf_opatom
> index 61e755550b..e34cf2559e 100644
> --- a/tests/ref/lavf/mxf_opatom
> +++ b/tests/ref/lavf/mxf_opatom
> @@ -1,3 +1,3 @@
> -5d235c127ace64b1f4fe6c79a7ca8be6 *tests/data/lavf/lavf.mxf_opatom
> +aab6397829bd90f0c77a3f9fde53bb9c *tests/data/lavf/lavf.mxf_opatom
>  4717625 tests/data/lavf/lavf.mxf_opatom
>  tests/data/lavf/lavf.mxf_opatom CRC=0xf55aa22a
> -- 
> 2.34.0
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list