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 671994B7EC for ; Fri, 14 Jun 2024 11:02:03 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 54A4768D649; Fri, 14 Jun 2024 14:02:01 +0300 (EEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2089.outbound.protection.outlook.com [40.92.73.89]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1506168D319 for ; Fri, 14 Jun 2024 14:01:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K3OxUKPL45WUn6MWe4y35sns50uYhaqOIAVCc01WYdq7SdMMStbbtZypjWUXDX1ueLV9eiKCyQulNlxT/pEnrNxjvzTVEfYe9vyoPb/Pa5R8xGIDewPwEBM8aiHlRAw0cwt38io8n6hya7JPqb/X3/c0fy6M0DIH2M09baqPMqjqrguyjCRjl+U0iTuEePW/QDvuUk/KtmrtOwBTlOThH5Gtlst3hdgZ3E0pHAAxY2aKukEiPblaySpLxYexFr2+LEz7RPu0qTM8zKlmb5qT3psHRant4UC/iBZ90CoMK1VVNeLt03mVKL/87VHnL5nqI34z/pUG9ZvNrNlxemNMNQ== 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=N1ZgIl6cbKFb6UYPjA9AkfBGstFDaKrduBKqL5q8SEI=; b=nJt2SjOn0u9K5eZ1FEWo+otvr1bC1qGzLOuXmB8LzLw90Yv5kzLbLSzE6LlZxSncIAOp50rGr+oSoY0T3aL7oyocgcjsj9QGb08PmA3sjLhF0Lqzfy9O0ppPUxDC8AFCS7KWrVIDdZIbevYtBeeN+4Shb+EFHndjbd8khZnAlpa+uQwZWilflqw1/A0eRhRnL7vV0gWBYqRwKDWMCXsQHujfxZUY9J8HsdLinIToN94CchUlDejhzhW16bZvnm7koOy5V4FmECtTkMSGt1pGC7cs6P0mIpu/r8KXAGR32MVf9jPQr3gvcQXDgb/wWtnQAthCnPl4N4K45FQD4emzrw== 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=N1ZgIl6cbKFb6UYPjA9AkfBGstFDaKrduBKqL5q8SEI=; b=YiYlxzCkFw9NjyE09zz5KAHWn2wbRQ1/LbS7Xd/s5Un1FhNfvC83iWZTP6X6KiNLPANzHKgMTfgYpAjebkXVEBOk1kNlKNrmpyUNl62vTGGUUUpy2DwkgUOGSmUi7T1MlP6E1tNjNKE8eYJzRpTgaAK9YVZjY3DgOrkQV5/XpAVKgHhL1IjZEjGs3klg3U6ze9gFF2G59J4ssVoqXF/8rwTgvC62dTpKMpF4we1nRRQw61psKIIBCU5TXWvqfdVNApSExnvWhRq/ZJ0UFEs9mqWOa2C3HGLGwzbdFSjCy4/fVE2LVkRLe5Bxd81FpxqcO76WIMXMe/RA/28AkeDqYw== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PA2P250MB1070.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:40b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.20; Fri, 14 Jun 2024 11:01:52 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7677.019; Fri, 14 Jun 2024 11:01:52 +0000 Message-ID: Date: Fri, 14 Jun 2024 13:01:50 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: X-TMN: [rdAbdyBt1SLxdmF6ANXXuD1JMMBu+st8iAYI5nFnhcE=] X-ClientProxiedBy: FR2P281CA0155.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:98::15) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <6ad7489a-6cf1-4834-a5b6-e615af084786@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PA2P250MB1070:EE_ X-MS-Office365-Filtering-Correlation-Id: e187526f-78c9-4832-6cc2-08dc8c61656e X-Microsoft-Antispam: BCL:0;ARA:14566002|461199025|3412199022|440099025; X-Microsoft-Antispam-Message-Info: I0ZC0Wsi3ZS7HmolVhj8iRhzNhY0VhkvUYqIaHzDt7msyphEhZyEEkjhFGtO+DsNcXtDa+V1ufJaouAjE79eKuPXVkO91HVe0G7LZZwC4GtpnVk7dIX2AOQWgrF87qQmpgiIWkGlOuMhc89vKGFCO0HXB8FIihosjU4ppt3J4xc5bmyMUOVl0v7FgjWZ3apSVhViTlU3vBPLfKv3AiJQqYZxebZJsVmtWVC0GMlpbRQSDjw7ZS6hcw7N0GdSeG3W9PUi4SPaKTsNz8m+IdLOPeN+JeICYwA6YQS1TG9TIxg2KQhXFrrvq0aPUmz0FCDprJeQ8LxQ7FHJNz5WbIg167QGGEw1igY9rq19KEJt9fGe6yLiHwaHgbusWF3aJlqgo8GFfPgfSz2Zhpy3EPEe4n6mE9JstXNVLQFGKhml6Ozax5mvKCIsSiyYGWf8dcbUo89QDlB8sJ7aRQo1XpzJG1ILvySJ/jSj2Fto0hvw+IJldAsVvaTe1kAGiPnLYWHeASEkYZUF6hdjLi7cCJXfxxyrXC7JZ4KJZSUh4ZZcMZQZcHqtDJdRXWDbm7ptMVWF X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NFJRYlNOMzI4S2ZZT25mUUtMTEpxZHRmcUdtQ1BxNkFYTEx4ZTA2clZHWnEv?= =?utf-8?B?MVRHWDB4dkNXZFN4cGlnbzI2THRURHlnSldtSjk0YURZcWlyT3czcHVzVW1t?= =?utf-8?B?enpKVllVbUJKbVNZL2pHZnoyc0xwTEVxMFZ0Tk1sNmRrbWdMNXQ5ZmNnR3A0?= =?utf-8?B?U0xvbjlFRHJBbGtac0NJTENqdFR5ei9HMU52SW8yS21VVkV1SmxrSlV1OEc3?= =?utf-8?B?eW5aZE92NWMwRjdrKzlSb2UvRURXYlpsRVFHbllXUnl4TzlGQzF2Nll0OStS?= =?utf-8?B?M1NJUjQ1eXJEdURsbDRUNGlpQndZZWRTVUdoT0ZFRjEwWXlNMHd2Vnhwb05M?= =?utf-8?B?SEpZa2Qyc2FBOU04WENKUmZFWnlLaTZEMVlXL3lkV2dwYllsWlFtdHAvMk1q?= =?utf-8?B?UmpzWTgybkE5OXczVlNWcHQ0YlNCWWFSSFNhY1V1Q3BMUnRrQmMzUDBJdjlN?= =?utf-8?B?dnBwVGZKOUREY3JuNlVaUk9lTWZrK3FvRm90Rm1ZYlJmTUpDTUc4VmZ3SzBr?= =?utf-8?B?TWljdjZDV3kxQzlLengybWtueXZEVTNhRklIL3dJZG9Vd3MwZ2k5eUNSRDAz?= =?utf-8?B?Y1A0cjhuMGF2MkZ4VU1XNHhYZFhpZjlrbTZTcDBZWm0xSHRzdFRTSzNRNlZB?= =?utf-8?B?VEhYdkVqbXp6ZnZDQ3JGbEhNUnpyRTdUdnJuNjFYMHNOZUVBQkxlbGlqTVBT?= =?utf-8?B?YmcwWDJxaDk2NDBqVEpkODZobGlHMEF0bDFEck1qOWRKMnB4YXRCL3ZicFVR?= =?utf-8?B?U2xoWkpBUVArdjBxeFM2akRDUkdscVpjdFBqRGp1S0tIQ2NjUkVLTnpuU3pG?= =?utf-8?B?ZFdLbHlEMGdXS282MkxkMW5qNW1uQmZKYXptdUNlTVhmNERHK2tuOEZEOGw1?= =?utf-8?B?YUlvRUgxTmQxb21EY3RZdzRWQ1psQkQ2SStCRjc5eWQ5Mzd1bWxMSHp3bTdC?= =?utf-8?B?SUkwYW1JQ3c1T3pjakN0dGEyOXZNcEVLdklUTHdrSDFOUHFvbUlyZjZyMk16?= =?utf-8?B?eExzbU9CeHdmdG5WNVZlcTd3aXN3dkU5eEhuZ3pxaG5pNklCSlhpR0dQVzBj?= =?utf-8?B?YmZQbWlKS0o4WnVKT1dMMlJqYVdiZnlxZVdpSjA5RmtQTUdpMVhibHNoTEJs?= =?utf-8?B?SmYvaVNVVndPajNJbCs0cHR0N1dNWm1oRVRqN0dVOWdUZGdXelZDYzF1YXdZ?= =?utf-8?B?MzlONU1hZlY2M0kxOGI3NDdkVmJ6MDNCMzZwYXFGeUgzTUFkMnBNOEdKUUl4?= =?utf-8?B?WS9RS3JOQnVyRGFwVHpXZXVlYWYycUdlZEtFNTBtdmllRWF3MU1qMW1NNlA1?= =?utf-8?B?dnI1SVJWSnE0R0JqeG9LNnZLVXYvZG1na2N0ODhoMHplZGJTRytJRVloeDZk?= =?utf-8?B?YUZDTTRWQU5FTjZaZWtuMkFHcVY2bTdxMC9vSGVDeFdUS3U3UDhiak9VQkg2?= =?utf-8?B?cnRTRm5acmtZV0w0eldQekYrQUxONTJxTW9senU5Um1RUks3azMxM3V2elp6?= =?utf-8?B?Q1RpcTdNeXNYUlRTWUhzRVJkTHpFdGtESWZFMlJSWEh2UVZYVkdseWR3Q09j?= =?utf-8?B?VGRSRGYwYVlsRWtFVko2VDIvVkpKYWViQmlGQkhZNUtQTkY1NmQ5bkxPaUth?= =?utf-8?B?WGdvNEVpL0VpNzZaclFkNUtqRXVDbXp2SkpJMG9IVEZET20zL3ozYnA1dUl4?= =?utf-8?B?Q0hvWmpUY0JVR1FrTDlsd1RsdUVXeS9PdHFyRzMremNUS2U5RTUwYUhBPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e187526f-78c9-4832-6cc2-08dc8c61656e X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2024 11:01:52.3169 (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: PA2P250MB1070 Subject: Re: [FFmpeg-devel] [PATCH v2] avcodec/h264dec: Remove ff_h264_draw_horiz_band 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 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: Andreas Rheinhardt: > The H.264 decoder does not support draw_horiz_band (it does not have > the AV_CODEC_CAP_DRAW_HORIZ_BAND), making ff_h264_draw_horiz_band() > legally dead. The function here always calls draw_horiz_band > in coded order, although the default case is display order. > > Signed-off-by: Andreas Rheinhardt > --- > libavcodec/d3d12va_h264.c | 12 ++++-------- > libavcodec/dxva2_h264.c | 13 ++++--------- > libavcodec/h264_slice.c | 2 -- > libavcodec/h264dec.c | 39 --------------------------------------- > libavcodec/h264dec.h | 2 -- > libavcodec/vaapi_h264.c | 11 +---------- > libavcodec/vdpau_h264.c | 2 -- > 7 files changed, 9 insertions(+), 72 deletions(-) > > diff --git a/libavcodec/d3d12va_h264.c b/libavcodec/d3d12va_h264.c > index b2fe2955c8..fe23f083df 100644 > --- a/libavcodec/d3d12va_h264.c > +++ b/libavcodec/d3d12va_h264.c > @@ -163,14 +163,10 @@ static int d3d12va_h264_end_frame(AVCodecContext *avctx) > if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0) > return -1; > > - ret = ff_d3d12va_common_end_frame(avctx, h->cur_pic_ptr->f, > - &ctx_pic->pp, sizeof(ctx_pic->pp), > - &ctx_pic->qm, sizeof(ctx_pic->qm), > - update_input_arguments); > - if (!ret) > - ff_h264_draw_horiz_band(h, sl, 0, h->avctx->height); > - > - return ret; > + return ff_d3d12va_common_end_frame(avctx, h->cur_pic_ptr->f, > + &ctx_pic->pp, sizeof(ctx_pic->pp), > + &ctx_pic->qm, sizeof(ctx_pic->qm), > + update_input_arguments); > } > > static int d3d12va_h264_decode_init(AVCodecContext *avctx) > diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c > index 0fe4152625..a6fbf61ea9 100644 > --- a/libavcodec/dxva2_h264.c > +++ b/libavcodec/dxva2_h264.c > @@ -502,20 +502,15 @@ static int dxva2_h264_decode_slice(AVCodecContext *avctx, > static int dxva2_h264_end_frame(AVCodecContext *avctx) > { > H264Context *h = avctx->priv_data; > - H264SliceContext *sl = &h->slice_ctx[0]; > struct dxva2_picture_context *ctx_pic = > h->cur_pic_ptr->hwaccel_picture_private; > - int ret; > > if (ctx_pic->slice_count <= 0 || ctx_pic->bitstream_size <= 0) > return -1; > - ret = ff_dxva2_common_end_frame(avctx, h->cur_pic_ptr->f, > - &ctx_pic->pp, sizeof(ctx_pic->pp), > - &ctx_pic->qm, sizeof(ctx_pic->qm), > - commit_bitstream_and_slice_buffer); > - if (!ret) > - ff_h264_draw_horiz_band(h, sl, 0, h->avctx->height); > - return ret; > + return ff_dxva2_common_end_frame(avctx, h->cur_pic_ptr->f, > + &ctx_pic->pp, sizeof(ctx_pic->pp), > + &ctx_pic->qm, sizeof(ctx_pic->qm), > + commit_bitstream_and_slice_buffer); > } > > #if CONFIG_H264_DXVA2_HWACCEL > diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c > index ce2c4caca1..ceca1d1046 100644 > --- a/libavcodec/h264_slice.c > +++ b/libavcodec/h264_slice.c > @@ -2523,8 +2523,6 @@ static void decode_finish_row(const H264Context *h, H264SliceContext *sl) > top = 0; > } > > - ff_h264_draw_horiz_band(h, sl, top, height); > - > if (h->droppable || h->er.error_occurred) > return; > > diff --git a/libavcodec/h264dec.c b/libavcodec/h264dec.c > index fd23e367b4..a09714b714 100644 > --- a/libavcodec/h264dec.c > +++ b/libavcodec/h264dec.c > @@ -30,7 +30,6 @@ > #include "config_components.h" > > #include "libavutil/avassert.h" > -#include "libavutil/emms.h" > #include "libavutil/imgutils.h" > #include "libavutil/mem.h" > #include "libavutil/opt.h" > @@ -100,44 +99,6 @@ static void h264_er_decode_mb(void *opaque, int ref, int mv_dir, int mv_type, > ff_h264_hl_decode_mb(h, &h->slice_ctx[0]); > } > > -void ff_h264_draw_horiz_band(const H264Context *h, H264SliceContext *sl, > - int y, int height) > -{ > - AVCodecContext *avctx = h->avctx; > - const AVFrame *src = h->cur_pic.f; > - const AVPixFmtDescriptor *desc; > - int offset[AV_NUM_DATA_POINTERS]; > - int vshift; > - const int field_pic = h->picture_structure != PICT_FRAME; > - > - if (!avctx->draw_horiz_band) > - return; > - > - if (field_pic && h->first_field && !(avctx->slice_flags & SLICE_FLAG_ALLOW_FIELD)) > - return; > - > - if (field_pic) { > - height <<= 1; > - y <<= 1; > - } > - > - height = FFMIN(height, avctx->height - y); > - > - desc = av_pix_fmt_desc_get(avctx->pix_fmt); > - vshift = desc->log2_chroma_h; > - > - offset[0] = y * src->linesize[0]; > - offset[1] = > - offset[2] = (y >> vshift) * src->linesize[1]; > - for (int i = 3; i < AV_NUM_DATA_POINTERS; i++) > - offset[i] = 0; > - > - emms_c(); > - > - avctx->draw_horiz_band(avctx, src, offset, > - y, h->picture_structure, height); > -} > - > void ff_h264_free_tables(H264Context *h) > { > int i; > diff --git a/libavcodec/h264dec.h b/libavcodec/h264dec.h > index fc50df90f2..c73c6d085a 100644 > --- a/libavcodec/h264dec.h > +++ b/libavcodec/h264dec.h > @@ -677,8 +677,6 @@ void ff_h264_unref_picture(H264Picture *pic); > > void ff_h264_slice_context_init(H264Context *h, H264SliceContext *sl); > > -void ff_h264_draw_horiz_band(const H264Context *h, H264SliceContext *sl, int y, int height); > - > /** > * Submit a slice for decoding. > * > diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c > index 398e92568c..670d3273cb 100644 > --- a/libavcodec/vaapi_h264.c > +++ b/libavcodec/vaapi_h264.c > @@ -319,17 +319,8 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx) > { > const H264Context *h = avctx->priv_data; > VAAPIDecodePicture *pic = h->cur_pic_ptr->hwaccel_picture_private; > - H264SliceContext *sl = &h->slice_ctx[0]; > - int ret; > > - ret = ff_vaapi_decode_issue(avctx, pic); > - if (ret < 0) > - goto finish; > - > - ff_h264_draw_horiz_band(h, sl, 0, h->avctx->height); > - > -finish: > - return ret; > + return ff_vaapi_decode_issue(avctx, pic); > } > > /** Decode the given H.264 slice with VA API. */ > diff --git a/libavcodec/vdpau_h264.c b/libavcodec/vdpau_h264.c > index 9c08e4048c..432027f924 100644 > --- a/libavcodec/vdpau_h264.c > +++ b/libavcodec/vdpau_h264.c > @@ -201,7 +201,6 @@ static int vdpau_h264_decode_slice(AVCodecContext *avctx, > static int vdpau_h264_end_frame(AVCodecContext *avctx) > { > H264Context *h = avctx->priv_data; > - H264SliceContext *sl = &h->slice_ctx[0]; > H264Picture *pic = h->cur_pic_ptr; > struct vdpau_picture_context *pic_ctx = pic->hwaccel_picture_private; > int val; > @@ -210,7 +209,6 @@ static int vdpau_h264_end_frame(AVCodecContext *avctx) > if (val < 0) > return val; > > - ff_h264_draw_horiz_band(h, sl, 0, h->avctx->height); > return 0; > } > Will apply this patch tomorrow unless there are objections. - Andreas _______________________________________________ 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".