On 18-11-2020 02:41 am, Thierry Foucu wrote:
---
libavformat/mov.c | 24 ++++++++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 2b90e31170..1f9163d658 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2095,6 +2095,8 @@ static void mov_parse_stsd_video(MOVContext *c,
AVIOContext *pb,
uint8_t codec_name[32] = { 0 };
int64_t stsd_start;
unsigned int len;
+ int32_t id = 0;
+ char vendor_id[5];
/* The first 16 bytes of the video sample description are already
* read in ff_mov_read_stsd_entries() */
@@ -2102,7 +2104,15 @@ 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_rb32(pb); /* vendor */
+ if (id != 0) {
+ vendor_id[0] = (id >> 24) & 0xff;
+ vendor_id[1] = (id >> 16) & 0xff;
+ vendor_id[2] = (id >> 8) & 0xff;
+ vendor_id[3] = (id >> 0) & 0xff;
+ vendor_id[4] = 0;
+ av_dict_set(&st->metadata, "vendor_id", vendor_id, 0);
+ }
avio_rb32(pb); /* temporal quality */
avio_rb32(pb); /* spatial quality */
@@ -2150,10 +2160,20 @@ static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb,
{
int bits_per_sample, flags;
uint16_t version = avio_rb16(pb);
+ int32_t id = 0;
+ char vendor_id[5];
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_rb32(pb); /* vendor */
+ if (id != 0) {
+ vendor_id[0] = (id >> 24) & 0xff;
+ vendor_id[1] = (id >> 16) & 0xff;
+ vendor_id[2] = (id >> 8) & 0xff;
+ vendor_id[3] = (id >> 0) & 0xff;
+ vendor_id[4] = 0;
+ av_dict_set(&st->metadata, "vendor_id", vendor_id, 0);
+ }
Seems fine.
But you likely have to update many FATE refs. FATE fails. See
https://patchwork.ffmpeg.org/check/20508/
This automated check stops with the first failure. So check for all
tests with '-k'
Regards,
Gyan
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".