[FFmpeg-devel] [PATCH] Encrypted SMPTE DC MXF - additional UL needed to unpack EKLV packet

Tomas Härdin git at haerdin.se
Tue Oct 4 17:59:44 EEST 2022


tis 2022-10-04 klockan 07:50 -0700 skrev Pierre-Anthony Lemieux:
> On Tue, Oct 4, 2022 at 7:29 AM Tomas Härdin <git at haerdin.se> wrote:
> > 
> > mån 2022-10-03 klockan 11:47 +0000 skrev Richard Ayres:
> > > Thanks, Pierre-Anthony. I've updated the patch to remove the
> > > unnecessary UL and it's now using mxf_match_uid() to detect the
> > > EKLV
> > > packet.
> > > 
> > > Signed-off-by: Richard Ayres <richard.ayres at bydeluxe.com>
> > > ---
> > >  libavformat/mxfdec.c | 4 ++--
> > >  1 file changed, 2 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
> > > index badd2be224..b1ab90f25f 100644
> > > --- a/libavformat/mxfdec.c
> > > +++ b/libavformat/mxfdec.c
> > > @@ -3737,7 +3737,7 @@ static int mxf_read_header(AVFormatContext
> > > *s)
> > > 
> > >          PRINT_KEY(s, "read header", klv.key);
> > >          av_log(s, AV_LOG_TRACE, "size %"PRIu64" offset
> > > %#"PRIx64"\n", klv.length, klv.offset);
> > > -        if (IS_KLV_KEY(klv.key, mxf_encrypted_triplet_key) ||
> > > +        if (mxf_match_uid(klv.key, mxf_encrypted_triplet_key,
> > 
> > Why do we have IS_KLV_KEY at all? I feel it is only appropriate in
> > cases where we have to deal with less-than-standard files, or if we
> > explicitly have to differentiate between different versions of
> > relevant
> > specs.
> 
> SMPTE ULs should always be compared ignoring the version byte -- but
> for exceptional cases.
> 
> mxf_match_uid() should probably be renamed mxf_match_ul() since a UID
> can also be a UUID and.

Oh yeah, UUIDs *must* be just memcpy()'d IIRC. Perhaps we should have
three functions to be extra explicit: mxf_match_ul(), mxf_match_uid()
and mxf_match_uuid()..

/Tomas



More information about the ffmpeg-devel mailing list