diff mbox

[FFmpeg-devel,1/6] avformat/mxfdec: use MXFCodecUL struct to store essence description for data_essence_container_uls

Message ID 20180531000536.11482-1-cus@passwd.hu
State Accepted
Commit 183db8a80bba620092b7547c58e7e88721793e0d
Headers show

Commit Message

Marton Balint May 31, 2018, 12:05 a.m. UTC
Signed-off-by: Marton Balint <cus@passwd.hu>
---
 libavformat/mxf.h    |  1 +
 libavformat/mxfdec.c | 16 ++++------------
 2 files changed, 5 insertions(+), 12 deletions(-)

Comments

Tomas Härdin June 5, 2018, 11:19 a.m. UTC | #1
tor 2018-05-31 klockan 02:05 +0200 skrev Marton Balint:
> > Signed-off-by: Marton Balint <cus@passwd.hu>
> ---
>  libavformat/mxf.h    |  1 +
>  libavformat/mxfdec.c | 16 ++++------------
>  2 files changed, 5 insertions(+), 12 deletions(-)
> 
> diff --git a/libavformat/mxf.h b/libavformat/mxf.h
> index ffcc429a8b..19f8d8a9f5 100644
> --- a/libavformat/mxf.h
> +++ b/libavformat/mxf.h
> @@ -68,6 +68,7 @@ typedef struct MXFCodecUL {
>      UID uid;
>      unsigned matching_len;
>      int id;

Is "id" really needed now?

> +    const char *desc;
>  } MXFCodecUL;
>  
>  typedef struct {
> diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
> index bd46572e48..1099616174 100644
> --- a/libavformat/mxfdec.c
> +++ b/libavformat/mxfdec.c
> @@ -1278,14 +1278,10 @@ static const MXFCodecUL mxf_sound_essence_container_uls[] = {
>  };
>  
>  static const MXFCodecUL mxf_data_essence_container_uls[] = {
> -    { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, 0 },
> +    { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, AV_CODEC_ID_NONE, "vbi_vanc_smpte_436M" },
>      { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },  0, AV_CODEC_ID_NONE },
>  };
>  
> -static const char * const mxf_data_essence_descriptor[] = {
> -    "vbi_vanc_smpte_436M",
> -};
> -
>  static int mxf_get_sorted_table_segments(MXFContext *mxf, int *nb_sorted_segments, MXFIndexTableSegment ***sorted_segments)
>  {
>      int i, j, nb_segments = 0;
> @@ -2354,13 +2350,9 @@ 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)) {
> -                av_dict_set(&st->metadata, "data_type",
> -                            mxf_data_essence_descriptor[codec_id], 0);
> -            }
> +            container_ul = mxf_get_codec_ul(mxf_data_essence_container_uls, essence_container_ul);
> +            if (container_ul->desc)
> +                av_dict_set(&st->metadata, "data_type", container_ul->desc, 0);
>          }
>          if (descriptor->extradata) {
>              if (!ff_alloc_extradata(st->codecpar, descriptor->extradata_size)) {

Else it looks good

/Tomas
Marton Balint June 5, 2018, 4:59 p.m. UTC | #2
On Tue, 5 Jun 2018, Tomas Härdin wrote:

> tor 2018-05-31 klockan 02:05 +0200 skrev Marton Balint:
>>> Signed-off-by: Marton Balint <cus@passwd.hu>
>> ---
>>  libavformat/mxf.h    |  1 +
>>  libavformat/mxfdec.c | 16 ++++------------
>>  2 files changed, 5 insertions(+), 12 deletions(-)
>>
>> diff --git a/libavformat/mxf.h b/libavformat/mxf.h
>> index ffcc429a8b..19f8d8a9f5 100644
>> --- a/libavformat/mxf.h
>> +++ b/libavformat/mxf.h
>> @@ -68,6 +68,7 @@ typedef struct MXFCodecUL {
>>      UID uid;
>>      unsigned matching_len;
>>      int id;
>
> Is "id" really needed now?

Yes, there are other tables which are also using the MXFCodecUL struct.

Regards,
Marton
diff mbox

Patch

diff --git a/libavformat/mxf.h b/libavformat/mxf.h
index ffcc429a8b..19f8d8a9f5 100644
--- a/libavformat/mxf.h
+++ b/libavformat/mxf.h
@@ -68,6 +68,7 @@  typedef struct MXFCodecUL {
     UID uid;
     unsigned matching_len;
     int id;
+    const char *desc;
 } MXFCodecUL;
 
 typedef struct {
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index bd46572e48..1099616174 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -1278,14 +1278,10 @@  static const MXFCodecUL mxf_sound_essence_container_uls[] = {
 };
 
 static const MXFCodecUL mxf_data_essence_container_uls[] = {
-    { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, 0 },
+    { { 0x06,0x0e,0x2b,0x34,0x04,0x01,0x01,0x09,0x0d,0x01,0x03,0x01,0x02,0x0e,0x00,0x00 }, 16, AV_CODEC_ID_NONE, "vbi_vanc_smpte_436M" },
     { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },  0, AV_CODEC_ID_NONE },
 };
 
-static const char * const mxf_data_essence_descriptor[] = {
-    "vbi_vanc_smpte_436M",
-};
-
 static int mxf_get_sorted_table_segments(MXFContext *mxf, int *nb_sorted_segments, MXFIndexTableSegment ***sorted_segments)
 {
     int i, j, nb_segments = 0;
@@ -2354,13 +2350,9 @@  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)) {
-                av_dict_set(&st->metadata, "data_type",
-                            mxf_data_essence_descriptor[codec_id], 0);
-            }
+            container_ul = mxf_get_codec_ul(mxf_data_essence_container_uls, essence_container_ul);
+            if (container_ul->desc)
+                av_dict_set(&st->metadata, "data_type", container_ul->desc, 0);
         }
         if (descriptor->extradata) {
             if (!ff_alloc_extradata(st->codecpar, descriptor->extradata_size)) {