From patchwork Thu Jun 29 03:47:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Derek Buitenhuis X-Patchwork-Id: 4154 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp4031725vsb; Wed, 28 Jun 2017 20:48:18 -0700 (PDT) X-Received: by 10.28.5.198 with SMTP id 189mr79071wmf.27.1498708098657; Wed, 28 Jun 2017 20:48:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498708098; cv=none; d=google.com; s=arc-20160816; b=cK/2EFF6jj4FR39d0nhrpFyHSlGbwKnC/C80T3mytm+LBhKY69E2hj1IbQ+6H2V9Zk 1UNr0SblW1SL4ls11IOHE1SiHWypxM1Lv7CgqyN/ihzJCqKgjjvFWA86h2y5O+HHFmAz Pr5VwoFmk2hCto/HEpigvQBKbToNsZ220u60bb8vZm4aYVjN7zf5N0RXsr5r2QU0AAyh 2efySHlCckBWkp0cTaGY/l2xyuk50w7gaokC/3NFxmZxAEpIP5gtk9XIFQsb3ieFkJzr qQxpjXwbb/shZ9jAT0EEXAoI/HVXTtJCc6rHpsYY3+8S6KREkwKZHRuxxk88gM4TLwuz X2qA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=AgLe/OyHc6G9cUtQ1HvugRi8I0MYOiAea8E/c76NzKE=; b=pv3rdSDKmbfW6+He5VFGPFM70PPV2yUEWCZW3FaBB2y7NRHzr+0g0xTYRJQJpxOYCc ZIaQqFIQv/TS+FwedU4GZxW1q/91+qryuWeWLSkMFyAvusjBf5h9BUKubNxH4VEjB88E zUDiqz3YF+TtT+BcIwyU6XF3FqHI77tLoZWevdFnDiJ0q0eJjj5oH4LBeVSzZxlRVpxE tJ6xd1Ay2UxVKS+rNXnuONJ4J2SPBakJoPiljAitNpkkVZHFHCTmv2DJk/VG8YfyofIT DhMzzgClXkJMa+vT1ZHu1vNwNIjOablR85+Y37Cn3LD8NODC0WblIcbRRgbmL+t+iBku BrCg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=Ay2XmQBw; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 62si7250262wmq.37.2017.06.28.20.48.18; Wed, 28 Jun 2017 20:48:18 -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=@gmail.com header.b=Ay2XmQBw; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9BD7968A08F; Thu, 29 Jun 2017 06:48:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3ADEF689B32 for ; Thu, 29 Jun 2017 06:48:06 +0300 (EEST) Received: by mail-wm0-f67.google.com with SMTP id j85so124245wmj.0 for ; Wed, 28 Jun 2017 20:48:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=DQ2qI/EPxw6dEtGNriVlmj92nSOtvgYrmiV7mVjyNWg=; b=Ay2XmQBwbjEtTvCyqmhj4MqnwUu+B8hGWNn5wwltfj26qfvJyokCvbPKjJyWBnK0PY mMWGv2dEp7JB6rqZgdrlU5JuyVsWuO508tLc6hlYDhtVKdZ6k+UHwQQJm5CdtyM+twbR DFhCe/d0LklFnJZcwVa5KBWmSHWHd6L/KOblL/rD6WV5bOaDpViWzLthsTQrdNhNcllV vbIkeWD8oL9m0wFuLTNJI+qgFSD+F8cqQqexHGwo55ivo8rl1884UZySQ5O8URe48jqC EXooND4Th+yiLDXQU6GTYxPvppUvbZXC+ij3Y6UEDMlVm6ALMsYAO8ytOrPpR+98iczU GGjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=DQ2qI/EPxw6dEtGNriVlmj92nSOtvgYrmiV7mVjyNWg=; b=VhyL85CI8slVxuPn4+A4DxKET7kr9g5H19GmHGjJ+wvWV7/u04Ok3TkfKtZnOQMOxV Dpr1QiUHQpZW/pcd7kmfd3W69PAWBEzoCPJImO/Y0Y1M2GLn45tWUcPdJYtDj5YWs82q LhNdBp1wn5kjL8Xq4WuoBfEyrjDVI4ADxvAgb/v+kI1y3kkepEUXLJwTTG/Rb6/wNdnl UNJtcjy1rlOIbZU8+rliJcuaxb8EzYmM5zgOkBjsE2ocrqCJq60mp2FUsCdWLgWmiddH RvlIBVduj4n5midfsjlfFfe1Q7eHPXgl9lkb8PQZRI5pM+9+QTRX/aZ6+y/lDL4iK3R1 tgQQ== X-Gm-Message-State: AKS2vOzrdmgveJlZYQkVhW4HLaLst/J/t4Z8ECzHAvK1qLcVu91fNCA/ 4SDC1lVrcoJeO1N+nOM= X-Received: by 10.80.154.129 with SMTP id p1mr79034edb.131.1498708088121; Wed, 28 Jun 2017 20:48:08 -0700 (PDT) Received: from vimeo-vm.localdomain ([62.208.38.79]) by smtp.gmail.com with ESMTPSA id y53sm50860edd.4.2017.06.28.20.48.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Jun 2017 20:48:07 -0700 (PDT) From: Derek Buitenhuis To: ffmpeg-devel@ffmpeg.org Date: Thu, 29 Jun 2017 04:47:34 +0100 Message-Id: <1498708054-46445-1-git-send-email-derek.buitenhuis@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1498664522-44645-1-git-send-email-derek.buitenhuis@gmail.com> References: <1498664522-44645-1-git-send-email-derek.buitenhuis@gmail.com> Subject: [FFmpeg-devel] [PATCH 1/5 v2] movenc: use correct tag list for AVOutputFormat.codec_tag 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: John Stebbins ff_mp4_obj_type contains the wrong type of tags for AVOutputFormat.codec_tag. AVOutputFormat.codec_tag is used to validate AVCodecParameters.codec_tag so needs to be the same type of tag. Creates new tag lists for mp4 and ismv. New tag lists support same list of codecs found in ff_mp4_obj_type. psp uses the same tag list as mp4 since these both use mp4_get_codec_tag to look up tags. (cherry picked from commit 713efb2c0d013a42be4051adb7cd90a7c2cbbb4f) Signed-off-by: Derek Buitenhuis --- libavformat/movenc.c | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index ca389e3..c516fd4 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -6488,6 +6488,41 @@ static int mov_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt) return ret; } +const AVCodecTag codec_mp4_tags[] = { + { AV_CODEC_ID_MPEG4 , MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_H264 , MKTAG('a', 'v', 'c', '1') }, + { AV_CODEC_ID_HEVC , MKTAG('h', 'e', 'v', '1') }, + { AV_CODEC_ID_MPEG2VIDEO , MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_MPEG1VIDEO , MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_MJPEG , MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_PNG , MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_JPEG2000 , MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_VC1 , MKTAG('v', 'c', '-', '1') }, + { AV_CODEC_ID_DIRAC , MKTAG('d', 'r', 'a', 'c') }, + { AV_CODEC_ID_TSCC2 , MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_VP9 , MKTAG('v', 'p', '0', '9') }, + { AV_CODEC_ID_EVRC , MKTAG('m', 'p', '4', 'v') }, + { AV_CODEC_ID_AAC , MKTAG('m', 'p', '4', 'a') }, + { AV_CODEC_ID_MP4ALS , MKTAG('m', 'p', '4', 'a') }, + { AV_CODEC_ID_MP3 , MKTAG('m', 'p', '4', 'a') }, + { AV_CODEC_ID_MP2 , MKTAG('m', 'p', '4', 'a') }, + { AV_CODEC_ID_AC3 , MKTAG('a', 'c', '-', '3') }, + { AV_CODEC_ID_EAC3 , MKTAG('a', 'c', '-', '3') }, + { AV_CODEC_ID_DTS , MKTAG('m', 'p', '4', 'a') }, + { AV_CODEC_ID_FLAC , MKTAG('f', 'L', 'a', 'C') }, + { AV_CODEC_ID_OPUS , MKTAG('O', 'p', 'u', 's') }, + { AV_CODEC_ID_VORBIS , MKTAG('m', 'p', '4', 'a') }, + { AV_CODEC_ID_QCELP , MKTAG('m', 'p', '4', 'a') }, + { AV_CODEC_ID_DVD_SUBTITLE, MKTAG('m', 'p', '4', 's') }, + { AV_CODEC_ID_MOV_TEXT , MKTAG('t', 'x', '3', 'g') }, + { AV_CODEC_ID_NONE , 0 }, +}; + +const AVCodecTag codec_ism_tags[] = { + { AV_CODEC_ID_WMAPRO , MKTAG('w', 'm', 'a', ' ') }, + { AV_CODEC_ID_NONE , 0 }, +}; + #if CONFIG_MOV_MUXER MOV_CLASS(mov) AVOutputFormat ff_mov_muxer = { @@ -6548,7 +6583,7 @@ AVOutputFormat ff_mp4_muxer = { .write_trailer = mov_write_trailer, .deinit = mov_free, .flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, - .codec_tag = (const AVCodecTag* const []){ ff_mp4_obj_type, 0 }, + .codec_tag = (const AVCodecTag* const []){ codec_mp4_tags, 0 }, .check_bitstream = mov_check_bitstream, .priv_class = &mp4_muxer_class, }; @@ -6569,7 +6604,7 @@ AVOutputFormat ff_psp_muxer = { .write_trailer = mov_write_trailer, .deinit = mov_free, .flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, - .codec_tag = (const AVCodecTag* const []){ ff_mp4_obj_type, 0 }, + .codec_tag = (const AVCodecTag* const []){ codec_mp4_tags, 0 }, .check_bitstream = mov_check_bitstream, .priv_class = &psp_muxer_class, }; @@ -6631,7 +6666,8 @@ AVOutputFormat ff_ismv_muxer = { .write_trailer = mov_write_trailer, .deinit = mov_free, .flags = AVFMT_GLOBALHEADER | AVFMT_ALLOW_FLUSH | AVFMT_TS_NEGATIVE, - .codec_tag = (const AVCodecTag* const []){ ff_mp4_obj_type, 0 }, + .codec_tag = (const AVCodecTag* const []){ + codec_mp4_tags, codec_ism_tags, 0 }, .check_bitstream = mov_check_bitstream, .priv_class = &ismv_muxer_class, };