From patchwork Tue May 9 08:18:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?THVrw6HFoSBMYWxpbnNrw70=?= X-Patchwork-Id: 41555 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp2889966pzb; Tue, 9 May 2023 01:19:32 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5+BjfJfPoadYi+54tnAaf67R8P9jNKCG0cQDggOCfGcI0fpDwbPKb6J+98ee34IKwz+IOf X-Received: by 2002:a17:907:786:b0:965:6a32:451f with SMTP id xd6-20020a170907078600b009656a32451fmr10023268ejb.6.1683620372463; Tue, 09 May 2023 01:19:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683620372; cv=none; d=google.com; s=arc-20160816; b=Mt2p+Hd1Dwue+jciD0sJ1dBZd/9fvkanozyQeMe+Bz2u1bpGrTTnTwm8/DewTiUy5+ a+0rzLDf2Jhl2e0gJ2igWEL6TUWOIjumtFixaHOGteP6dSuEJDzjwmiHNaSr5RldbrSg /1wyL6TDdWqLBq3seom9WeC/hTZFfSFr60b2huc2h7YLnyZuEoYNKclGaSjuaePSEgtH wX7KPPkXnBvnXNWFrKv5HgPTn2uCWdl85gSB3hFRdZQAZUQU8yLr1QV8rrN9YbeFJTfv kgy5aB7qVQE5COeeOPWiQaEBA/ZAlXX4W6se+nvaUUKuJokdyrBvEQ5NMYNoQDMlIfoN e6Lw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:to:from :date:message-id:mime-version:user-agent:feedback-id:dkim-signature :dkim-signature:delivered-to; bh=lTgfdRqwH8Wusmne+9O0HY1SP/bt9xtFd4dd02vOLII=; b=PoldLbJPokTHJGT8WGxCnNNQlAYBF61fAFxRItoPKvuruK3H4w5H4sHrjRmTjpEtcR bXKGvFad4IrOA9D/AYFEps+Sy3pNzjaMu30b0qbxX3ogafPQATbxGNbTnzEvaSgzGv5O 4aWxpocUGusZMRTiuwJQsGqWExgfA2if3INv+339T+6diGO450Fw0LKcMmol7cquB9LG lMCF9bHpZohsQxKi4M0jYoMkvs6ZYYmEzFvWRKqy9Y13ivLtmbfkvdVnKYgKZSbkoPvO tKAeW6EDgyEXh7/eLIRze4O+2IPj/rnG90/roL36IecXBKvH8XChgy890aaIeCMgUdaq Wn6g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@lalinsky.com header.s=fm1 header.b=I9UgjidA; dkim=neutral (body hash did not verify) header.i=@messagingengine.com header.s=fm3 header.b=ZXY9Ipbi; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id lh12-20020a170906f8cc00b0094f7bf9919bsi1375734ejb.995.2023.05.09.01.19.31; Tue, 09 May 2023 01:19:32 -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=@lalinsky.com header.s=fm1 header.b=I9UgjidA; dkim=neutral (body hash did not verify) header.i=@messagingengine.com header.s=fm3 header.b=ZXY9Ipbi; 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 76FAC68C1E3; Tue, 9 May 2023 11:19:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 22F3A68C186 for ; Tue, 9 May 2023 11:19:20 +0300 (EEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id 0FA313200977 for ; Tue, 9 May 2023 04:19:16 -0400 (EDT) Received: from imap50 ([10.202.2.100]) by compute1.internal (MEProxy); Tue, 09 May 2023 04:19:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lalinsky.com; h= cc:content-type:content-type:date:date:from:from:in-reply-to :message-id:mime-version:reply-to:sender:subject:subject:to:to; s=fm1; t=1683620356; x=1683706756; bh=TJHAKpAhdBLnw6XTOzizvTnAg jky5tmysPvA9n6aFC8=; b=I9UgjidAvBvBPxbMosY6AHEI8qURk3e6ZPSa10DEJ UMVJVlasiWLRoSGwCMsQRyUj9GQ4t950/YPF050vZj5IuN9f0Lw2zi6xlrmFeBmV ZWsJhwbm/ilbYvfUIiUV/o1XG92+t2pvLVWQEFY00SGNczHsFncHMFjLmXxIlC6l DqMLas8zf2DMlVihPT6Ubnj0H2lJv+BNvZMIksrc2jqonTEquIhy0on2lPffURgR rOmCGGX6AmmkaJjMvcIvWz6ISxJFolsD4e3HUYmfEqxInZYxLiqW5EWbXYDix7yp r07bHjgYUSCvv8SSNVmKpr35r72Au6+h49ciT/mOzC2/A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:message-id :mime-version:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1683620356; x=1683706756; bh=TJHAKpAhdBLnw6XTOzizvTnAgjky5tmysPv A9n6aFC8=; b=ZXY9Ipbi1QM4jNfME8Mh8aanxs023k5vQdtKVTDuiGqSiTTE2Kk 2Z3VXls0XcmgxNjQC1OClnCTsK22EYo8wVD+pvaQJ6nWdr4agK+MTChUH6x7xZo2 6U6SoLspz7PPepJcXLmdwIy15pnl60eaH28JN68A/DYCbtOstv5b2SO0h9uqlWm5 NLP5JGQ7koN/2DeVOtZDljk2OjfaNfjBaapk817Mxj5sUJZbY8tTjK+/FyffDip1 7q0Qf1jVm09zTXAUcsmi2teKXOKtc+HxqXrVKrKikUAly8cUeL8UaEkUy1DnEKWO D3dw5glMsoRdtnsKUpZPOOxQUmyjLDL1YDQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeegtddgtddvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfffhffvufgtsehmtderre erreejnecuhfhrohhmpefnuhhkjokgucfnrghlihhnshhkupcuoehluhhkrghssehlrghl ihhnshhkhidrtghomheqnecuggftrfgrthhtvghrnhepgeeuieejtddtuefgkeduleeltd fhvdegledvlefhtedtudffffduleehleeuleefnecuvehluhhsthgvrhfuihiivgeptden ucfrrghrrghmpehmrghilhhfrhhomheplhhukhgrsheslhgrlhhinhhskhihrdgtohhm X-ME-Proxy: Feedback-ID: ib6f146ff:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 319DB1700168; Tue, 9 May 2023 04:19:16 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-415-gf2b17fe6c3-fm-20230503.001-gf2b17fe6 Mime-Version: 1.0 Message-Id: Date: Tue, 09 May 2023 10:18:56 +0200 From: =?utf-8?b?THVrw6HFoSBMYWxpbnNrw70=?= To: ffmpeg-devel@ffmpeg.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avcodec/libmp3lame: make it possible to set copyright/original flags X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: WIgf8ak56Ka8 I'd like the control the copyright and original bits in output MP3 frames. I've added two options to the libmp3lame encoder, the defaults are copying the defaults from LAME (original=1, copyright=0). Patch attached. Regards, Lukas Lalinsky From 3f5d5f99e862b66867a8a93c8e5928b9e866e010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Lalinsk=C3=BD?= Date: Tue, 9 May 2023 08:30:03 +0200 Subject: [PATCH] avcodec/libmp3lame: make it possible to set copyright/original flags --- doc/encoders.texi | 8 ++++++++ libavcodec/libmp3lame.c | 16 +++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/doc/encoders.texi b/doc/encoders.texi index 3cb6fc1ce7..f8c691ba1a 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -864,6 +864,14 @@ Enable the encoder to use ABR when set to 1. The @command{lame} @option{--abr} sets the target bitrate, while this options only tells FFmpeg to use ABR still relies on @option{b} to set bitrate. +@item copyright (@emph{-c}) +Set MPEG audio copyright flag when set to 1. The default value is 0 +(disabled). + +@item original (@emph{-o}) +Set MPEG audio original flag when set to 1. The default value is 1 +(enabled). + @end table @section libopencore-amrnb diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c index e119189f2a..312bc4230f 100644 --- a/libavcodec/libmp3lame.c +++ b/libavcodec/libmp3lame.c @@ -55,6 +55,8 @@ typedef struct LAMEContext { float *samples_flt[2]; AudioFrameQueue afq; AVFloatDSPContext *fdsp; + int copyright; + int original; } LAMEContext; @@ -137,6 +139,12 @@ static av_cold int mp3lame_encode_init(AVCodecContext *avctx) /* bit reservoir usage */ lame_set_disable_reservoir(s->gfp, !s->reservoir); + /* copyright flag */ + lame_set_copyright(s->gfp, s->copyright); + + /* original flag */ + lame_set_original(s->gfp, s->original); + /* set specified parameters */ if (lame_init_params(s->gfp) < 0) { ret = AVERROR_EXTERNAL; @@ -303,9 +311,11 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, #define OFFSET(x) offsetof(LAMEContext, x) #define AE AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { - { "reservoir", "use bit reservoir", OFFSET(reservoir), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, AE }, - { "joint_stereo", "use joint stereo", OFFSET(joint_stereo), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, AE }, - { "abr", "use ABR", OFFSET(abr), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, AE }, + { "reservoir", "use bit reservoir", OFFSET(reservoir), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, AE }, + { "joint_stereo", "use joint stereo", OFFSET(joint_stereo), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, AE }, + { "abr", "use ABR", OFFSET(abr), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, AE }, + { "copyright", "set copyright flag", OFFSET(copyright), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, AE}, + { "original", "set original flag", OFFSET(original), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, AE}, { NULL }, }; -- 2.25.1