From patchwork Thu Nov 3 18:48:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: liangsi X-Patchwork-Id: 1272 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp941242vsb; Thu, 3 Nov 2016 11:53:59 -0700 (PDT) X-Received: by 10.28.142.82 with SMTP id q79mr9188982wmd.20.1478199239477; Thu, 03 Nov 2016 11:53:59 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o21si504711wmi.28.2016.11.03.11.53.59; Thu, 03 Nov 2016 11:53:59 -0700 (PDT) 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 C94A0689DC6; Thu, 3 Nov 2016 20:53:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f177.google.com (mail-pf0-f177.google.com [209.85.192.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F0484689DAC for ; Thu, 3 Nov 2016 20:53:47 +0200 (EET) Received: by mail-pf0-f177.google.com with SMTP id d2so36188081pfd.0 for ; Thu, 03 Nov 2016 11:53:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=pnN8KOiJeJJQxb3xmHmTHkZ1uwUIIJ3/E/VrVNq/Wcs=; b=GWZZpY5ZR7qgoxyW/Mqq44WC1XuE5ZeMu8PBbAEZkPQh8M/BZiZqqQf14mlmv068SS 49ACx4N5G+mOwtvMUNI+oXhHHqHVQS8h2++zJPcvzilsUxwlNQ0L3/b4Oi2mLgd8kIO8 nuHGs6ZysqBQv5mJlzdU29K38NfmtZ3bT5VUl+Y+mfR0l/eCVbb/n3RcAAUQbuzY6mUX M6G9oIwNzNCpBooMo7sKqgxBgWOFD92rTPw3l00lqfGBGUdUiLeBOT070suNNSx6qLqW QU2n8/lXmjZyOXMqu6MKe67oDmQCE4IxzMLVL9kQDO1tGXxJ7S19CChdqW+G72oacCuX ERfA== 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; bh=pnN8KOiJeJJQxb3xmHmTHkZ1uwUIIJ3/E/VrVNq/Wcs=; b=H1qjFqK82yk2KoxPfFZSoT/iEeJtxxOF5oe/JrRorpKTWZkwWuCPgLMMDWNn8W1H86 dwFPpUXP7eFCGgO198rJ0lX7sS5QEIi25RvaRdBvVvLfn3RO7tCycd1S7BKGcS96AVrj lomO9BirgohaY/V8K3bnOzu4mRXxHc7Us1swDX8hpo8Go5dbNlfFVdItg34etol/ZAMH oY5p1dhTaF0yX0KhASX/0b5m91V9Eb1jyO6+2JQrH306eoU3EJ02KRrX2LusRS3GsGVu MD+PhrN2JxEB83YfKpVoUmNj+ByQ6KS2J0P3Oij5mesTNBbipX9fD8WBL3+17a7O6+Ng 9ZwQ== X-Gm-Message-State: ABUngvdQlb3oAFiEvsmLXkSpt0nSgUTCTIym/txT4qwIusLFbSEk/LhOiTdrpZEZvnv0I5w8 X-Received: by 10.98.200.203 with SMTP id i72mr19146813pfk.181.1478198906551; Thu, 03 Nov 2016 11:48:26 -0700 (PDT) Received: from zhenni.mtv.corp.google.com ([100.98.2.83]) by smtp.gmail.com with ESMTPSA id f62sm14474829pfg.18.2016.11.03.11.48.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 03 Nov 2016 11:48:26 -0700 (PDT) From: Zhenni Huang To: ffmpeg-devel@ffmpeg.org Date: Thu, 3 Nov 2016 11:48:20 -0700 Message-Id: <1478198900-63335-1-git-send-email-zhennihuang@google.com> X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 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" --- libavformat/mov.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/libavformat/mov.c b/libavformat/mov.c index 4222088..2cb041f 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,10 +1833,18 @@ static void mov_parse_stsd_video(MOVContext *c, AVIOContext *pb, avio_rb16(pb); /* version */ avio_rb16(pb); /* revision level */ - avio_rb32(pb); /* vendor */ + video_vendor_id = avio_rb32(pb); /* vendor */ avio_rb32(pb); /* temporal quality */ avio_rb32(pb); /* spatial quality */ + /* set video_vendor_id */ + video_vendor_id_buffer[0] = (video_vendor_id >> 24) & 0xff; + video_vendor_id_buffer[1] = (video_vendor_id >> 16) & 0xff; + video_vendor_id_buffer[2] = (video_vendor_id >> 8) & 0xff; + video_vendor_id_buffer[3] = (video_vendor_id >> 0) & 0xff; + video_vendor_id_buffer[4] = 0; + av_dict_set(&st->metadata, "vendor_id", video_vendor_id_buffer, 0); + st->codecpar->width = avio_rb16(pb); /* width */ st->codecpar->height = avio_rb16(pb); /* height */ @@ -1880,9 +1890,20 @@ 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_rb32(pb); /* vendor */ + + /* set audio_vendor_id */ + audio_vendor_id_buffer[0] = (audio_vendor_id >> 24) & 0xff; + audio_vendor_id_buffer[1] = (audio_vendor_id >> 16) & 0xff; + audio_vendor_id_buffer[2] = (audio_vendor_id >> 8) & 0xff; + audio_vendor_id_buffer[3] = (audio_vendor_id >> 0) & 0xff; + audio_vendor_id_buffer[4] = 0; + + 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 */