From patchwork Wed Jun 28 15:41:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Derek Buitenhuis X-Patchwork-Id: 4148 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp3453680vsb; Wed, 28 Jun 2017 08:47:57 -0700 (PDT) X-Received: by 10.28.107.88 with SMTP id g85mr7791866wmc.42.1498664877765; Wed, 28 Jun 2017 08:47:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498664877; cv=none; d=google.com; s=arc-20160816; b=rQ4j1jAvEb13OzNvxZNFGGYCyZuD+gzKG8FYMetCoVqcRYqPL2xemQx6sb1NCcmlsT E6Dof+yVCZTEhAgARszypKjX/lg46fzQLsVS82Q2MpFTzxxDLAueGajSeOFsSH4xTMqM pT413ip/8Qk0OSs9jluaUvKzIm7LGloqa9DXZScZOL4G6r+qNfewBvEUVhQwTBa3rvU8 GegL1v24d760jRlZrEYxfFY/RoeugHJIvhVvQ/xpdR60dE85kFnfjo4KLq2Mv7EiyZcC wjXIb6Xz4YVmxDCvTwheGWOgG0OPln98K4x7laHatxJUqZRotqQILKXgIHrCynUTpM95 8hnA== 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=cxldfMqazYl0gV9j+shyYNSFZJmcyJk5HW9mTtGcxRM=; b=CYa6hw5B3vf/F3hSW44d976DMO6DeiQksk4h6LzpvzdGAum2/lmfmgmAvCupMOO4xe JpG8GOEQyJqvEL1lMp1BarJNVs8TZzHi28MtxC9TrebErL9BvcyKrkY91kfKkLPffegv eTQrSJpCoiJ8oFublb65g83PyTElbqoUvMNulgQmkbtLPl94XMtzRNy2R8ELD7BMO24K kyoa2OXaDxjU27thL4SjsvPVlJLtPtzVkFw2/MJ8L2/E5saJttzF60Jw6CrorhyzAiIX jy+nGlBexv0MonLWL82bW++jG3oQ9xjiUyCMV1IvaWkIYSra0/Q9MGLRoWuHDqNIE4w4 7ofA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=Tj/yWE/4; 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 m143si6026512wmg.179.2017.06.28.08.47.55; Wed, 28 Jun 2017 08:47:57 -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=Tj/yWE/4; 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 C059C68A1D7; Wed, 28 Jun 2017 18:47:50 +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 618546809F5 for ; Wed, 28 Jun 2017 18:47:44 +0300 (EEST) Received: by mail-wm0-f67.google.com with SMTP id p204so7451259wmg.1 for ; Wed, 28 Jun 2017 08:47:46 -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=nrOc+xna9EQeEQ61SZfCYYYaeqeuu4Q4Eg+QFH56wik=; b=Tj/yWE/4hKkxAx2cBbeEK3TLk/hmd77+0i3vHZQcZDbPJ4/8LMjome7cl6kcIkJaK8 aoNoCF4gpOKg0z4D9ap1ujrc2J/0PaRKyMq7ztGBp8qoBuIA3eJsrwtywrRLeGOr0jGj 21RoUlICo+VXTRoxHfzMzVz4z78i0NmsrDji1uKjLE0F2lKqOtk8ov2ZcunM2Ame4/Ni r55xdolfUj5oy1NFWW+lJr75X7QAQdYPSSNFIgtBU+J7kOWh02E9SxJwkersGtnog6/z FN+hCmscco8w3aQuBznCdjVQXRHXGcIY0rO9Z1BrKcrOw2P+ftn8NT8WRnDeUazsP6fl inTg== 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=nrOc+xna9EQeEQ61SZfCYYYaeqeuu4Q4Eg+QFH56wik=; b=PEk9boojZ7hnAfIqHuNXFPWfTzL1+RFwi/WquMalZE5oiKasVivto+5P1tYAeYkH90 hcsoBrXeBYFi4F5BaCPYOPBEiS4emRfAJGav/SoIOrXJJk9wkPh6xSqxJ/V8aiOaK/kO WS5wt+dD9ZBGMnLiiEghhQWpR9fPoKW+GqXYF5cxkhSn5ebsXrZKCH9yUjOKfHMYSBHx YfvhMRHPJo6/77f0coGdD/IEeXD0ZlSxwK9MHaCkMh/FDPI4/kufSrtbx8dGDKXdfAvK xLuqawThyT2aHhLxpCEvxMHzOYTPXvpRBAHnC/KV6RQMtJo0z/DFdTAbmA/Z/si8jlbe 6iDA== X-Gm-Message-State: AKS2vOzj/iqcsbp7a7yGFNIoJbhIHKLn9Irv4Qa82QN7pYw4G8QtmSLH WcUmeOlLUCKeQSCREHo= X-Received: by 10.80.220.200 with SMTP id v8mr8210763edk.91.1498664559973; Wed, 28 Jun 2017 08:42:39 -0700 (PDT) Received: from vimeo-vm.localdomain ([62.208.38.79]) by smtp.gmail.com with ESMTPSA id y53sm1230538edd.4.2017.06.28.08.42.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Jun 2017 08:42:39 -0700 (PDT) From: Derek Buitenhuis To: ffmpeg-devel@ffmpeg.org Date: Wed, 28 Jun 2017 16:41:58 +0100 Message-Id: <1498664522-44645-2-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] 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..2a07e00 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_EVR , 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, };