From patchwork Thu Jun 29 14:52:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Derek Buitenhuis X-Patchwork-Id: 4158 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp4612974vsb; Thu, 29 Jun 2017 07:52:51 -0700 (PDT) X-Received: by 10.28.74.218 with SMTP id n87mr11950812wmi.16.1498747970972; Thu, 29 Jun 2017 07:52:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498747970; cv=none; d=google.com; s=arc-20160816; b=p0Uf+M9UwNunCReoEqAHelxJ4Yshbmddhm7Pe/ENMB21Zd1ctfi4u3j8oORgCLzpVs rjbxj4bTYzoU5FOO5xLn/VY53PdK+DkjU1JDuDC8SbfRd5C1zjLwXJOiDZ9YTJbK3gZz Srl7y17oNXxziGmMRtXrhTk7mgUowgcNPCHOB+poqTiO7+Lm8n18QLk3WS2Ye2uShus9 7Vs77luu5ynxLT5PSxdkPg8rjZrFA6Byvv3Nj9LgVBXVFcj9L7vo4RhdBKwrLdO102y9 Q2KPt6X4J0/DRjrKh3gtExAC3TzerQ8tCpgR7fnoQkMBO0TsOkfg0zyBISwBvx/4vgwF CBMw== 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=Vo/guB5VTHgaTWaCTM/OIfwKR9OcmHOa7UwnQgt0i38=; b=jF/CxFTIcg0TOHM4eTca3a20Gs/LVGUP7DDTsjMwbDhy9HkugiVTk4Bs58bXgz2Mej U0NDVnVBP/OKU8wLd9/JMUpy6PMNeFqO3Zr2He6IwXfglccwSP+93e95BbLt7d5Va4mo 1gTOpOk4CJfNpBaJOm4gSYp+o+7DCc4lC/lAgRdltScevRiUC2aJGid4Pyl08rjm373H Fdo0NmkAJSduKzE/tEOAfLjzuEBTWC7o5iEuhzPEcXDNqCQoJ1r729ZB50+YPjaOoKIA oPs3IuonnQtauP4fBWIwfiRdnfy5Kp9TlNnrozOeziTkoPHqJsudRenxOMUTJcQUqVVW blmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=JcUxfcMU; 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 h23si4172396wrb.6.2017.06.29.07.52.50; Thu, 29 Jun 2017 07:52:50 -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=JcUxfcMU; 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 55F2668A083; Thu, 29 Jun 2017 17:52:48 +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 EA0D6689BD1 for ; Thu, 29 Jun 2017 17:52:41 +0300 (EEST) Received: by mail-wm0-f67.google.com with SMTP id y5so3032729wmh.3 for ; Thu, 29 Jun 2017 07:52:42 -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=Pi8Apl99QUJv7MsmMNjcRHnAIqBH/z35F7vBKctUwso=; b=JcUxfcMUUU+Cspd/8JtuQDi8fiTg3+TCkBU9DfEcfBe8UHe/wC6RtgcggV1ibMBpHg o7GeyFXaWppebpRbY97w9LlhYvwuYnrZD4oMUKdb2elT+55Oa1+TBEEtiDfYyEhvAk0F Ex4jFhhPzTbvNBkCj5Y4rKmFkUuUNBTcAvCTbhEGjFJsOB/9w4aZtspmw0JZmcgZvzMM gUhzAi9xuk5ZzCh0NVJAibmSMJvDAtC4wE+FlWy3eKMyJp83X56pQ7i83OhSPxcdtRez 4mq4LOScBXnz/9+kRIaAWN9cEOH/kJ3yNCsImCrnvriepSLQtcS0wIid7eOWCitTUh6z YFew== 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=Pi8Apl99QUJv7MsmMNjcRHnAIqBH/z35F7vBKctUwso=; b=jkvygWLVbJUsYkP8PLf5sV/dTq72utgPsEuFSO039Vue7LxKW3sKdd1jEPhrZSuvtg yOyTJHdFeGbXc8hHlvK0nJR2KrWfOb6MrMfdQLVigyA7PyiIdxl3aJywg65qjsKH8Djy 7t+fzHjz+9/blzaSlMe61zBwAbooORrQ4ufcPufULSHx5AOUySHzakYk3yAhgDHTFt/F PHFZZeVnfE+nfef/woWYz8as4L63CHPo3GAFN1J81j+GN4cGf3n/JWshm/oMwizDLMQn 66xn63em9sbulo99TIKvyHKLrOfy17GkD4nCOOClVLMu8ue04QmnCo+2j/IRrYjlJkCg LHNg== X-Gm-Message-State: AKS2vOwgy57gjFc52PUmEGmnsplyQawRgjRMDCrsrLTR4ZT/hKtaLsOp yil5vJPyOSouTF7Mo3A= X-Received: by 10.80.163.210 with SMTP id t18mr2091069edb.158.1498747961351; Thu, 29 Jun 2017 07:52:41 -0700 (PDT) Received: from vimeo-vm.localdomain ([62.208.38.79]) by smtp.gmail.com with ESMTPSA id n53sm1713626edn.53.2017.06.29.07.52.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 29 Jun 2017 07:52:40 -0700 (PDT) From: Derek Buitenhuis To: ffmpeg-devel@ffmpeg.org Date: Thu, 29 Jun 2017 15:52:05 +0100 Message-Id: <1498747925-48428-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 v3] 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 --- With fixed EVRC. --- libavformat/movenc.c | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index ca389e3..f0262e3 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_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_EVRC , 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, };