diff mbox series

[FFmpeg-devel] libavformat/mov.c: export vendor id as metadata

Message ID 20201118200937.1559715-1-tfoucu@gmail.com
State Accepted
Commit 4d97acfe3349995689f995d14b321a3354aa90ed
Headers show
Series [FFmpeg-devel] libavformat/mov.c: export vendor id as metadata
Related show

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Thierry Foucu Nov. 18, 2020, 8:09 p.m. UTC
---
 libavformat/mov.c                                         | 8 ++++++--
 tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov | 1 +
 tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov         | 1 +
 tests/ref/fate/mov-zombie                                 | 2 +-
 tests/ref/fate/rgb24-mkv                                  | 4 ++--
 5 files changed, 11 insertions(+), 5 deletions(-)

Comments

Thierry Foucu Nov. 28, 2020, 12:44 a.m. UTC | #1
ping?

On Wed, Nov 18, 2020 at 12:09 PM Thierry Foucu <tfoucu@gmail.com> wrote:

> ---
>  libavformat/mov.c                                         | 8 ++++++--
>  tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov | 1 +
>  tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov         | 1 +
>  tests/ref/fate/mov-zombie                                 | 2 +-
>  tests/ref/fate/rgb24-mkv                                  | 4 ++--
>  5 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 2b90e31170..1ba1a748e8 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -2095,6 +2095,7 @@ static void mov_parse_stsd_video(MOVContext *c,
> AVIOContext *pb,
>      uint8_t codec_name[32] = { 0 };
>      int64_t stsd_start;
>      unsigned int len;
> +    uint32_t id = 0;
>
>      /* The first 16 bytes of the video sample description are already
>       * read in ff_mov_read_stsd_entries() */
> @@ -2102,7 +2103,8 @@ static void mov_parse_stsd_video(MOVContext *c,
> AVIOContext *pb,
>
>      avio_rb16(pb); /* version */
>      avio_rb16(pb); /* revision level */
> -    avio_rb32(pb); /* vendor */
> +    id = avio_rl32(pb); /* vendor */
> +    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
>      avio_rb32(pb); /* temporal quality */
>      avio_rb32(pb); /* spatial quality */
>
> @@ -2150,10 +2152,12 @@ static void mov_parse_stsd_audio(MOVContext *c,
> AVIOContext *pb,
>  {
>      int bits_per_sample, flags;
>      uint16_t version = avio_rb16(pb);
> +    uint32_t id = 0;
>      AVDictionaryEntry *compatible_brands = av_dict_get(c->fc->metadata,
> "compatible_brands", NULL, AV_DICT_MATCH_CASE);
>
>      avio_rb16(pb); /* revision level */
> -    avio_rb32(pb); /* vendor */
> +    id = avio_rl32(pb); /* vendor */
> +    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
>
>      st->codecpar->channels              = avio_rb16(pb); /* channel count
> */
>      st->codecpar->bits_per_coded_sample = avio_rb16(pb); /* sample size */
> diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> index 61af08aa23..04a965b12a 100644
> --- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> +++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> @@ -69,5 +69,6 @@ DISPOSITION:attached_pic=0
>  DISPOSITION:timed_thumbnails=0
>  TAG:language=eng
>  TAG:handler_name=Module de gestion video
> +TAG:vendor_id=FFMP
>  TAG:encoder=HAPAlpha Only
>  [/STREAM]
> diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> index 1fb31ec7f0..d9e5c94ffb 100644
> --- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> +++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> @@ -69,5 +69,6 @@ DISPOSITION:attached_pic=0
>  DISPOSITION:timed_thumbnails=0
>  TAG:language=eng
>  TAG:handler_name=Module de gestion video
> +TAG:vendor_id=FFMP
>  TAG:encoder=HAPQ
>  [/STREAM]
> diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie
> index 1a6625bc8f..c566b14d47 100644
> --- a/tests/ref/fate/mov-zombie
> +++ b/tests/ref/fate/mov-zombie
> @@ -194,5 +194,5 @@
> frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=188623|pkt_pts_time=2.
>
>  packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|convergence_duration=N/A|convergence_duration_time=N/A|size=580|pos=101820|flags=__
>  frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=191626|pkt_pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|pkt_duration=3003|pkt_duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleftside_data|side_data_type=H.26[45]
> User Data Unregistered SEI message
>
> -stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
> Video Media Handler|tag:encoder=H.264
> +stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
> Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264
>  side_data|side_data_type=Display Matrix|displaymatrix=\n00000000:
>  131072           0           0\n00000001:            0       65536
>    0\n00000002:            0           0  1073741824\n|rotation=0
> diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv
> index 3b14cd0ef0..1ef70349b7 100644
> --- a/tests/ref/fate/rgb24-mkv
> +++ b/tests/ref/fate/rgb24-mkv
> @@ -1,5 +1,5 @@
> -fde8903c4df0ba8235dafcfd8a2f368c *tests/data/fate/rgb24-mkv.matroska
> -58216 tests/data/fate/rgb24-mkv.matroska
> +6244b8750d4155d3c9357bab26396ef9 *tests/data/fate/rgb24-mkv.matroska
> +58245 tests/data/fate/rgb24-mkv.matroska
>  #tb 0: 1/10
>  #media_type 0: video
>  #codec_id 0: rawvideo
> --
> 2.29.2.299.gdc1121823c-goog
>
>
Thierry Foucu Dec. 3, 2020, 8:40 p.m. UTC | #2
On Wed, Nov 18, 2020 at 12:09 PM Thierry Foucu <tfoucu@gmail.com> wrote:

> ---
>  libavformat/mov.c                                         | 8 ++++++--
>  tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov | 1 +
>  tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov         | 1 +
>  tests/ref/fate/mov-zombie                                 | 2 +-
>  tests/ref/fate/rgb24-mkv                                  | 4 ++--
>  5 files changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 2b90e31170..1ba1a748e8 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -2095,6 +2095,7 @@ static void mov_parse_stsd_video(MOVContext *c,
> AVIOContext *pb,
>      uint8_t codec_name[32] = { 0 };
>      int64_t stsd_start;
>      unsigned int len;
> +    uint32_t id = 0;
>
>      /* The first 16 bytes of the video sample description are already
>       * read in ff_mov_read_stsd_entries() */
> @@ -2102,7 +2103,8 @@ static void mov_parse_stsd_video(MOVContext *c,
> AVIOContext *pb,
>
>      avio_rb16(pb); /* version */
>      avio_rb16(pb); /* revision level */
> -    avio_rb32(pb); /* vendor */
> +    id = avio_rl32(pb); /* vendor */
> +    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
>      avio_rb32(pb); /* temporal quality */
>      avio_rb32(pb); /* spatial quality */
>
> @@ -2150,10 +2152,12 @@ static void mov_parse_stsd_audio(MOVContext *c,
> AVIOContext *pb,
>  {
>      int bits_per_sample, flags;
>      uint16_t version = avio_rb16(pb);
> +    uint32_t id = 0;
>      AVDictionaryEntry *compatible_brands = av_dict_get(c->fc->metadata,
> "compatible_brands", NULL, AV_DICT_MATCH_CASE);
>
>      avio_rb16(pb); /* revision level */
> -    avio_rb32(pb); /* vendor */
> +    id = avio_rl32(pb); /* vendor */
> +    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
>
>      st->codecpar->channels              = avio_rb16(pb); /* channel count
> */
>      st->codecpar->bits_per_coded_sample = avio_rb16(pb); /* sample size */
> diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> index 61af08aa23..04a965b12a 100644
> --- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> +++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> @@ -69,5 +69,6 @@ DISPOSITION:attached_pic=0
>  DISPOSITION:timed_thumbnails=0
>  TAG:language=eng
>  TAG:handler_name=Module de gestion video
> +TAG:vendor_id=FFMP
>  TAG:encoder=HAPAlpha Only
>  [/STREAM]
> diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> index 1fb31ec7f0..d9e5c94ffb 100644
> --- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> +++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> @@ -69,5 +69,6 @@ DISPOSITION:attached_pic=0
>  DISPOSITION:timed_thumbnails=0
>  TAG:language=eng
>  TAG:handler_name=Module de gestion video
> +TAG:vendor_id=FFMP
>  TAG:encoder=HAPQ
>  [/STREAM]
> diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie
> index 1a6625bc8f..c566b14d47 100644
> --- a/tests/ref/fate/mov-zombie
> +++ b/tests/ref/fate/mov-zombie
> @@ -194,5 +194,5 @@
> frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=188623|pkt_pts_time=2.
>
>  packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|convergence_duration=N/A|convergence_duration_time=N/A|size=580|pos=101820|flags=__
>  frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=191626|pkt_pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|pkt_duration=3003|pkt_duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleftside_data|side_data_type=H.26[45]
> User Data Unregistered SEI message
>
> -stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
> Video Media Handler|tag:encoder=H.264
> +stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
> Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264
>  side_data|side_data_type=Display Matrix|displaymatrix=\n00000000:
>  131072           0           0\n00000001:            0       65536
>    0\n00000002:            0           0  1073741824\n|rotation=0
> diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv
> index 3b14cd0ef0..1ef70349b7 100644
> --- a/tests/ref/fate/rgb24-mkv
> +++ b/tests/ref/fate/rgb24-mkv
> @@ -1,5 +1,5 @@
> -fde8903c4df0ba8235dafcfd8a2f368c *tests/data/fate/rgb24-mkv.matroska
> -58216 tests/data/fate/rgb24-mkv.matroska
> +6244b8750d4155d3c9357bab26396ef9 *tests/data/fate/rgb24-mkv.matroska
> +58245 tests/data/fate/rgb24-mkv.matroska
>  #tb 0: 1/10
>  #media_type 0: video
>  #codec_id 0: rawvideo
> --
> 2.29.2.299.gdc1121823c-goog
>
>

Ping?
Michael Niedermayer Dec. 4, 2020, 10:30 p.m. UTC | #3
On Thu, Dec 03, 2020 at 12:40:40PM -0800, Thierry Foucu wrote:
> On Wed, Nov 18, 2020 at 12:09 PM Thierry Foucu <tfoucu@gmail.com> wrote:
> 
> > ---
> >  libavformat/mov.c                                         | 8 ++++++--
> >  tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov | 1 +
> >  tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov         | 1 +
> >  tests/ref/fate/mov-zombie                                 | 2 +-
> >  tests/ref/fate/rgb24-mkv                                  | 4 ++--
> >  5 files changed, 11 insertions(+), 5 deletions(-)
> >
> > diff --git a/libavformat/mov.c b/libavformat/mov.c
> > index 2b90e31170..1ba1a748e8 100644
> > --- a/libavformat/mov.c
> > +++ b/libavformat/mov.c
> > @@ -2095,6 +2095,7 @@ static void mov_parse_stsd_video(MOVContext *c,
> > AVIOContext *pb,
> >      uint8_t codec_name[32] = { 0 };
> >      int64_t stsd_start;
> >      unsigned int len;
> > +    uint32_t id = 0;
> >
> >      /* The first 16 bytes of the video sample description are already
> >       * read in ff_mov_read_stsd_entries() */
> > @@ -2102,7 +2103,8 @@ static void mov_parse_stsd_video(MOVContext *c,
> > AVIOContext *pb,
> >
> >      avio_rb16(pb); /* version */
> >      avio_rb16(pb); /* revision level */
> > -    avio_rb32(pb); /* vendor */
> > +    id = avio_rl32(pb); /* vendor */
> > +    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
> >      avio_rb32(pb); /* temporal quality */
> >      avio_rb32(pb); /* spatial quality */
> >
> > @@ -2150,10 +2152,12 @@ static void mov_parse_stsd_audio(MOVContext *c,
> > AVIOContext *pb,
> >  {
> >      int bits_per_sample, flags;
> >      uint16_t version = avio_rb16(pb);
> > +    uint32_t id = 0;
> >      AVDictionaryEntry *compatible_brands = av_dict_get(c->fc->metadata,
> > "compatible_brands", NULL, AV_DICT_MATCH_CASE);
> >
> >      avio_rb16(pb); /* revision level */
> > -    avio_rb32(pb); /* vendor */
> > +    id = avio_rl32(pb); /* vendor */
> > +    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
> >
> >      st->codecpar->channels              = avio_rb16(pb); /* channel count
> > */
> >      st->codecpar->bits_per_coded_sample = avio_rb16(pb); /* sample size */
> > diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> > b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> > index 61af08aa23..04a965b12a 100644
> > --- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> > +++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
> > @@ -69,5 +69,6 @@ DISPOSITION:attached_pic=0
> >  DISPOSITION:timed_thumbnails=0
> >  TAG:language=eng
> >  TAG:handler_name=Module de gestion video
> > +TAG:vendor_id=FFMP
> >  TAG:encoder=HAPAlpha Only
> >  [/STREAM]
> > diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> > b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> > index 1fb31ec7f0..d9e5c94ffb 100644
> > --- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> > +++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
> > @@ -69,5 +69,6 @@ DISPOSITION:attached_pic=0
> >  DISPOSITION:timed_thumbnails=0
> >  TAG:language=eng
> >  TAG:handler_name=Module de gestion video
> > +TAG:vendor_id=FFMP
> >  TAG:encoder=HAPQ
> >  [/STREAM]
> > diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie
> > index 1a6625bc8f..c566b14d47 100644
> > --- a/tests/ref/fate/mov-zombie
> > +++ b/tests/ref/fate/mov-zombie
> > @@ -194,5 +194,5 @@
> > frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=188623|pkt_pts_time=2.
> >
> >  packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|convergence_duration=N/A|convergence_duration_time=N/A|size=580|pos=101820|flags=__
> >  frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=191626|pkt_pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|pkt_duration=3003|pkt_duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleftside_data|side_data_type=H.26[45]
> > User Data Unregistered SEI message
> >
> > -stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
> > Video Media Handler|tag:encoder=H.264
> > +stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
> > Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264
> >  side_data|side_data_type=Display Matrix|displaymatrix=\n00000000:
> >  131072           0           0\n00000001:            0       65536
> >    0\n00000002:            0           0  1073741824\n|rotation=0
> > diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv
> > index 3b14cd0ef0..1ef70349b7 100644
> > --- a/tests/ref/fate/rgb24-mkv
> > +++ b/tests/ref/fate/rgb24-mkv
> > @@ -1,5 +1,5 @@
> > -fde8903c4df0ba8235dafcfd8a2f368c *tests/data/fate/rgb24-mkv.matroska
> > -58216 tests/data/fate/rgb24-mkv.matroska
> > +6244b8750d4155d3c9357bab26396ef9 *tests/data/fate/rgb24-mkv.matroska
> > +58245 tests/data/fate/rgb24-mkv.matroska
> >  #tb 0: 1/10
> >  #media_type 0: video
> >  #codec_id 0: rawvideo
> > --
> > 2.29.2.299.gdc1121823c-goog
> >
> >
> 
> Ping?

probably ok

thx

[...]
Gyan Doshi Dec. 5, 2020, 4:37 a.m. UTC | #4
On 05-12-2020 04:00 am, Michael Niedermayer wrote:
> On Thu, Dec 03, 2020 at 12:40:40PM -0800, Thierry Foucu wrote:
>> On Wed, Nov 18, 2020 at 12:09 PM Thierry Foucu <tfoucu@gmail.com> wrote:
>>
>>> ---
>>>   libavformat/mov.c                                         | 8 ++++++--
>>>   tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov | 1 +
>>>   tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov         | 1 +
>>>   tests/ref/fate/mov-zombie                                 | 2 +-
>>>   tests/ref/fate/rgb24-mkv                                  | 4 ++--
>>>   5 files changed, 11 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>>> index 2b90e31170..1ba1a748e8 100644
>>> --- a/libavformat/mov.c
>>> +++ b/libavformat/mov.c
>>> @@ -2095,6 +2095,7 @@ static void mov_parse_stsd_video(MOVContext *c,
>>> AVIOContext *pb,
>>>       uint8_t codec_name[32] = { 0 };
>>>       int64_t stsd_start;
>>>       unsigned int len;
>>> +    uint32_t id = 0;
>>>
>>>       /* The first 16 bytes of the video sample description are already
>>>        * read in ff_mov_read_stsd_entries() */
>>> @@ -2102,7 +2103,8 @@ static void mov_parse_stsd_video(MOVContext *c,
>>> AVIOContext *pb,
>>>
>>>       avio_rb16(pb); /* version */
>>>       avio_rb16(pb); /* revision level */
>>> -    avio_rb32(pb); /* vendor */
>>> +    id = avio_rl32(pb); /* vendor */
>>> +    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
>>>       avio_rb32(pb); /* temporal quality */
>>>       avio_rb32(pb); /* spatial quality */
>>>
>>> @@ -2150,10 +2152,12 @@ static void mov_parse_stsd_audio(MOVContext *c,
>>> AVIOContext *pb,
>>>   {
>>>       int bits_per_sample, flags;
>>>       uint16_t version = avio_rb16(pb);
>>> +    uint32_t id = 0;
>>>       AVDictionaryEntry *compatible_brands = av_dict_get(c->fc->metadata,
>>> "compatible_brands", NULL, AV_DICT_MATCH_CASE);
>>>
>>>       avio_rb16(pb); /* revision level */
>>> -    avio_rb32(pb); /* vendor */
>>> +    id = avio_rl32(pb); /* vendor */
>>> +    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
>>>
>>>       st->codecpar->channels              = avio_rb16(pb); /* channel count
>>> */
>>>       st->codecpar->bits_per_coded_sample = avio_rb16(pb); /* sample size */
>>> diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
>>> b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
>>> index 61af08aa23..04a965b12a 100644
>>> --- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
>>> +++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
>>> @@ -69,5 +69,6 @@ DISPOSITION:attached_pic=0
>>>   DISPOSITION:timed_thumbnails=0
>>>   TAG:language=eng
>>>   TAG:handler_name=Module de gestion video
>>> +TAG:vendor_id=FFMP
>>>   TAG:encoder=HAPAlpha Only
>>>   [/STREAM]
>>> diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
>>> b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
>>> index 1fb31ec7f0..d9e5c94ffb 100644
>>> --- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
>>> +++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
>>> @@ -69,5 +69,6 @@ DISPOSITION:attached_pic=0
>>>   DISPOSITION:timed_thumbnails=0
>>>   TAG:language=eng
>>>   TAG:handler_name=Module de gestion video
>>> +TAG:vendor_id=FFMP
>>>   TAG:encoder=HAPQ
>>>   [/STREAM]
>>> diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie
>>> index 1a6625bc8f..c566b14d47 100644
>>> --- a/tests/ref/fate/mov-zombie
>>> +++ b/tests/ref/fate/mov-zombie
>>> @@ -194,5 +194,5 @@
>>> frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=188623|pkt_pts_time=2.
>>>
>>>   packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|convergence_duration=N/A|convergence_duration_time=N/A|size=580|pos=101820|flags=__
>>>   frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=191626|pkt_pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|pkt_duration=3003|pkt_duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleftside_data|side_data_type=H.26[45]
>>> User Data Unregistered SEI message
>>>
>>> -stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
>>> Video Media Handler|tag:encoder=H.264
>>> +stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple
>>> Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264
>>>   side_data|side_data_type=Display Matrix|displaymatrix=\n00000000:
>>>   131072           0           0\n00000001:            0       65536
>>>     0\n00000002:            0           0  1073741824\n|rotation=0
>>> diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv
>>> index 3b14cd0ef0..1ef70349b7 100644
>>> --- a/tests/ref/fate/rgb24-mkv
>>> +++ b/tests/ref/fate/rgb24-mkv
>>> @@ -1,5 +1,5 @@
>>> -fde8903c4df0ba8235dafcfd8a2f368c *tests/data/fate/rgb24-mkv.matroska
>>> -58216 tests/data/fate/rgb24-mkv.matroska
>>> +6244b8750d4155d3c9357bab26396ef9 *tests/data/fate/rgb24-mkv.matroska
>>> +58245 tests/data/fate/rgb24-mkv.matroska
>>>   #tb 0: 1/10
>>>   #media_type 0: video
>>>   #codec_id 0: rawvideo
>>> --
>>> 2.29.2.299.gdc1121823c-goog
>>>
>>>
>> Ping?
> probably ok

Looks fine. Will apply.

Regards,
Gyan
diff mbox series

Patch

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 2b90e31170..1ba1a748e8 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2095,6 +2095,7 @@  static void mov_parse_stsd_video(MOVContext *c, AVIOContext *pb,
     uint8_t codec_name[32] = { 0 };
     int64_t stsd_start;
     unsigned int len;
+    uint32_t id = 0;
 
     /* The first 16 bytes of the video sample description are already
      * read in ff_mov_read_stsd_entries() */
@@ -2102,7 +2103,8 @@  static void mov_parse_stsd_video(MOVContext *c, AVIOContext *pb,
 
     avio_rb16(pb); /* version */
     avio_rb16(pb); /* revision level */
-    avio_rb32(pb); /* vendor */
+    id = avio_rl32(pb); /* vendor */
+    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
     avio_rb32(pb); /* temporal quality */
     avio_rb32(pb); /* spatial quality */
 
@@ -2150,10 +2152,12 @@  static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb,
 {
     int bits_per_sample, flags;
     uint16_t version = avio_rb16(pb);
+    uint32_t id = 0;
     AVDictionaryEntry *compatible_brands = av_dict_get(c->fc->metadata, "compatible_brands", NULL, AV_DICT_MATCH_CASE);
 
     avio_rb16(pb); /* revision level */
-    avio_rb32(pb); /* vendor */
+    id = avio_rl32(pb); /* vendor */
+    av_dict_set(&st->metadata, "vendor_id", av_fourcc2str(id), 0);
 
     st->codecpar->channels              = avio_rb16(pb); /* channel count */
     st->codecpar->bits_per_coded_sample = avio_rb16(pb); /* sample size */
diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
index 61af08aa23..04a965b12a 100644
--- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
+++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapalphaonly-mov
@@ -69,5 +69,6 @@  DISPOSITION:attached_pic=0
 DISPOSITION:timed_thumbnails=0
 TAG:language=eng
 TAG:handler_name=Module de gestion video
+TAG:vendor_id=FFMP
 TAG:encoder=HAPAlpha Only
 [/STREAM]
diff --git a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
index 1fb31ec7f0..d9e5c94ffb 100644
--- a/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
+++ b/tests/ref/fate/hapqa-extract-nosnappy-to-hapq-mov
@@ -69,5 +69,6 @@  DISPOSITION:attached_pic=0
 DISPOSITION:timed_thumbnails=0
 TAG:language=eng
 TAG:handler_name=Module de gestion video
+TAG:vendor_id=FFMP
 TAG:encoder=HAPQ
 [/STREAM]
diff --git a/tests/ref/fate/mov-zombie b/tests/ref/fate/mov-zombie
index 1a6625bc8f..c566b14d47 100644
--- a/tests/ref/fate/mov-zombie
+++ b/tests/ref/fate/mov-zombie
@@ -194,5 +194,5 @@  frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=188623|pkt_pts_time=2.
 packet|codec_type=video|stream_index=0|pts=197632|pts_time=2.195911|dts=191625|dts_time=2.129167|duration=3003|duration_time=0.033367|convergence_duration=N/A|convergence_duration_time=N/A|size=580|pos=101820|flags=__
 frame|media_type=video|stream_index=0|key_frame=0|pkt_pts=191626|pkt_pts_time=2.129178|pkt_dts=N/A|pkt_dts_time=N/A|best_effort_timestamp=191626|best_effort_timestamp_time=2.129178|pkt_duration=3003|pkt_duration_time=0.033367|pkt_pos=99180|pkt_size=1666|width=160|height=240|pix_fmt=yuv420p|sample_aspect_ratio=2:1|pict_type=P|coded_picture_number=63|display_picture_number=0|interlaced_frame=0|top_field_first=0|repeat_pict=0|color_range=tv|color_space=smpte170m|color_primaries=smpte170m|color_transfer=bt709|chroma_location=topleftside_data|side_data_type=H.26[45] User Data Unregistered SEI message
 
-stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple Video Media Handler|tag:encoder=H.264
+stream|index=0|codec_name=h264|profile=77|codec_type=video|codec_time_base=212521/12744000|codec_tag_string=avc1|codec_tag=0x31637661|width=160|height=240|coded_width=160|coded_height=240|closed_captions=0|has_b_frames=1|sample_aspect_ratio=2:1|display_aspect_ratio=4:3|pix_fmt=yuv420p|level=12|color_range=tv|color_space=smpte170m|color_transfer=bt709|color_primaries=smpte170m|chroma_location=topleft|field_order=unknown|timecode=N/A|refs=2|is_avc=true|nal_length_size=4|id=N/A|r_frame_rate=30000/1001|avg_frame_rate=6372000/212521|time_base=1/90000|start_pts=0|start_time=0.000000|duration_ts=2125200|duration=23.613333|bit_rate=333874|max_bit_rate=N/A|bits_per_raw_sample=8|nb_frames=708|nb_read_frames=65|nb_read_packets=66|disposition:default=1|disposition:dub=0|disposition:original=0|disposition:comment=0|disposition:lyrics=0|disposition:karaoke=0|disposition:forced=0|disposition:hearing_impaired=0|disposition:visual_impaired=0|disposition:clean_effects=0|disposition:attached_pic=0|disposition:timed_thumbnails=0|tag:rotate=0|tag:creation_time=2008-05-12T20:59:27.000000Z|tag:language=eng|tag:handler_name=Apple Video Media Handler|tag:vendor_id=appl|tag:encoder=H.264
 side_data|side_data_type=Display Matrix|displaymatrix=\n00000000:       131072           0           0\n00000001:            0       65536           0\n00000002:            0           0  1073741824\n|rotation=0
diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv
index 3b14cd0ef0..1ef70349b7 100644
--- a/tests/ref/fate/rgb24-mkv
+++ b/tests/ref/fate/rgb24-mkv
@@ -1,5 +1,5 @@ 
-fde8903c4df0ba8235dafcfd8a2f368c *tests/data/fate/rgb24-mkv.matroska
-58216 tests/data/fate/rgb24-mkv.matroska
+6244b8750d4155d3c9357bab26396ef9 *tests/data/fate/rgb24-mkv.matroska
+58245 tests/data/fate/rgb24-mkv.matroska
 #tb 0: 1/10
 #media_type 0: video
 #codec_id 0: rawvideo