From patchwork Tue Jan 17 14:31:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pavel Korotkevich X-Patchwork-Id: 40063 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1d43:b0:b8:6755:f97e with SMTP id cs3csp1860341pzb; Tue, 17 Jan 2023 06:36:14 -0800 (PST) X-Google-Smtp-Source: AMrXdXtW0RpUPXTz0VlDfLv/ncIIuBpBp+mdbPAb5F3X8I2BxEiLx7sUXv0gdnCX+nsr4nxeyMTv X-Received: by 2002:a17:906:15da:b0:870:9346:ddc9 with SMTP id l26-20020a17090615da00b008709346ddc9mr2880196ejd.45.1673966174640; Tue, 17 Jan 2023 06:36:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673966174; cv=none; d=google.com; s=arc-20160816; b=NUGqdyrBvYKUQxljXjRnMGZgtBS32mxWkruHu26gtMXf9yCzdzrMmnmBBTKHDo67oh t2K2JYgjytaiqM3uBr3JzlABl5XUumpGE4/kAookHC8RgPPwnKTrfAb7XYMuSd5GPBB8 b6e/eUZ20X333pFWVxN34ZpBr5j1vc7KS93TfqYKFCKVddk24ReWXKXMNMYNr9lCD+jq WCTOfUa+Wve5fLbfE+36cNTUuB0lhaKSh7s5eqIsGKCNyZPYZcwokEiRsbr9GY7H9uH0 6zO4//KcH7T2PdM1xbhAoXrQqO49Ku7s665jO23xutdQI/ZZqiB0c61jIBbVQNGdwpPf oT1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=l735NpuRftKbAYa8QmevHeJRlF1kC10UNm/A5nffAF8=; b=baqhqGBmZorQqub8b/APpstZ40nDvrhKBtFyuTZSC2M24hW2KAC1vFG2O3AXaA7UZC Gbu88I5n5JjzTe9OmFud0x+lZ8dQSaRPFz1M+WFUeI/7jcuuv4clhao54A/FjwXZx+m3 ZzQFyrf/vLX4s7v3oVo93Ill5OU63JeXa6iSSVq/tQF8MMc5woc4o0wnqx4MfJFEnXYW XxYK3wSqdImLZQ5vuUGzx27Jb7i7pm2cu5iGIoQ8Ddv9p7/TWIOfscYAuwBmtVPf/qKW CpER+3z2Gqb1DPUthpHuki5EBvbDmxq5tgl2P9VQ3QCLy/ZmyGpkCZ63BMrBPuAbZwDT 5xhA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@mail.ru header.s=mail4 header.b=AepMAGPO; 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 js18-20020a17090797d200b0086dd3de7985si12390399ejc.864.2023.01.17.06.36.14; Tue, 17 Jan 2023 06:36:14 -0800 (PST) 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=@mail.ru header.s=mail4 header.b=AepMAGPO; 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 1DE2368BE69; Tue, 17 Jan 2023 16:36:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp60.i.mail.ru (smtp60.i.mail.ru [217.69.128.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9258F68BCEE for ; Tue, 17 Jan 2023 16:36:04 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail4; h=Content-Transfer-Encoding:MIME-Version:Message-Id:Date:Subject:Cc:To:From:From:Subject:Content-Type:Content-Transfer-Encoding:To:Cc; bh=mDuDEvxsduQqKjL381Zd09iLAFPINEvz3dYzixWx2FE=; t=1673966169;x=1674056169; b=AepMAGPOVd/+PDmGDUdxipukNrTbi02xYcI6E3yN9pZw6z6FJqkRceMfidDdGpvERNxrPCU6ncmNP7Jh+sQyNqD3ZLiVF616ikZrmyMXP2+pN0MOZVGc/8S5pvOwUyAUwQK0p+PDet/pwepko7E1I+AVYhJDRHyKcT2jh3yjyVSgZmXxazKD8T02z3Oml5Blhr4XpeCc3l2G2dl1kyzJsKA6bGjt+OktRUkOkGFW5jivDD60tE6qD1u3Nk2LoPbs5q5cvXx55FPp27udSqlOyfJE3+ba8OuTrAfwwlbxXnVp3nmHZH51L9sR33c/8DT64OIqQgiioD8IwNCKUWMIMA==; Received: by smtp60.i.mail.ru with esmtpa (envelope-from ) id 1pHn4F-0007ag-0E; Tue, 17 Jan 2023 17:36:03 +0300 From: pawday-at-mail.ru@ffmpeg.org To: ffmpeg-devel@ffmpeg.org Date: Tue, 17 Jan 2023 18:31:26 +0400 Message-Id: <20230117143125.1106-1-pawday@mail.ru> X-Mailer: git-send-email 2.39.0.windows.2 MIME-Version: 1.0 Authentication-Results: smtp60.i.mail.ru; auth=pass smtp.auth=pawday@mail.ru smtp.mailfrom=pawday@mail.ru X-Mailru-Src: smtp X-7564579A: EEAE043A70213CC8 X-77F55803: 4F1203BC0FB41BD94E040F7CEBE48B4BCCF76D6012996E9D94E11B0AB4161AA8182A05F5380850404C228DA9ACA6FE27384E508EAF62319E64340AA882B9B2D75C13E37626C0652FE34546588879BC69 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7544B1CCE26E01C74EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637CCDA16D05354CC6E8638F802B75D45FF36EB9D2243A4F8B5A6FCA7DBDB1FC311F39EFFDF887939037866D6147AF826D817151D1640A2CE53DF62E8AA44FBE06E6F9789CCF6C18C3F8528715B7D10C86859CC434672EE6371117882F4460429724CE54428C33FAD305F5C1EE8F4F765FC5FC25ED3FCEC3375A471835C12D1D9774AD6D5ED66289B52BA9C0B312567BB23117882F44604297287769387670735207B96B19DC4093321BDFBBEFFF4125B51D2E47CDBA5A96583BA9C0B312567BB2376E601842F6C81A19E625A9149C048EEB28585415E75ADA949AF716F719AB83ED8FC6C240DEA7642DBF02ECDB25306B2B78CF848AE20165D0A6AB1C7CE11FEE32D01283D1ACF37BA6136E347CC761E07C4224003CC836476E2F48590F00D11D6E2021AF6380DFAD1A18204E546F3947CB11811A4A51E3B096D1867E19FE1407959CC434672EE6371089D37D7C0E48F6C8AA50765F790063741261DB14FFAFC49EFF80C71ABB335746BA297DBC24807EABDAD6C7F3747799A X-C1DE0DAB: 0D63561A33F958A5B314DA2A62C6653487D543A5377E54A6BE61E0728494EF7B4EAF44D9B582CE87C8A4C02DF684249CC203C45FEA855C8F X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D342C0B628602DFD0BCDE34A356DA67FE9CAEBDE62541233F7513A25F800AEA904CE9F8A05E8B4986111D7E09C32AA3244C0295F421BF3AC444526BA4F7F3D18499F522A1CF68F4BE05729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojbDGeE7DdcRkyX05kXi8WnQ== X-Mailru-Sender: 7F53729568FFBF28BAC5A23C9FF6F70B0079E5E6E53B3000908B5FB3B725BC979C7FB82486FB58436BCD89EFCAA5B95A3182BEA23F8D30570919CA7848C88715AE27536645352AA2540CD94B559F21E07652F063092A458A0D4ABDE8C577C2ED X-Mras: Ok Subject: [FFmpeg-devel] [PATCH] avcodec: Use preprocessors conditions 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 Cc: Pawday Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: TlWnBPYYtd5q From: Pawday Thank you Andreas Rheinhardt for review Here the fixes for runtime "else" conditions --- libavcodec/avcodec.c | 16 +++++++++++----- libavcodec/decode.c | 11 ++++++++--- libavcodec/encode.c | 13 ++++++++----- libavcodec/h264dec.c | 14 +++++++------- 4 files changed, 34 insertions(+), 20 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index a85d3c2309..0e792aead9 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -403,10 +403,13 @@ void avcodec_flush_buffers(AVCodecContext *avctx) av_frame_unref(avci->buffer_frame); av_packet_unref(avci->buffer_pkt); - if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME) +#if HAVE_THREADS + if (avctx->active_thread_type & FF_THREAD_FRAME) ff_thread_flush(avctx); - else if (ffcodec(avctx->codec)->flush) +#else + if (ffcodec(avctx->codec)->flush) ffcodec(avctx->codec)->flush(avctx); +#endif } void avsubtitle_free(AVSubtitle *sub) @@ -441,12 +444,15 @@ av_cold int avcodec_close(AVCodecContext *avctx) if (avcodec_is_open(avctx)) { AVCodecInternal *avci = avctx->internal; - if (CONFIG_FRAME_THREAD_ENCODER && - avci->frame_thread_encoder && avctx->thread_count > 1) { +#if CONFIG_FRAME_THREAD_ENCODER + if (avci->frame_thread_encoder && avctx->thread_count > 1) { ff_frame_thread_encoder_free(avctx); } - if (HAVE_THREADS && avci->thread_ctx) +#endif +#if HAVE_THREADS + if (avci->thread_ctx) ff_thread_free(avctx); +#endif if (avci->needs_close && ffcodec(avctx->codec)->close) ffcodec(avctx->codec)->close(avctx); avci->byte_buffer_size = 0; diff --git a/libavcodec/decode.c b/libavcodec/decode.c index 6be2d3d6ed..54ffd0f203 100644 --- a/libavcodec/decode.c +++ b/libavcodec/decode.c @@ -300,10 +300,14 @@ static inline int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame, return AVERROR_EOF; got_frame = 0; - - if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME) { +#if HAVE_THREADS + if (avctx->active_thread_type & FF_THREAD_FRAME) { ret = ff_thread_decode_frame(avctx, frame, &got_frame, pkt); - } else { + } +#endif + +#if !HAVE_THREADS + if (!(avctx->active_thread_type & FF_THREAD_FRAME)) { ret = codec->cb.decode(avctx, frame, &got_frame, pkt); if (!(codec->caps_internal & FF_CODEC_CAP_SETS_PKT_DTS)) @@ -321,6 +325,7 @@ static inline int decode_simple_internal(AVCodecContext *avctx, AVFrame *frame, } } } +#endif emms_c(); actual_got_frame = got_frame; diff --git a/libavcodec/encode.c b/libavcodec/encode.c index fbe2c97cd6..b19599e67e 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -269,17 +269,20 @@ static int encode_simple_internal(AVCodecContext *avctx, AVPacket *avpkt) got_packet = 0; av_assert0(codec->cb_type == FF_CODEC_CB_TYPE_ENCODE); - - if (CONFIG_FRAME_THREAD_ENCODER && avci->frame_thread_encoder) +#if CONFIG_FRAME_THREAD_ENCODER + if (avci->frame_thread_encoder) /* This will unref frame. */ ret = ff_thread_video_encode_frame(avctx, avpkt, frame, &got_packet); - else { +#endif +#if !CONFIG_FRAME_THREAD_ENCODER + if (!avci->frame_thread_encoder) { ret = ff_encode_encode_cb(avctx, avpkt, frame, &got_packet); #if FF_API_THREAD_SAFE_CALLBACKS if (frame) av_frame_unref(frame); #endif } +#endif // !CONFIG_FRAME_THREAD_ENCODER if (avci->draining && !got_packet) avci->draining_done = 1; @@ -670,11 +673,11 @@ int ff_encode_preinit(AVCodecContext *avctx) return AVERROR(ENOMEM); } - if (CONFIG_FRAME_THREAD_ENCODER) { +#if CONFIG_FRAME_THREAD_ENCODER ret = ff_frame_thread_encoder_init(avctx); if (ret < 0) return ret; - } +#endif return 0; } diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c index 6ede4e8c9f..4538974dab 100644 --- a/libavcodec/h264dec.c +++ b/libavcodec/h264dec.c @@ -933,13 +933,13 @@ static int finalize_frame(H264Context *h, AVFrame *dst, H264Picture *out, int *g *got_frame = 1; - if (CONFIG_MPEGVIDEODEC) { - ff_print_debug_info2(h->avctx, dst, NULL, - out->mb_type, - out->qscale_table, - out->motion_val, - out->mb_width, out->mb_height, out->mb_stride, 1); - } +#if CONFIG_MPEGVIDEODEC + ff_print_debug_info2(h->avctx, dst, NULL, + out->mb_type, + out->qscale_table, + out->motion_val, + out->mb_width, out->mb_height, out->mb_stride, 1); +#endif } return 0;