From patchwork Thu Jul 30 12:42:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Strasser X-Patchwork-Id: 21379 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 BF4B944B4DA for ; Thu, 30 Jul 2020 15:42:39 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9452868BA5F; Thu, 30 Jul 2020 15:42:39 +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.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B7A6D68B9E4 for ; Thu, 30 Jul 2020 15:42:33 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1596112953; bh=bqOnTiB8LlGUUFtWNpZ8Di5Gdhr29YOT8w35pgisZ1o=; h=X-UI-Sender-Class:Date:From:To:Subject; b=fQ988nPd8CIFALJm55YiXZPtqL5tfX7TxEyB3T0yoSocNaRWAs7/Q6cLJ1du26Sf4 QO6qmKck4D8EFyemmekLJnqO/HNJsXrOV6yG+PUhQH0Uwm/DsoeW4lKMFtStF4sH2W LBHDJykoI2f3fr2Bd33JwfuhOHH9MOTddrwCTm/M= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from akuma.local ([91.12.117.88]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MHoN2-1jxKn90If0-00Etuq for ; Thu, 30 Jul 2020 14:42:33 +0200 Date: Thu, 30 Jul 2020 14:42:30 +0200 From: Alexander Strasser To: ffmpeg-devel@ffmpeg.org Message-ID: <20200730124226.GA29814@akuma.local> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-Provags-ID: V03:K1:jJGmhkyOtSOdPNdnzKRp3lVjMF8k4XhbTR6M8bCtMCG7l92P0Qo 8CUYs+c1HLs0bB5YHoI/6FIpQrqfcVSdc49E6UCBVYaztFm0UGTs4gXv1DjNDCn4gzncUI5 h9QX0L39jxtHk4UsfvKTx/14B0jOYUc9pH2MTL7GMEsZUtcJvrQW0UOYe4SJu3cz6+Zij6k 7FNgYQjKK6fUBfJPpET9w== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:KSeLwsR3iW4=:EbtxCbb1SMvUXcJFgMfCq0 vGQdrWkJZwRtFGUqpX8pzIbkdXITa0e8SpSxWOauhhXBfnTePscPSf5cdrJJQj1bNCL6z/dRX wH1EYA3tuKJF/CgvT6jzHyv02uPPCD8a0oT3EP02YnPTh0zGFxyR2TwVlpRj5DGCOeJDAhAZn DvRb4zmj80BH9nh6FoUlkqFRczGFs1/d+9P3ZQVoEny2jpgsZEX0uNQwrsoIw8+PUi44CixWA vmNMFeYXNvkIHqmO4uK3QbFqT31hKg2t94jApcdFpkPaYqcgxhyd06SvCYx7gyeXgC+TDs1H0 oiG6Q7lkhOgc7hJMxRM1yQ3dOSia6l/0RjOkjbsJ+pHAVQL/oAulyR75JISWWTwcok3UYrWZf 4AtvEsX3/JEMsz5Ey5jzRoldxXRc6t5znHs+ZwFKvKM+YXgF6PqNccKGxIgnNx2QGRF7EYCMt OEwCr43/OAWbulrhTXEVE377p7RYjcW7OhES5a3fUfWGJeF/ovIM66hOPhchHgfadNj+1x8ng acjyvl1P6KaXA+V1vv8vdZ51KDgI7lVobrzeQSN2gQboSFBmD0wRzpUwdlCz6K+FNRUNU/nWW BB5JJea4hhRua9hx/xvSXKV++a5k6Pf4PvrQZ5D/Ly4lGCVNCB4HVsTOqNXbXOVJOC75E6uCA zrcZj0XGbSBAZr4Wpr0QZKT6mbQVY8dBCjg4ALIKw4Ifvk5YO6txzbv6hd3ajwFoTh0zzZ1RI 0XqMmxm4aOousckOt9baDVDz1ZTsebH+HAheDcUHicXooPZY9e1b2C8W7lr4JxWvQ1cDfNHKg /tmwV+2hS5/K5ItfC5O74vyAdOCNnos32COKM2j4K5MERjK6wEiYN/05zNoWwNcpcy5Hoql3G h8XPc9bwKlufYZMCAbjsnts47ZNdg1O79EtEYN5rSTkcj0cZnBc23FLZmGYoBH9vSg3uKg8xq MDs9yiStcUStx5s4z9iSVA2qKEggbid7ZD+aHVkuNDdjQeFh5S3PxDR4LaejYwb3pxWH5rU5C ruBlowbHYrpap5HgQqHGEZx0t5NbvCOZsrEFxy9TGvbStSpkWbKL6F4EpC74uPtS5+ibghsuM SshjC2+cJ/ny6+TMcKYWskMcaNKerh9zUKkGJZKcnUIYUOXcDgnV64/OTuE9xtU1NicI6ePRa tvAK4snJZEIa3Ft6KhEVHR1LWadIwVLEmwZ3NcSwbmqQ2mqHj8XuSd7z0mDMIi0KRiO+Ngnpe 4TPbfs8E+8bQVfPg0 Subject: [FFmpeg-devel] [PATCH] lavc/ratecontrol: Fix error logging for parsing and evaluation of rc_eq 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" Don't pass a potential NULL pointer to av_log, instead use a default in the rc_eq AVOption definitions. Now the context variable always holds a string; even if it's the default expression. Note this also fixes the evaluation error path, where a similar av_log references the rc_eq string from the context too. --- libavcodec/mpegvideo.h | 2 +- libavcodec/ratecontrol.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) -- diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h index 29e692f245..d3261e3218 100644 --- a/libavcodec/mpegvideo.h +++ b/libavcodec/mpegvideo.h @@ -637,7 +637,7 @@ FF_MPV_OPT_CMP_FUNC, \ "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.", \ - FF_MPV_OFFSET(rc_eq), AV_OPT_TYPE_STRING, .flags = FF_MPV_OPT_FLAGS }, \ + FF_MPV_OFFSET(rc_eq), AV_OPT_TYPE_STRING, {.str="tex^qComp"}, .flags = FF_MPV_OPT_FLAGS }, \ {"rc_init_cplx", "initial complexity for 1-pass encoding", FF_MPV_OFFSET(rc_initial_cplx), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS}, \ {"rc_buf_aggressivity", "currently useless", FF_MPV_OFFSET(rc_buffer_aggressivity), AV_OPT_TYPE_FLOAT, {.dbl = 1.0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS}, \ {"border_mask", "increase the quantizer for macroblocks close to borders", FF_MPV_OFFSET(border_masking), AV_OPT_TYPE_FLOAT, {.dbl = 0 }, -FLT_MAX, FLT_MAX, FF_MPV_OPT_FLAGS}, \ diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c index 6b77ccd006..03513177f7 100644 --- a/libavcodec/ratecontrol.c +++ b/libavcodec/ratecontrol.c @@ -515,8 +515,7 @@ av_cold int ff_rate_control_init(MpegEncContext *s) s->avctx->rc_max_available_vbv_use = 1.0; } - res = av_expr_parse(&rcc->rc_eq_eval, - s->rc_eq ? s->rc_eq : "tex^qComp", + res = av_expr_parse(&rcc->rc_eq_eval, s->rc_eq, const_names, func1_names, func1, NULL, NULL, 0, s->avctx); if (res < 0) {