Re: [FFmpeg-devel] [PATCH 4/5] avformat/mxfdec: fix data_essence_descriptor matching logic
mån 2018-05-28 klockan 00:16 +0200 skrev Marton Balint: > > On Sun, 27 May 2018, Tomas Härdin wrote: > > > sön 2018-05-27 klockan 21:21 +0200 skrev Marton Balint: > > > > Signed-off-by: Marton Balint> > > > > > --- > > > libavformat/mxfdec.c | 10 +- > > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > > > diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c > > > index bd46572e48..a62021b0d7 100644 > > > --- a/libavformat/mxfdec.c > > > +++ b/libavformat/mxfdec.c > > > @@ -2354,12 +2354,12 @@ static int > > > mxf_parse_structural_metadata(MXFContext *mxf) > > > st->need_parsing = AVSTREAM_PARSE_FULL; > > > } > > > } else if (st->codecpar->codec_type == > > > AVMEDIA_TYPE_DATA) { > > > -int codec_id = > > > mxf_get_codec_ul(mxf_data_essence_container_uls, > > > -essence_container_ul > > > )->id; > > > -if (codec_id >= 0 && > > > -codec_id < > > > FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { > > > +int index; > > > +container_ul = > > > mxf_get_codec_ul(mxf_data_essence_container_uls, > > > essence_container_ul); > > > +index = container_ul - > > > mxf_data_essence_container_uls; > > > > Nice use of C peculiarities (: > > The other way is to add a char* to the MXFCodecUL struct, but I > thought > that would be overkill for such a tiny use case. > > > > > > +if (index < > > > FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { > > > > index can never be <0? Say if container_ul == NULL... > > No, because mxf_get_codec_ul never returns NULL. Alright, looks OK then. Still irked by the lack of static analysis. Maybe should give Frama-C a go in some module one day /Tomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 4/5] avformat/mxfdec: fix data_essence_descriptor matching logic
On Sun, 27 May 2018, Tomas Härdin wrote: sön 2018-05-27 klockan 21:21 +0200 skrev Marton Balint: Signed-off-by: Marton Balint--- libavformat/mxfdec.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index bd46572e48..a62021b0d7 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -2354,12 +2354,12 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) st->need_parsing = AVSTREAM_PARSE_FULL; } } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) { -int codec_id = mxf_get_codec_ul(mxf_data_essence_container_uls, -essence_container_ul)->id; -if (codec_id >= 0 && -codec_id < FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { +int index; +container_ul = mxf_get_codec_ul(mxf_data_essence_container_uls, essence_container_ul); +index = container_ul - mxf_data_essence_container_uls; Nice use of C peculiarities (: The other way is to add a char* to the MXFCodecUL struct, but I thought that would be overkill for such a tiny use case. +if (index < FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { index can never be <0? Say if container_ul == NULL... No, because mxf_get_codec_ul never returns NULL. Regards, Marton ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
Re: [FFmpeg-devel] [PATCH 4/5] avformat/mxfdec: fix data_essence_descriptor matching logic
sön 2018-05-27 klockan 21:21 +0200 skrev Marton Balint: > > Signed-off-by: Marton Balint> --- > libavformat/mxfdec.c | 10 +- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c > index bd46572e48..a62021b0d7 100644 > --- a/libavformat/mxfdec.c > +++ b/libavformat/mxfdec.c > @@ -2354,12 +2354,12 @@ static int mxf_parse_structural_metadata(MXFContext > *mxf) > st->need_parsing = AVSTREAM_PARSE_FULL; > } > } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) { > -int codec_id = mxf_get_codec_ul(mxf_data_essence_container_uls, > -essence_container_ul)->id; > -if (codec_id >= 0 && > -codec_id < FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { > +int index; > +container_ul = mxf_get_codec_ul(mxf_data_essence_container_uls, > essence_container_ul); > +index = container_ul - mxf_data_essence_container_uls; Nice use of C peculiarities (: > +if (index < FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { index can never be <0? Say if container_ul == NULL... /Tomas ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
[FFmpeg-devel] [PATCH 4/5] avformat/mxfdec: fix data_essence_descriptor matching logic
Signed-off-by: Marton Balint--- libavformat/mxfdec.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index bd46572e48..a62021b0d7 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -2354,12 +2354,12 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) st->need_parsing = AVSTREAM_PARSE_FULL; } } else if (st->codecpar->codec_type == AVMEDIA_TYPE_DATA) { -int codec_id = mxf_get_codec_ul(mxf_data_essence_container_uls, -essence_container_ul)->id; -if (codec_id >= 0 && -codec_id < FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { +int index; +container_ul = mxf_get_codec_ul(mxf_data_essence_container_uls, essence_container_ul); +index = container_ul - mxf_data_essence_container_uls; +if (index < FF_ARRAY_ELEMS(mxf_data_essence_descriptor)) { av_dict_set(>metadata, "data_type", -mxf_data_essence_descriptor[codec_id], 0); +mxf_data_essence_descriptor[index], 0); } } if (descriptor->extradata) { -- 2.16.3 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel