[FFmpeg-devel] [PATCH 1/2] avformat/mxfenc: allow more bits for variable part in uuid generation
Tomas Härdin
tjoppen at acc.umu.se
Mon Mar 14 21:35:41 EET 2022
mån 2022-03-14 klockan 19:49 +0100 skrev Marton Balint:
> Also make sure we do not change the product UID.
>
> Signed-off-by: Marton Balint <cus at passwd.hu>
> ---
> libavformat/mxfenc.c | 9 +++++----
> tests/ref/fate/copy-trac4914 | 2 +-
> tests/ref/fate/mxf-d10-user-comments | 6 +++---
> tests/ref/fate/mxf-opatom-user-comments | 2 +-
> tests/ref/fate/mxf-reel_name | 2 +-
> tests/ref/fate/mxf-user-comments | 2 +-
> tests/ref/fate/time_base | 2 +-
> tests/ref/lavf/mxf | 6 +++---
> tests/ref/lavf/mxf_d10 | 2 +-
> tests/ref/lavf/mxf_dv25 | 2 +-
> tests/ref/lavf/mxf_dvcpro50 | 2 +-
> tests/ref/lavf/mxf_opatom | 2 +-
> tests/ref/lavf/mxf_opatom_audio | 2 +-
> 13 files changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> index 1e87dc6111..ba8e7babfb 100644
> --- a/libavformat/mxfenc.c
> +++ b/libavformat/mxfenc.c
> @@ -227,7 +227,8 @@ static const UID mxf_d10_container_uls[] = {
> {
> 0x06,0x0E,0x2B,0x34,0x04,0x01,0x01,0x01,0x0D,0x01,0x03,0x01,0x02,0x01
> ,0x06,0x01 }, // D-10 525/50 NTSC 30mb/s
> };
>
> -static const uint8_t uuid_base[] = {
> 0xAD,0xAB,0x44,0x24,0x2f,0x25,0x4d,0xc7,0x92,0xff,0x29,0xbd };
> +static const uint8_t product_uid[] = {
> 0xAD,0xAB,0x44,0x24,0x2f,0x25,0x4d,0xc7,0x92,0xff,0x29,0xbd,0x00,0x0c
> ,0x00,0x02};
Maybe use Identification instead of 0x0C.
> +static const uint8_t uuid_base[] = {
> 0xAD,0xAB,0x44,0x24,0x2f,0x25,0x4d,0xc7,0x92,0xff };
> static const uint8_t umid_ul[] = {
> 0x06,0x0A,0x2B,0x34,0x01,0x01,0x01,0x05,0x01,0x01,0x0D,0x00,0x13 };
>
> /**
> @@ -424,9 +425,9 @@ typedef struct MXFContext {
>
> static void mxf_write_uuid(AVIOContext *pb, enum MXFMetadataSetType
> type, int value)
> {
> - avio_write(pb, uuid_base, 12);
> + avio_write(pb, uuid_base, 10);
> avio_wb16(pb, type);
> - avio_wb16(pb, value);
> + avio_wb32(pb, value);
> }
>
> static void mxf_write_umid(AVFormatContext *s, int type)
> @@ -797,7 +798,7 @@ static void
> mxf_write_identification(AVFormatContext *s)
>
> // write product uid
> mxf_write_local_tag(s, 16, 0x3C05);
> - mxf_write_uuid(pb, Identification, 2);
> + avio_write(pb, product_uid, 16);
For those wondering, the purpose of this not using mxf_write_uuid() is
likely to keep ProductUID the same after this patch. This is of course
good if a bit ugly since the calls with 0 and 1 are still there. Oh
well.
/Tomas
More information about the ffmpeg-devel
mailing list