From patchwork Fri Aug 7 21:26:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Strasser X-Patchwork-Id: 21527 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 8E14C44B952 for ; Sat, 8 Aug 2020 00:26:25 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5DFD468B31D; Sat, 8 Aug 2020 00:26:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 52D0F68B31D for ; Sat, 8 Aug 2020 00:26:19 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1596835578; bh=uUXuN38BJm7sIFyTfrINXS9L2nM3K7RgAJTeVMDNNi0=; h=X-UI-Sender-Class:Date:From:To:Subject; b=IwXEN+I3h47+b5FcF4wPu4ssJemLa5MhGCPWc14UU3tu8wEeImfjPTPYSf0/0YIt+ 8lFkuyJJOWB91qDVKBE2rGzkWLAjwn43wWDzuAeVb86CuhpPTk91f99tlWd4OqpLei JkbDGOyXo5nqfR+5crLZngnhnkbb27dlDQAVY84M= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from akuma.local ([91.12.123.120]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MNbp3-1kOBhB2fRz-00P7h9 for ; Fri, 07 Aug 2020 23:26:18 +0200 Date: Fri, 7 Aug 2020 23:26:17 +0200 From: Alexander Strasser To: ffmpeg-devel@ffmpeg.org Message-ID: <973bce64ee2a1c5a0951604c3ba0d772caf7c05d.1596835157.git.eclipse7@gmx.net> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-Provags-ID: V03:K1:DbR7gXYVsLjnxUXJ9AkDioDWAQPcMdHieep5DSl+NxL/n3xdDdj BS0JhiLIMchabN6zkNXChRH4+sg9skgIABHhjRFfBBXwiYtPh02X/QOTmLPF1uFuiRblS+O HrpeCH9j1CXgWyIPiSRtTk0ew/Ql1TyEl9jIbmj2qqBQQs4NP86A6eH9BVwXJ+ip4+OKMNr 7jvG8WRig9bhuTmi/JZMg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:Tw+TLX9mxDI=:w4UmmoPIOFmETDM+cR1z3c XWN7XDGMc2ZX4C2SlBC3l4rtyCLBH2QmPuyB9uTdWC2dicLD46aXXdCa5uFbkm+Am5DRGDYH4 RMiTJ/bRFbDdGJ0IYO0BmZS5YBYvtimy/h549aVvLSBiiASHcbElZaUGz2qOOxxQDkGWStI81 kwytj7BWf0KRauz5w5JgNE9vVleYX5k5c+ywefwjdjo3dB21NhadSQ1ExudOzQMrhsz2DiXrv iMpXHOFlFDwXQ64JW5AfYGWe9CuSq/pfzvatSjs3TqTpGxSsqSOq+oprNBbqJeoQBtm7KMWdY 0EYa5BM4EYC8ULpecGY5DaAZlXmAzn8wDT1c/Y6dUuN34/SJ1yxuamXb3ZOmpMehWnOAtk/YN kVF7f8jS4+Oqmr6l8pmFpNX9acyvKl/p9cxKakBoDQezx9ZkgxHIPhz/hfXHZj2e1X+FIRokm YDGFpBaJDZ5+2vACqhCUTMVblGO/gR5W6oh9rId/xFTd5xIpu5Qx7VvGjzQni2cNwpavNjGBQ fcXQXezRliHiQt5b3KpvM1e6oZJ5z7KDRWKjxikpuNmPeEncQBmMx7d7fhPrEIeOD6dC2itcO K6KPIum4pBIM4R0y2lm0exJDhfoGUpOk7AsEvkzuLnUbwuEckSuaEDJidrDXi8FeLO6EOliIZ sz5c3bBle8+cen7UbEccGsEcfKOpFL0WEq0rFBy3W0JSmAOdlf6lv3UQWbFZSFBJwJRiM1kjr wy8t1dq2nDurJ/1H3lsE8S3jKa5l1FL4+lDxbV9Pz9IrsczttnUPDr3a2aLMP4NzBUkb/QcYP IpaYmfavyszznMydwF6+QOTCQX1sx/a1Qu2OOdYnNnt4/tE4XPowTqNiXAexb6P5a1zCiUr5K B3gcMHM0Df9r4FZhcOsLy3qJZgVQpS7OIgJSca28PT60CFHDsB9dSsMoP1o1JMfSqeeG6dL2H os0JYhLFeVKN8kIpwDjhDw9CI9NQ/KChK/T4HuZ5FVUkwywPjX2fYsqK4AB5Yjbe0OAwSPeGg BfQ5RVv+9fF+E0UW90wkO9l0VockNvHFwEpCT/JiQmnk9GhB1igdT4r5GFeaxiyHzTJ1DmFCE vlvHK54dFzqLSUGMySfdbhXF6mFJqwk24lUiSFE3PiRHX/qpWzW+YSOZRjGLnOITxWMb3fw60 53Ob9SyoI0QnaYUYqhvt+4QflBx566/HgFPN64cg2fjS/cpdbJSp5FQ3YOE6Mp122MPxWGsyv czmMtt3dnj1K9KaaD Subject: [FFmpeg-devel] [PATCH 1/2] lavc/snowenc: Expose an option to set the rc_eq expression 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Snow uses the ratecontrol module, but does not expose a way to set the rc_eq expression. The default expression, set in the ratecontrol module, will always be used. Make it possible to set rc_eq by adding an AVOption to snowenc. The option definition is mostly a copy from the mpegvideo common options definition of rc_eq (libavcodec/mpegvideo.h), with some minor style adjustments to be closer to the other snowenc option initializer expressions. Signed-off-by: Alexander Strasser --- libavcodec/snowenc.c | 5 +++++ 1 file changed, 5 insertions(+) -- diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c index b1cf1426ee..16d2b7c302 100644 --- a/libavcodec/snowenc.c +++ b/libavcodec/snowenc.c @@ -1948,6 +1948,11 @@ static const AVOption options[] = { { "pred", "Spatial decomposition type", OFFSET(pred), AV_OPT_TYPE_INT, { .i64 = 0 }, DWT_97, DWT_53, VE, "pred" }, { "dwt97", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, INT_MIN, INT_MAX, VE, "pred" }, { "dwt53", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "pred" }, + { "rc_eq", "Set rate control equation. When computing the expression, besides the standard functions " + "defined in the section 'Expression Evaluation', the following functions are available: " + "bits2qp(bits), qp2bits(qp). Also the following constants are available: iTex pTex tex mv " + "fCode iCount mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex avgTex.", + OFFSET(m.rc_eq), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, VE }, { NULL }, };