From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id E8B7547F26 for ; Fri, 5 Apr 2024 12:43:16 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3640668D180; Fri, 5 Apr 2024 15:42:30 +0300 (EEST) Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01olkn2061.outbound.protection.outlook.com [40.92.66.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6BDB268D16C for ; Fri, 5 Apr 2024 15:42:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=acVoIQqXp5v9aK2hqQ+ckIjjHpOvqfnYgdQft3Xbv0FtJTPMnBf2Udcv2WuyJ1e8lLKyNJHRjj03AXpvrbaRglNEDhIKUVUxDlYVyFTEb5qWa1v/x0AMaJNKrQP1vPOJwf+tq0NtL1Ao3+sg+vVPhW2bx7ioVeV1fZ3iXxkPn/Tw3c+9VImlx8Z8rsdymMzmVKb5f5kiZpmT9by+7CBj6QAC0tesjkFY1B/Kj1kJPyWZm2ApuZUL0/x9A5ygm1M+BGdBJnDeK0YVgcpE1SCk1ErufvA/5eEto9aeqIHwIBKPHsG0obolj9JfRJ1zgaEANjeWd0FcKsmOk1GtU8CuyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=H6M/nFYxN9xTMzovnzB4TA4XC5mrKPBBrD2WmyiX0Ao=; b=ByeHehmQhepD0Fb/eQ9SYVdlV8qnp3i97I3j1QAccFjEaFsPHFSdmYxay00JyBf/IsUAj+t4RWBhgWVj/DAnoyn9lZT4LIOsFNO1BF+51PXvk4LryzTjhfG77Zx7IKiPLzapGsoTa9VP911IQrg23lx16Q4gmVKUhoG6Y3xsXHEfOLxcbaOCOFD/WrqkkZMHADumo6zUXwCABWT4BOhAgAVkOkSMSWCVbhcEy2NJ2YSSzXdGlnFRdBsYgppMMyY8yVyFWiD1Md29n1pd9NUnRJGKX0W4d6B47LH6snvPVEmhOaFgKnWW9QM7pai/5x6ReMs9/4a8DrkBUyOQb6oigQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H6M/nFYxN9xTMzovnzB4TA4XC5mrKPBBrD2WmyiX0Ao=; b=uziMoIHLiAI1zDe/kRDnVsFDIrcuXj8YXNRvTgGZIqQoqh3RFGpwtfRfU99mAN4Z7d6xRPMq2n+TGKcDL/64TNDAPa+Dma7R2+k2TuplQoz4DcNl3V07J8wQFHOsf3fwlypl4fYZq0IxwqF3Kqr0uzrLUu1oV/T5ldllYlX2v26z6tdSGcQ2ImjD/TwSXMGeGF3a43QUGn8Q48Vdj9oMwiIsQeME6m+LlyAawvodPg9QKyFxrQ73K1g3Zp3FD/I9uXf8ed0Ey2AB/w5vMV75ijrAE4dpb0PYdvnjweYIfxeG3yyrkVPFcSiu5OeutrRqKgUc51zLtGLLv2HWKtQ91w== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0002.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:14d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.53; Fri, 5 Apr 2024 12:42:26 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Fri, 5 Apr 2024 12:42:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 5 Apr 2024 14:41:34 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [LNji7NMZZVBVZN1YlNwehv473KvzM8wNTp2LIyDbr6M=] X-ClientProxiedBy: ZR2P278CA0074.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:52::8) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240405124138.2343725-10-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0002:EE_ X-MS-Office365-Filtering-Correlation-Id: 2f489578-5f54-4ac6-445e-08dc556dd8dc X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K+k3S3yzeBk5kbzfROH9KdvsvbR2VfkbZwnSh4u5w7vYlahwIn1p3R6z4tCTC4/9K6YOoMVYblfC8NQ5oyHovQHjUJ27tKT1vbNOzL2YTjoG7eCNV9ienmUL/2lFgPBeBqkP/4gYBBfZ3HLojeZGwmN6B2zW2Bm0rcmWwhdcovZoLGddJCDmuVAEL83Ofs2XQQRWnDCbFYNvwR+aW4cX4QVH+k7jTsaNLynguHCKpaP05Zz13pTD0TuV5MRmYUc1bEhlyYD9h0bY9S9VMLsBjnIhYkiQY6GBOu2ijz3/QVUqgQ0+ghIG7B8zbv4ufsquu4O6714pyps9QweF505zebZI4RPg5yuOEm0QNjgKva7aduEQhZ7PNd6cw+smy92s+I34VdZNQ/8nzHtVkPMnyOQ4TIaHrRNCXMagd3OLXliWiaz/ZdD1eJtNt4cva2AVD7rq+k5Yrx9mwhAC2rPwJZdFDjbDEyEAEKkbydTF6p/q3w0en5a9lfTFizCBd8tJbygF24IaZkmZLP+3cXRIWPb7RqzhIIJjAXkA60u8jx48XHvKnbHvjsMd1HMJtnG/f2ImU909sxa8mgjjX7f59fwlHqhyvHQSZeDmNgZo+4V6coRUEgswLwHtWGtfqN33 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?f2rcE49+z/39QzBlsQcjfV2mZa8cdJhpn/lSRBQbEe+LOHar/JkrP5D+Amsr?= =?us-ascii?Q?COHLae9nDcIdkCoybUkxw7EFsVQWtJVA+fznw3xfwGX+AQ3OklavvAEmYYzw?= =?us-ascii?Q?Y5IL7zJi82krEO6e7MQYjgA1GN9rOagKlPH3L4wHUOMwuzzkVgMa86w5PkJi?= =?us-ascii?Q?7zMX5k5EelVPFfmRmUUhsW38saFeV5i2vJ/5xfRPw1V9F/HOV99zbnYlYY61?= =?us-ascii?Q?Pq2AGI8yzL1bAr+6DmK4vHgJ4q5t0Pprp3hI5v5D/kBDtzmnQ0GqImHw+cPP?= =?us-ascii?Q?//f8ux7zeoVGZ6BVF8Y+u1YMqxgh/QNS3hR3NqUroFSzJ8JTTgckAYjpAVT1?= =?us-ascii?Q?2FaB77QOskNWWDlCymhmFY4VjQiyK1Q35X1xTTQfdYUi2IAYLjjKKQ6a/SXX?= =?us-ascii?Q?+O7e2iAoL4Vr4CX/4OQdHUZtAhXW9aTzljJ3abgmhClJD3F5zgZny/Fmb+Mn?= =?us-ascii?Q?/OKp+vuU8cj1Ms1p/wCr/zbfVdX5cYYSyThCTT5aovs3eHOOhL4nlGcbebOE?= =?us-ascii?Q?42iyxiDUDELFP/T6QkUllSP4/a/jiVrwhEqfyUpuEWCuevNMnxXSoxTcr4Xa?= =?us-ascii?Q?1P9GLAGQtRGh9LzcV2qhUBAQXoaxLQLRf1B9OQvwaL8Rge8dR56+J1auZwRT?= =?us-ascii?Q?czT/rSutxHBQDueh6xJYnns816ZNzAv4ENrjidlhiWCVqeIh/jfCgAzfKnUc?= =?us-ascii?Q?nQ5iA62dvQcYbp82iAMWiayWMIegQ7FCRz5I3ToVmXotgDbc6gaO8YfJGufH?= =?us-ascii?Q?SpZgnhs5DeKsO5dlTmQfMzhfzbDn0lBQ/d9Rbst5HYWOeBdgmNy1vgl2cCCq?= =?us-ascii?Q?EbZuL6wINkDZF3ew6KnYcdGXIF/zo+GLSz2bjHM58EgZ2lkbcgW3iHUhCmuE?= =?us-ascii?Q?h0cZpI1ZpjLP81xqkp/h3ubUzb5wbiYo6oFoaHLhyKDfedzJbjfFWiGYcgQZ?= =?us-ascii?Q?UzS2SJHXx9Y+DiPA02xHrZVXwB6iR1YF32BQ9/FFOMEeGYMmGAZKVjEnn7/Z?= =?us-ascii?Q?JImif4zElwLRfEvA/LWSH7WB4P2cPZriNY7I7RbINXy0r40pm6ewlo69+irL?= =?us-ascii?Q?K01yyuuMxrKtO1nZKJBYlsjWt1fa2s0L5xlcNazSyhLcjiTrO/ujgKKVA0lO?= =?us-ascii?Q?IpcOyBNYfd6568IhmcBXqCvzebev+70Ff55on/wufvTUaOgVRgM8+pumQyom?= =?us-ascii?Q?PJEUEr1ZcAvjocPixVKfVsaF0azoaCGx1ykmfhq14jKMT2aEmTCBH/LGiTWa?= =?us-ascii?Q?4icbulR+6Ff+FHx5mUFtBsOxqt401ZSw0XDaOYo3Xw=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f489578-5f54-4ac6-445e-08dc556dd8dc X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Apr 2024 12:42:25.9939 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3P250MB0002 Subject: [FFmpeg-devel] [PATCH 11/15] avcodec/mpegvideo_dec: Factor allocating dummy frame out 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: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo_dec.c | 64 +++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/libavcodec/mpegvideo_dec.c b/libavcodec/mpegvideo_dec.c index 4fa89e4aef..b6ef4e5582 100644 --- a/libavcodec/mpegvideo_dec.c +++ b/libavcodec/mpegvideo_dec.c @@ -270,6 +270,32 @@ fail: return ret; } +static int av_cold alloc_dummy_frame(MpegEncContext *s, Picture **picp) +{ + int idx = ff_find_unused_picture(s->avctx, s->picture, 0); + Picture *pic; + int ret; + + if (idx < 0) + return idx; + + pic = &s->picture[idx]; + + pic->reference = 3; + pic->f->pict_type = AV_PICTURE_TYPE_P; + + ret = alloc_picture(s, pic); + if (ret < 0) + return ret; + + ff_thread_report_progress(&pic->tf, INT_MAX, 0); + ff_thread_report_progress(&pic->tf, INT_MAX, 1); + + *picp = pic; + + return 0; +} + static void color_frame(AVFrame *frame, int luma) { int h_chroma_shift, v_chroma_shift; @@ -379,48 +405,22 @@ int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx) "warning: first frame is no keyframe\n"); /* Allocate a dummy frame */ - idx = ff_find_unused_picture(s->avctx, s->picture, 0); - if (idx < 0) { - av_log(s->avctx, AV_LOG_ERROR, "no frame buffer available\n"); - return idx; - } - s->last_picture_ptr = &s->picture[idx]; - - s->last_picture_ptr->reference = 3; - s->last_picture_ptr->f->pict_type = AV_PICTURE_TYPE_P; - - if (alloc_picture(s, s->last_picture_ptr) < 0) { - s->last_picture_ptr = NULL; - return -1; - } + ret = alloc_dummy_frame(s, &s->last_picture_ptr); + if (ret < 0) + return ret; if (!avctx->hwaccel) { int luma_val = s->codec_id == AV_CODEC_ID_FLV1 || s->codec_id == AV_CODEC_ID_H263 ? 16 : 0x80; color_frame(s->last_picture_ptr->f, luma_val); } - ff_thread_report_progress(&s->last_picture_ptr->tf, INT_MAX, 0); - ff_thread_report_progress(&s->last_picture_ptr->tf, INT_MAX, 1); } if ((!s->next_picture_ptr || !s->next_picture_ptr->f->buf[0]) && s->pict_type == AV_PICTURE_TYPE_B) { /* Allocate a dummy frame */ - idx = ff_find_unused_picture(s->avctx, s->picture, 0); - if (idx < 0) { - av_log(s->avctx, AV_LOG_ERROR, "no frame buffer available\n"); - return idx; - } - s->next_picture_ptr = &s->picture[idx]; - - s->next_picture_ptr->reference = 3; - s->next_picture_ptr->f->pict_type = AV_PICTURE_TYPE_P; - - if (alloc_picture(s, s->next_picture_ptr) < 0) { - s->next_picture_ptr = NULL; - return -1; - } - ff_thread_report_progress(&s->next_picture_ptr->tf, INT_MAX, 0); - ff_thread_report_progress(&s->next_picture_ptr->tf, INT_MAX, 1); + ret = alloc_dummy_frame(s, &s->next_picture_ptr); + if (ret < 0) + return ret; } if (s->last_picture_ptr) { -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".