From patchwork Thu Nov 10 00:42:35 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: liangsi X-Patchwork-Id: 1369 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp587173vsb; Wed, 9 Nov 2016 16:43:42 -0800 (PST) X-Received: by 10.194.168.129 with SMTP id zw1mr2444498wjb.26.1478738622408; Wed, 09 Nov 2016 16:43:42 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a186si25102716wma.80.2016.11.09.16.43.41; Wed, 09 Nov 2016 16:43:42 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 741DB689E52; Thu, 10 Nov 2016 02:43:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f182.google.com (mail-pf0-f182.google.com [209.85.192.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5AA18689C57 for ; Thu, 10 Nov 2016 02:43:29 +0200 (EET) Received: by mail-pf0-f182.google.com with SMTP id d2so135522444pfd.0 for ; Wed, 09 Nov 2016 16:43:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=io7QcZm2v61E4XH1ewsypnYdnaQvtoYPxD2f3SiwDL4=; b=UuqaJtgg7dlLVe6fyHkEiYbr7HL7Hwf7NLovFhxo1/PgAzh/wAWibaQ6m4v+EFSw2Y xXcbPbWQuUwG6VV8qgajkTRFRe7bkHTef+qwoU/Ynmu3ofiu50N67Um3vhDD2NBbRgTu sSFb/GNvtcTV7ugN0i/HqxSR5hrRoPk3oFNxDT70vQB5zz4Qa5OXWeGGis6hg0AV+gC6 0fNQ43ZI0avyuhkmf8Lyqkpf8ayxKl6AXaEzoDV6/PZeKVT6R00WZuXXTyu9xlGIJwn3 oBHdzDpe1y0WXWvjcrz9vZSem1gk1ZLd5giKJl8TafZWgyz4VzAWYtsZ/UE++r8NP09V 892A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=io7QcZm2v61E4XH1ewsypnYdnaQvtoYPxD2f3SiwDL4=; b=J8QYpPa3MU1lcwstVIGmcOKZn34FB2c2u/LAFg2+NN3kvFJJYr7oJ9xc5+CgUOkRLT eDRtU7k+CNdd3Q0hPvM3MzRMLfYzzJIOOH2SgzSpGqDKKZHjt0iLaoAihMtG3o3L+MF6 oMZEiJw85QdMoSNjyQRE2O4mzsE4ux6CvhpiM9IKQ7nypiUYPKUYDL7H8hQ2yo9suPRl rqCdyJ0p0JdAomyit2co88zhY3Nkmok0nt1NZOLH4705AhFaWATL3fbvdekYgQec2Mld bmK5KOz78zZks3W4/2icm3KVTtI2K2zlr7pbW2y61FMUdEVI3t4k1CWiFd4ndaYVao1R IaHA== X-Gm-Message-State: ABUngvcPPFwQ/KX2qRCqeoUOZJLtbt+hlKzD1gFlVlNIDta8Ceh1SdH41wsvrObY2bCs0jhN X-Received: by 10.98.35.211 with SMTP id q80mr4497965pfj.26.1478738611197; Wed, 09 Nov 2016 16:43:31 -0800 (PST) Received: from zhenni.mtv.corp.google.com ([100.98.2.83]) by smtp.gmail.com with ESMTPSA id yx8sm1936273pac.29.2016.11.09.16.43.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 09 Nov 2016 16:43:30 -0800 (PST) From: Zhenni Huang To: ffmpeg-devel@ffmpeg.org Date: Wed, 9 Nov 2016 16:42:35 -0800 Message-Id: <1478738555-415-1-git-send-email-zhennihuang@google.com> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 In-Reply-To: <1478198900-63335-1-git-send-email-zhennihuang@google.com> References: <1478198900-63335-1-git-send-email-zhennihuang@google.com> Subject: [FFmpeg-devel] [PATCH] mov: extract stsd vendor field in metadata. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhenni Huang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Also updates fate ref for rgb24-mkv as the output video will contain the new metadata field and have different md5sum and file size. --- libavformat/mov.c | 18 ++++++++++++++++-- tests/ref/fate/rgb24-mkv | 4 ++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 4222088..7ed2fcb 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1824,6 +1824,8 @@ static void mov_parse_stsd_video(MOVContext *c, AVIOContext *pb, uint8_t codec_name[32]; int64_t stsd_start; unsigned int len; + int video_vendor_id = 0; + char video_vendor_id_buffer[5]; /* The first 16 bytes of the video sample description are already * read in ff_mov_read_stsd_entries() */ @@ -1831,7 +1833,13 @@ static void mov_parse_stsd_video(MOVContext *c, AVIOContext *pb, avio_rb16(pb); /* version */ avio_rb16(pb); /* revision level */ - avio_rb32(pb); /* vendor */ + + /* set video_vendor_id */ + video_vendor_id = avio_rl32(pb); /* vendor */ + memset(video_vendor_id_buffer, 0, 5); + memcpy(video_vendor_id_buffer, (char*)&video_vendor_id, 4); + av_dict_set(&st->metadata, "vendor_id", video_vendor_id_buffer, 0); + avio_rb32(pb); /* temporal quality */ avio_rb32(pb); /* spatial quality */ @@ -1880,9 +1888,15 @@ static void mov_parse_stsd_audio(MOVContext *c, AVIOContext *pb, int bits_per_sample, flags; uint16_t version = avio_rb16(pb); AVDictionaryEntry *compatible_brands = av_dict_get(c->fc->metadata, "compatible_brands", NULL, AV_DICT_MATCH_CASE); + int audio_vendor_id = 0; + char audio_vendor_id_buffer[5]; avio_rb16(pb); /* revision level */ - avio_rb32(pb); /* vendor */ + + audio_vendor_id = avio_rl32(pb); /* vendor */ + memset(audio_vendor_id_buffer, 0, 5); + memcpy(audio_vendor_id_buffer, (char*)&audio_vendor_id, 4); + av_dict_set(&st->metadata, "vendor_id", audio_vendor_id_buffer, 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/rgb24-mkv b/tests/ref/fate/rgb24-mkv index 88d22c1..ba6311d 100644 --- a/tests/ref/fate/rgb24-mkv +++ b/tests/ref/fate/rgb24-mkv @@ -1,5 +1,5 @@ -94cce0d7d5b14b4c86e74a1ca454c5aa *tests/data/fate/rgb24-mkv.matroska -58361 tests/data/fate/rgb24-mkv.matroska +29e4fffecb2002912fc05ed910679ce3 *tests/data/fate/rgb24-mkv.matroska +58390 tests/data/fate/rgb24-mkv.matroska #tb 0: 1/10 #media_type 0: video #codec_id 0: rawvideo