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 23AD648F25 for ; Tue, 30 Jan 2024 09:38:35 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AFCC968D2ED; Tue, 30 Jan 2024 11:38:32 +0200 (EET) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2015.outbound.protection.outlook.com [40.92.89.15]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0330068D217 for ; Tue, 30 Jan 2024 11:38:26 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z+WqHEoN2NkM7Mz/7TMAhITjPkuJef+TLW3AytR2WwpzGLoIeAhavYy2Jk6cte3mcprZqGfXZnlRuudrQWv7EuBy06CMlpKNUjhSM58dad6fzseDfgwFkjNiQVIYp5+2IIUgB6r/E/XIQHyPWjoMJloO/356yhU3b3swjeTsSoUF3MjFJsAEcxDw/nGwrAAyE6NlAYTGZDwakgZIBjzvr0G4Bovm9Bj9eFKrTS0E0IYQ9xf5k7onRj4U8mccNNPIOn/2xu+qpfg5KLY59IXWVJ/Ywj6tzNGeJZSHk1lNeQPv624LKadNH1jc+DqafIhxdxV/0G9nrrBkDqssC4rsuQ== 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=m9bSy9odFhg0UOubbx5z80bGVZf+D5A+AlqkaPxp2EA=; b=gdjCIKYiEd4MOiBt8+mYK7bLyudi1zeeXoTB/1RBeUl/+0CNw5aIaLnMeRdIGgwjottaTF/qb+g5KTHWsUNnO4SaMp0MDt5T3et6AS3X0yI/uIIavXxu2YTGn17VVMpf8pkb9vb6Wtcikhv5AvxOAm+3kebWVwDaXGNIl0kvfJMxQ4mfkkUYICkdvruvxFVJUxLGb63Dmo2/fEwC8e8yeW/dSP3kNfF7/puaU0jo7pXaXaV9l9FfUz35AoX3Q7EOcgd9d6A6dwD1s42g8rtslhNfyIxMMIXJBM5hd0o1gh9Vi9ucnSxQCm0yWeFQzegOsMmcXgx5jhZq21bjttri2Q== 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=m9bSy9odFhg0UOubbx5z80bGVZf+D5A+AlqkaPxp2EA=; b=WeijRx8jyaQJgK/6/sygmOm5k+i2B5ihz9oMS+ZIapppdbYBQbKDO/17Lx3K5FAJcOdai/HcuaqdBq2gwB0DX6/4yovPL8h7+bzDarLLQPYyEmbvZ5Sqv21nqiNReRao3zUBaqkmdy8+iHKINl4YLXev4/G1YAnQmRRR08XFfqqc7aRUSK/VA19P1ga/wEQss1IgHO69r67h6h1RKI5BNmlGIIWiQeExrB/zzNvn+0q733FErQx8FrNQRwJ1hMWAzr9WrkL90Itc6B51+ntU6p1H8eELkyXLuYdyzJ5OLZ0s9kOrIAySUub6g6SBvxKTNufphJ5RX0udIT34AaumFA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DU2P250MB0045.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:2b6::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.22; Tue, 30 Jan 2024 09:38:18 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7202.031; Tue, 30 Jan 2024 09:38:18 +0000 Message-ID: Date: Tue, 30 Jan 2024 10:39:59 +0100 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240130003750.27503-1-leo.izen@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20240130003750.27503-1-leo.izen@gmail.com> X-TMN: [jyLxclSwzG0KP9gIZK2j3y+Rr7cBXGf/VesreUDzaWg=] X-ClientProxiedBy: FR0P281CA0060.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::17) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <56d7d68b-960a-434d-aa5f-63fa0f07408d@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|DU2P250MB0045:EE_ X-MS-Office365-Filtering-Correlation-Id: 51ce9fe3-c5f7-4c2f-de46-08dc217730bb X-MS-Exchange-SLBlob-MailProps: 9IecXKUgicDrf0PUiQi1bEqrY8UgztiCoWFcuNQymfXcpJLox51uhKXLfBIqeW8AAEWL3qMebZtEek66zEVc2JIrKaXwNSexTwTIK+gNrtLApEnNYFYi5GDELQQaTeTLizGww/i6P1qE4XuLJ/dERgIe2G50gnJMKQfpVrYVChSoDeaOjzJOkEL/FOnH4XECTcNuMpzqvLHsKzhXhkxAkExqAV9DlUfspu0Ym9r0SK2evUo1GVVz2boXe59LUyHOb+3RwkujpnNtfxMiBoWKvECEr6+ztItsbP8gJ3wGj8w4wDo1QL5tg4/YnZx9yfbZyaJdQfWLhkfYpSumgjhNRQhDNn3QTfXPmXZq4msTWnKOBvoOJSAEVgYdNlGYG1UQJjoLClyldT61SZFhDURtcTEdV700xf1a7zZtk5QpdoFFaWTWyhUNvmOHiF16U7f0/WLx3cF5ouqIHQV6RxEY4spnwwzz6+P6ueqY5UxCVrhncizAjMLLedMMwUxsotEdjJHmKSDYlMxS9OFsgdByzoO2sLedcKpow8TjDNJtCNi0MYTadoq8LGAeG1L6ugdZle7SwZB4GUkY19WEfibTGSaD2/Ph8DImLO47Bqtc3FHRGYyy+HVI+2j5snlqWMIb3KgLddZzhTUGHMzrz3T+I1+p1k6UlgnZKnZ0BdVnv5pOjyKhIETZHwum4LvRBfyg/2V8o/4GkJn5SDbGjYT6Oj4CG1s3nZqsgZROFYwhHDQRwA922e6lZg== X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JssnNBQZUwIiywdCZ20WTlLaYW5+Ybk5yK2vMToXi6QZI/iVPuAfF0qrzCkheMdB/qWHSYcs8F41mRUyrFyVNOgDq1f9VIMkw6OHN9BK3/43ca5XRFMSnYiZtWmmrncqexV1lqc0FaRNNx5Y3qqchv2D3UbYZUQ6MCSW2w6RY8MgPPQ0qdg583GZT7gChdoW6wcRItX0kSfueE4vQUjib+5iA/gjIlKRd0N16hpKz2Ox34uZ+Jm0ZUAR/NY6FcSR+ixo2mLwOUvbWOUbWd1EIZ/B2dAL635KmEQLhJiuR8C4RPe2dqkpUlMrN+qOGl1E0QYvAN+khQUjzqY5xKv8viFAYqh6gvkLWh/ExwP/OVr3GWWgZ6ypzyp1/Ne26xkDiJtCYDet/FqESthAWOAEKJPYo9b5vuJqg02+ihtXAedjxpfno2e3NALS1DWSHB19YKi4e8Z65+OVkGPiA/F3EYNpQdF7eK4sCEcPyBPOzMZUrXVWmxPVJ4ahOOIg1ux0Cxp2Qh0IIOB94XyWa+pIDyRYjcsyCApXNq5RJjToWWohZAqzuBNRKuCUNNYresVe X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QlZuSGkvdXNHLzRMK2tWa1E2QzlGQTl5Q25ONUlBYVJDSG03UmgvdlNZTnJU?= =?utf-8?B?ZDhreEk2UmE1aExmanJNYmZ4RzltVU5ZZHhGNlkzU0xLdXdNcjEzLzhSMFdX?= =?utf-8?B?ZE9xdWVSdzh3ekFZTU1rVWVTZnR4M1B0UklURDA0M2l1b3NUNVdhd3VXbWJq?= =?utf-8?B?Z1pXM0xWbHlIMjlvb3REbkJOZjBGWkYrR0RTUDlhRjF3eDQ5OUlNbUwvRGwy?= =?utf-8?B?TGdQUUZkMVpmTzdJem8wUTNMdndnV2lEVVB1ZXE0QUVJWTJ5MitVWjhlQnpn?= =?utf-8?B?dUlJUndkNkZZOXpHWUo0RnBoRFBKRDV0SUZZK3lOb0FyNVBrdEN3L1k0U3VB?= =?utf-8?B?L2pKWEFPV3NWa2FjWXYvYzcvcWRFc2ZKWE9JREVJbit2Z3RTbkZ6UzE1K2Ny?= =?utf-8?B?WXlGaHMyRTVuR0d4SUhIRjVEMXNNME1Zb3hqeWlIdGtyMHhDTCtqV3N3a1F4?= =?utf-8?B?K2NwVXR3U0VNYUJjN21JNkZiamZneGpOWlczc0tIMGUrNHZRTmpTVytRR1Bz?= =?utf-8?B?YnFkbFAwRGFoU2tObXBTc3lYS0VidW9ZSnZwSm9INEpTdXhSdHAxQ2tGZTBU?= =?utf-8?B?bW5iUUFwdWx6UkJBWXNKK3AyNE9sTHU1bFJmbVBQa1k3WjJjT2lZam9jcUZa?= =?utf-8?B?Z0NhV0NIQjc4MDVSdlRDSlorNnFjTXhsVWNuczJYcHZLdm9ZWGVqdUNvSkhq?= =?utf-8?B?enpjOU01K3FPSXJMd0dpMFE0QllvVlB6ZU5ZemxITHlENGtKVWVyUitpczI5?= =?utf-8?B?SnJXMERzZjRkQ2RLc0pMZkZYaVkyLzBOb1dRWDNQR3BlZ0wrK3NJSDB1MnFD?= =?utf-8?B?SE9EWG1Na0R2SFhzOW1WVDBNcGt4ejJrT01sUHE4dkZoSTJZWFJ2alV3UlZC?= =?utf-8?B?MCtCTHpxbkNpcEhHdzVyMWQzV2VlTjNUeU5yV3VhTThQUlBEcDNrTVhXYXU4?= =?utf-8?B?UnRnWEFOeFk2cHZCSFBBaHdzUCs1Ny83UWhpRFE2OURoSGtTeFZqa0JvV1BF?= =?utf-8?B?WWJObHlQREw4d1FnNXRDb21yWEpYTW5WaDFjaXdWWm5UMG5Pbmx2dFVXMWEz?= =?utf-8?B?M2dWUWJWek5MNktibE9zS1FjbnJWc2hJMU1MSlQvQ3FIWFJYMUNKbCtoYUFQ?= =?utf-8?B?aEpIVjFGT25RRjhkR1lDQ1lpWDVERmhwSnBKMWtndm4xZ3UvT3JUd3VIMGsw?= =?utf-8?B?a2R5QkMvQjl6UytjbDM4b1Z4YS81Ry9oMnNrRm5JaFQ4ckFaVGRwaUYzRTAw?= =?utf-8?B?a0lxcWRwaDRjd3FSSDUwY2ZmRjd6Wjh3bzZGTy8yYVI4d3dPMElObldQNWlu?= =?utf-8?B?YjFSczBYUG43UXZCTk83em1WSE9Na0Rjdi9teFVENnV1WXRRRjkxK3FoMlll?= =?utf-8?B?cVlJQ3FHK1pvUFhDRE90N0hubjVYY1lMNXJUK3Y1WVFxL0ZVYzRyaEFlTFht?= =?utf-8?B?S0M4MXA2SGlxd1dKRXVTNyttcGhKMTFzKytFYUM5Zm1lZmNFaFlNSFB6cTBQ?= =?utf-8?B?UjJYYUtQNjJzeHcwOEhSVDZhbkJIUWRxaFlwU1hkbkx6djZ0T2RGajhpdFkw?= =?utf-8?B?bEdTMjNSREJJWTd4K1FPSHhTMFJxd1RXYmhxWVdZUm9MSVlkMk4wcS9BSXBC?= =?utf-8?B?eWhEWmkyRlRqT3BZV05ZZGxocDBYalFlQUcyS3l2T1RGdVdpY0VQeUJHSHpx?= =?utf-8?Q?qnPdOP98y+1l6Cg/HL2m?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51ce9fe3-c5f7-4c2f-de46-08dc217730bb X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2024 09:38:18.4014 (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: DU2P250MB0045 Subject: Re: [FFmpeg-devel] [PATCH] avcodec/libjxlenc: support negative linesizes 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: Leo Izen: > libjxl doesn't support negative strides, but JPEG XL has an orientation > flag inside the codestream. We can use this to work around the library > limitation, by taking the absolute value of the negative row stride, > sending the image up-side-down, and telling the library that the image > has a vertical-flip orientation. > > Signed-off-by: Leo Izen > --- > libavcodec/libjxlenc.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/libjxlenc.c b/libavcodec/libjxlenc.c > index 67be8a01ca..49020b1036 100644 > --- a/libavcodec/libjxlenc.c > +++ b/libavcodec/libjxlenc.c > @@ -259,6 +259,7 @@ static int libjxl_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFra > size_t available = ctx->buffer_size; > size_t bytes_written = 0; > uint8_t *next_out = ctx->buffer; > + uint8_t *data; Should be constified. > > ret = libjxl_init_jxl_encoder(avctx); > if (ret) { > @@ -303,6 +304,7 @@ static int libjxl_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFra > > /* bitexact lossless requires there to be no XYB transform */ > info.uses_original_profile = ctx->distance == 0.0; > + info.orientation = frame->linesize[0] >= 0 ? JXL_ORIENT_IDENTITY : JXL_ORIENT_FLIP_VERTICAL; > > if (JxlEncoderSetBasicInfo(ctx->encoder, &info) != JXL_ENC_SUCCESS) { > av_log(avctx, AV_LOG_ERROR, "Failed to set JxlBasicInfo\n"); > @@ -383,9 +385,15 @@ static int libjxl_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFra > } > > jxl_fmt.endianness = JXL_NATIVE_ENDIAN; > - jxl_fmt.align = frame->linesize[0]; > + if (frame->linesize[0] >= 0) { > + jxl_fmt.align = frame->linesize[0]; > + data = frame->data[0]; > + } else { > + jxl_fmt.align = -frame->linesize[0]; > + data = frame->data[0] - jxl_fmt.align * (info.ysize - 1); > + } > > - if (JxlEncoderAddImageFrame(ctx->options, &jxl_fmt, frame->data[0], jxl_fmt.align * info.ysize) != JXL_ENC_SUCCESS) { > + if (JxlEncoderAddImageFrame(ctx->options, &jxl_fmt, data, jxl_fmt.align * info.ysize) != JXL_ENC_SUCCESS) { > av_log(avctx, AV_LOG_ERROR, "Failed to add Image Frame\n"); > return AVERROR_EXTERNAL; > } _______________________________________________ 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".