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 B236547FEE for ; Fri, 8 Dec 2023 07:32:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5F11668CFB6; Fri, 8 Dec 2023 09:32:16 +0200 (EET) Received: from mail-yb1-f174.google.com (mail-yb1-f174.google.com [209.85.219.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 44DDB68CA1F for ; Fri, 8 Dec 2023 09:32:10 +0200 (EET) Received: by mail-yb1-f174.google.com with SMTP id 3f1490d57ef6-db632fef2dcso1931024276.1 for ; Thu, 07 Dec 2023 23:32:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1702020728; x=1702625528; darn=ffmpeg.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=26GOD6g/uidzex7Q7d5V2ECj2xAwhGx9XquRTVc6/gI=; b=Fb+ccbq2Z4yW6WPqOxMeaZT6jOCAzHFq8mG8x8ftTLfaKfKCbjezPpVGfDtzyHKpE5 fkOFghyuX+Unt9H1nFXc0ECsLgvrUVvbDhrzyHL5wyUlK50+rDhDGaaYToHZyC4dalYS 2zpZ++9GsZ2Mx4Ofd/JQL7PgbkRjf/J60s1gcFT3gE9jX7VRwzjw/SOUYt654dOMVxQR WRzqWSuDeBzuARhhbFxVZ9Bf6K2fPJAsQFkAam6T6e4X2rXPBHJbkO1lyOWQbib3/6Ip cu2iaJXGzxXpg3UG3EECu17gctz8txxxZxw0kBRctAEBGhOE6j4hax8zRT4G6GLYfrpp U71w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702020728; x=1702625528; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=26GOD6g/uidzex7Q7d5V2ECj2xAwhGx9XquRTVc6/gI=; b=vEhsVYNEehO0kGGVpOnMHldcBzisQA4GmvcMsJKDPYWK4bChAfAVRI9+RVkU7jfso6 C6AOdvBrhgaPwZw1kfZaxWnsWxG9LzWMe+A2fYnNTcQi+rHeWi7PX0LlJZIZsJ8L+i+K +lHRoEEjBpYDha0+9SfBqVCPINkWuTIzy0He4t1wHzx7tv0yueKFy/TAgVd0JcOxQN2f 44MmAlE1FS0khyBOSyNXoW9kJmJyNaw2d1am3fQeY+hISo0YCARDOKUJd64XQ39j1CpY JX4oVUC/8OsbxGQ36QdZNqqQG7JuZ5QaHKsyATBiYlQFq7/4nVyYdVDb1HBD9EmVchYr ffUA== X-Gm-Message-State: AOJu0YwhNk40xWS6JHqVOav0XvK76QiAGlPXQSHqf8AD5iTBJu15wxmK 7K2WTyxrR1viG+POCTMZfw45ZdJeM47cT7OWbXQYUN/4UyqjKFLP X-Google-Smtp-Source: AGHT+IGOwmJbOBgpBUhs09n9KrQD0y5CBtGHHsdD1WH+heovscKYUkWixrTX6/DhBZ3SXgrrttn3FiBQHLzgt5u1CAs= X-Received: by 2002:a05:6902:28c:b0:db5:41fe:30c with SMTP id v12-20020a056902028c00b00db541fe030cmr3324450ybh.64.1702020728264; Thu, 07 Dec 2023 23:32:08 -0800 (PST) MIME-Version: 1.0 References: <1790733.STO4oIezCH@basile.remlab.net> In-Reply-To: <1790733.STO4oIezCH@basile.remlab.net> From: flow gg Date: Fri, 8 Dec 2023 15:31:57 +0800 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="000000000000e8d12f060bfa9429" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] lavc/vc1dsp: R-V V inv_trans 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --000000000000e8d12f060bfa9429 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello, I have received the K230, and then installed Debian following your method. Therefore, I have updated the benchmark of K230 in the patch of this reply. k230 vc1dsp.vc1_inv_trans_4x4_dc_c: 125.7 vc1dsp.vc1_inv_trans_4x4_dc_rvv_i32: 53.5 vc1dsp.vc1_inv_trans_4x8_dc_c: 230.7 vc1dsp.vc1_inv_trans_4x8_dc_rvv_i32: 65.5 vc1dsp.vc1_inv_trans_8x4_dc_c: 228.7 vc1dsp.vc1_inv_trans_8x4_dc_rvv_i64: 64.5 vc1dsp.vc1_inv_trans_8x8_dc_c: 476.5 vc1dsp.vc1_inv_trans_8x8_dc_rvv_i64: 80.2 R=C3=A9mi Denis-Courmont =E4=BA=8E2023=E5=B9=B412=E6=9C= =884=E6=97=A5=E5=91=A8=E4=B8=80 01:17=E5=86=99=E9=81=93=EF=BC=9A > Le sunnuntaina 3. joulukuuta 2023, 16.40.08 EET flow gg a =C3=A9crit : > > c910 > > vc1dsp.vc1_inv_trans_4x4_dc_c: 84.0 > > vc1dsp.vc1_inv_trans_4x4_dc_rvv_i32: 74.0 > > vc1dsp.vc1_inv_trans_4x8_dc_c: 150.2 > > vc1dsp.vc1_inv_trans_4x8_dc_rvv_i32: 83.5 > > vc1dsp.vc1_inv_trans_8x4_dc_c: 129.0 > > vc1dsp.vc1_inv_trans_8x4_dc_rvv_i64: 75.7 > > vc1dsp.vc1_inv_trans_8x8_dc_c: 254.7 > > vc1dsp.vc1_inv_trans_8x8_dc_rvv_i64: 90.5 > > The code below uses fractional multipliers, so I infer that the > benchmarked > code was significantly different, and the measurements are not really > worth the > bother. > > I know that supply is a problem at the moment, but I if you are going to > keep > this up, I would hope that ISCAS can get you access to an RVV 1.0 board. > > In-line... > > > diff --git a/libavcodec/riscv/vc1dsp_init.c > b/libavcodec/riscv/vc1dsp_init.c > > new file mode 100644 > > index 0000000000..88e0434f0e > > --- /dev/null > > +++ b/libavcodec/riscv/vc1dsp_init.c > > @@ -0,0 +1,47 @@ > > +/* > > + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences > > (ISCAS). > > + * > > + * This file is part of FFmpeg. > > + * > > + * FFmpeg is free software; you can redistribute it and/or > > + * modify it under the terms of the GNU Lesser General Public > > + * License as published by the Free Software Foundation; either > > + * version 2.1 of the License, or (at your option) any later version. > > + * > > + * FFmpeg is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > > + * Lesser General Public License for more details. > > + * > > + * You should have received a copy of the GNU Lesser General Public > > + * License along with FFmpeg; if not, write to the Free Software > > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > 02110-1301 > > USA > > + */ > > + > > +#include > > + > > +#include "libavutil/attributes.h" > > +#include "libavutil/cpu.h" > > +#include "libavutil/riscv/cpu.h" > > +#include "libavcodec/vc1.h" > > + > > +void ff_vc1_inv_trans_8x8_dc_rvv(uint8_t *dest, ptrdiff_t stride, > int16_t > > *block); > > +void ff_vc1_inv_trans_4x8_dc_rvv(uint8_t *dest, ptrdiff_t stride, > int16_t > > *block); > > +void ff_vc1_inv_trans_8x4_dc_rvv(uint8_t *dest, ptrdiff_t stride, > int16_t > > *block); > > +void ff_vc1_inv_trans_4x4_dc_rvv(uint8_t *dest, ptrdiff_t stride, > int16_t > > *block); > > + > > +av_cold void ff_vc1dsp_init_riscv(VC1DSPContext *dsp) > > +{ > > +#if HAVE_RVV > > + int flags =3D av_get_cpu_flags(); > > + > > + if (flags & AV_CPU_FLAG_RVV_I64) { > > + dsp->vc1_inv_trans_8x8_dc =3D ff_vc1_inv_trans_8x8_dc_rvv; > > + dsp->vc1_inv_trans_8x4_dc =3D ff_vc1_inv_trans_8x4_dc_rvv; > > + } > > + if (flags & AV_CPU_FLAG_RVV_I32) { > > + dsp->vc1_inv_trans_4x8_dc =3D ff_vc1_inv_trans_4x8_dc_rvv; > > + dsp->vc1_inv_trans_4x4_dc =3D ff_vc1_inv_trans_4x4_dc_rvv; > > + } > > Probably missing VLENB checks. > > > +#endif > > +} > > diff --git a/libavcodec/riscv/vc1dsp_rvv.S > b/libavcodec/riscv/vc1dsp_rvv.S > > new file mode 100644 > > index 0000000000..8a6b27192a > > --- /dev/null > > +++ b/libavcodec/riscv/vc1dsp_rvv.S > > @@ -0,0 +1,123 @@ > > +/* > > + * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences > > (ISCAS). > > + * > > + * This file is part of FFmpeg. > > + * > > + * FFmpeg is free software; you can redistribute it and/or > > + * modify it under the terms of the GNU Lesser General Public > > + * License as published by the Free Software Foundation; either > > + * version 2.1 of the License, or (at your option) any later version. > > + * > > + * FFmpeg is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > > + * Lesser General Public License for more details. > > + * > > + * You should have received a copy of the GNU Lesser General Public > > + * License along with FFmpeg; if not, write to the Free Software > > + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA > 02110-1301 > > USA > > + */ > > + > > +#include "libavutil/riscv/asm.S" > > + > > +func ff_vc1_inv_trans_8x8_dc_rvv, zve64x > > + lh t2, (a2) > > + li t1, 3 > > + mul t2, t2, t1 > > You can multiply by 3, 5 or 9 with shift-and-add. By 12 with shift-and-ad= d > then shift, and by 17 with shift then add. You don't need multiplications= . > > > + addi t2, t2, 1 > > + srai t2, t2, 1 > > + mul t2, t2, t1 > > + addi t2, t2, 16 > > + srai t2, t2, 5 > > + vsetivli zero, 8, e8, mf2, ta, ma > > + vlse64.v v0, (a0), a1 > > + li t0, 8*8 > > + vsetvli zero, t0, e16, m8, ta, ma > > + vmv.v.x v8, t2 > > Do you really need to splat? Can't .vx or .wx be used instead? > > > + vsetvli zero, t0, e8, m4, ta, ma > > + vwaddu.wv v8, v8, v0 > > + vsetvli zero, t0, e16, m8, ta, ma > > + vmax.vx v8, v8, zero > > + vsetvli zero, t0, e8, m4, ta, ma > > + vnclipu.wi v0, v8, 0 > > + vsetivli zero, 8, e8, mf2, ta, ma > > + vsse64.v v0, (a0), a1 > > + ret > > +endfunc > > + > > +func ff_vc1_inv_trans_4x8_dc_rvv, zve32x > > + lh t2, (a2) > > + li t1, 17 > > + mul t2, t2, t1 > > + addi t2, t2, 4 > > + srai t2, t2, 3 > > + li t1, 12 > > + mul t2, t2, t1 > > + addi t2, t2, 64 > > + srai t2, t2, 7 > > + vsetivli zero, 8, e8, mf2, ta, ma > > + vlse32.v v0, (a0), a1 > > + li t0, 4*8 > > + vsetvli zero, t0, e16, m4, ta, ma > > + vmv.v.x v4, t2 > > + vsetvli zero, t0, e8, m2, ta, ma > > + vwaddu.wv v4, v4, v0 > > + vsetvli zero, t0, e16, m4, ta, ma > > + vmax.vx v4, v4, zero > > + vsetvli zero, t0, e8, m2, ta, ma > > + vnclipu.wi v0, v4, 0 > > + vsetivli zero, 8, e8, mf2, ta, ma > > + vsse32.v v0, (a0), a1 > > + ret > > +endfunc > > + > > +func ff_vc1_inv_trans_8x4_dc_rvv, zve64x > > + lh t2, (a2) > > + li t1, 3 > > + mul t2, t2, t1 > > + addi t2, t2, 1 > > + srai t2, t2, 1 > > + li t1, 17 > > + mul t2, t2, t1 > > + addi t2, t2, 64 > > + srai t2, t2, 7 > > + vsetivli zero, 8, e8, mf2, ta, ma > > + vlse64.v v0, (a0), a1 > > + li t0, 8*4 > > + vsetvli zero, t0, e16, m4, ta, ma > > + vmv.v.x v4, t2 > > + vsetvli zero, t0, e8, m2, ta, ma > > + vwaddu.wv v4, v4, v0 > > + vsetvli zero, t0, e16, m4, ta, ma > > + vmax.vx v4, v4, zero > > + vsetvli zero, t0, e8, m2, ta, ma > > + vnclipu.wi v0, v4, 0 > > + vsetivli zero, 8, e8, mf2, ta, ma > > + vsse64.v v0, (a0), a1 > > + ret > > +endfunc > > + > > +func ff_vc1_inv_trans_4x4_dc_rvv, zve32x > > + lh t2, (a2) > > + li t1, 17 > > + mul t2, t2, t1 > > + addi t2, t2, 4 > > + srai t2, t2, 3 > > + mul t2, t2, t1 > > + addi t2, t2, 64 > > + srai t2, t2, 7 > > + vsetivli zero, 4, e8, mf2, ta, ma > > + vlse32.v v0, (a0), a1 > > + li t0, 4*4 > > + vsetvli zero, t0, e16, m2, ta, ma > > + vmv.v.x v2, t2 > > + vsetvli zero, t0, e8, m1, ta, ma > > + vwaddu.wv v2, v2, v0 > > + vsetvli zero, t0, e16, m2, ta, ma > > + vmax.vx v2, v2, zero > > + vsetvli zero, t0, e8, m1, ta, ma > > + vnclipu.wi v0, v2, 0 > > + vsetivli zero, 4, e8, mf2, ta, ma > > + vsse32.v v0, (a0), a1 > > + ret > > +endfunc > > diff --git a/libavcodec/vc1dsp.c b/libavcodec/vc1dsp.c > > index 62c8eb21fa..2caa3c6863 100644 > > --- a/libavcodec/vc1dsp.c > > +++ b/libavcodec/vc1dsp.c > > @@ -1039,6 +1039,8 @@ av_cold void ff_vc1dsp_init(VC1DSPContext *dsp) > > ff_vc1dsp_init_arm(dsp); > > #elif ARCH_PPC > > ff_vc1dsp_init_ppc(dsp); > > +#elif ARCH_RISCV > > + ff_vc1dsp_init_riscv(dsp); > > #elif ARCH_X86 > > ff_vc1dsp_init_x86(dsp); > > #elif ARCH_MIPS > > diff --git a/libavcodec/vc1dsp.h b/libavcodec/vc1dsp.h > > index 7ed1776ca7..e3b90d2b62 100644 > > --- a/libavcodec/vc1dsp.h > > +++ b/libavcodec/vc1dsp.h > > @@ -89,6 +89,7 @@ void ff_vc1dsp_init(VC1DSPContext* c); > > void ff_vc1dsp_init_aarch64(VC1DSPContext* dsp); > > void ff_vc1dsp_init_arm(VC1DSPContext* dsp); > > void ff_vc1dsp_init_ppc(VC1DSPContext *c); > > +void ff_vc1dsp_init_riscv(VC1DSPContext *c); > > void ff_vc1dsp_init_x86(VC1DSPContext* dsp); > > void ff_vc1dsp_init_mips(VC1DSPContext* dsp); > > void ff_vc1dsp_init_loongarch(VC1DSPContext* dsp); > > -- > =E3=83=AC=E3=83=9F=E3=83=BB=E3=83=87=E3=83=8B-=E3=82=AF=E3=83=BC=E3=83=AB= =E3=83=A2=E3=83=B3 > http://www.remlab.net/ > > > > _______________________________________________ > 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". > --000000000000e8d12f060bfa9429 Content-Type: text/x-patch; charset="US-ASCII"; name="lavc-vc1dsp-R-V-V-inv_trans_nosplat.patch" Content-Disposition: attachment; filename="lavc-vc1dsp-R-V-V-inv_trans_nosplat.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lpwb6np50 RnJvbSA0NjBmMDFjNjhjOGQ5MWVjMGQyZTgzMWRjYjUzY2UwN2M3YWI4YWU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBzdW55dWVjaGkgPHN1bnl1ZWNoaUBpc2Nhcy5hYy5jbj4KRGF0 ZTogRnJpLCAxIERlYyAyMDIzIDEwOjA3OjQwICswODAwClN1YmplY3Q6IFtQQVRDSF0gbGF2Yy92 YzFkc3A6IFItViBWIGludl90cmFucwoKazIzMAogICAgdmMxZHNwLnZjMV9pbnZfdHJhbnNfNHg0 X2RjX2M6IDEyNS43CiAgICB2YzFkc3AudmMxX2ludl90cmFuc180eDRfZGNfcnZ2X2kzMjogNTMu NQogICAgdmMxZHNwLnZjMV9pbnZfdHJhbnNfNHg4X2RjX2M6IDIzMC43CiAgICB2YzFkc3AudmMx X2ludl90cmFuc180eDhfZGNfcnZ2X2kzMjogNjUuNQogICAgdmMxZHNwLnZjMV9pbnZfdHJhbnNf OHg0X2RjX2M6IDIyOC43CiAgICB2YzFkc3AudmMxX2ludl90cmFuc184eDRfZGNfcnZ2X2k2NDog NjQuNQogICAgdmMxZHNwLnZjMV9pbnZfdHJhbnNfOHg4X2RjX2M6IDQ3Ni41CiAgICB2YzFkc3Au dmMxX2ludl90cmFuc184eDhfZGNfcnZ2X2k2NDogODAuMgoKYzkxMAogICAgdmMxZHNwLnZjMV9p bnZfdHJhbnNfNHg0X2RjX2M6IDg0LjAKICAgIHZjMWRzcC52YzFfaW52X3RyYW5zXzR4NF9kY19y dnZfaTMyOiA3NC4wCiAgICB2YzFkc3AudmMxX2ludl90cmFuc180eDhfZGNfYzogMTUwLjIKICAg IHZjMWRzcC52YzFfaW52X3RyYW5zXzR4OF9kY19ydnZfaTMyOiA4My41CiAgICB2YzFkc3AudmMx X2ludl90cmFuc184eDRfZGNfYzogMTI5LjAKICAgIHZjMWRzcC52YzFfaW52X3RyYW5zXzh4NF9k Y19ydnZfaTY0OiA3NS43CiAgICB2YzFkc3AudmMxX2ludl90cmFuc184eDhfZGNfYzogMjU0LjcK ICAgIHZjMWRzcC52YzFfaW52X3RyYW5zXzh4OF9kY19ydnZfaTY0OiA5MC41Ci0tLQogbGliYXZj b2RlYy9yaXNjdi9NYWtlZmlsZSAgICAgIHwgICAyICsKIGxpYmF2Y29kZWMvcmlzY3YvdmMxZHNw X2luaXQuYyB8ICA0OSArKysrKysrKysrKysrKwogbGliYXZjb2RlYy9yaXNjdi92YzFkc3BfcnZ2 LlMgIHwgMTEzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbGliYXZjb2RlYy92 YzFkc3AuYyAgICAgICAgICAgIHwgICAyICsKIGxpYmF2Y29kZWMvdmMxZHNwLmggICAgICAgICAg ICB8ICAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDE2NyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliYXZjb2RlYy9yaXNjdi92YzFkc3BfaW5pdC5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgbGliYXZjb2RlYy9yaXNjdi92YzFkc3BfcnZ2LlMKCmRpZmYgLS1naXQgYS9saWJhdmNvZGVj L3Jpc2N2L01ha2VmaWxlIGIvbGliYXZjb2RlYy9yaXNjdi9NYWtlZmlsZQppbmRleCAyZDBlNmMx OWM4Li40NDJjNTk2MWVhIDEwMDY0NAotLS0gYS9saWJhdmNvZGVjL3Jpc2N2L01ha2VmaWxlCisr KyBiL2xpYmF2Y29kZWMvcmlzY3YvTWFrZWZpbGUKQEAgLTM5LDUgKzM5LDcgQEAgT0JKUy0kKENP TkZJR19QSVhCTE9DS0RTUCkgKz0gcmlzY3YvcGl4YmxvY2tkc3BfaW5pdC5vIFwKIFJWVi1PQkpT LSQoQ09ORklHX1BJWEJMT0NLRFNQKSArPSByaXNjdi9waXhibG9ja2RzcF9ydnYubwogT0JKUy0k KENPTkZJR19VVFZJREVPX0RFQ09ERVIpICs9IHJpc2N2L3V0dmlkZW9kc3BfaW5pdC5vCiBSVlYt T0JKUy0kKENPTkZJR19VVFZJREVPX0RFQ09ERVIpICs9IHJpc2N2L3V0dmlkZW9kc3BfcnZ2Lm8K K09CSlMtJChDT05GSUdfVkMxRFNQKSArPSByaXNjdi92YzFkc3BfaW5pdC5vCitSVlYtT0JKUy0k KENPTkZJR19WQzFEU1ApICs9IHJpc2N2L3ZjMWRzcF9ydnYubwogT0JKUy0kKENPTkZJR19WT1JC SVNfREVDT0RFUikgKz0gcmlzY3Yvdm9yYmlzZHNwX2luaXQubwogUlZWLU9CSlMtJChDT05GSUdf Vk9SQklTX0RFQ09ERVIpICs9IHJpc2N2L3ZvcmJpc2RzcF9ydnYubwpkaWZmIC0tZ2l0IGEvbGli YXZjb2RlYy9yaXNjdi92YzFkc3BfaW5pdC5jIGIvbGliYXZjb2RlYy9yaXNjdi92YzFkc3BfaW5p dC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBkMjJkMjhmNGQKLS0t IC9kZXYvbnVsbAorKysgYi9saWJhdmNvZGVjL3Jpc2N2L3ZjMWRzcF9pbml0LmMKQEAgLTAsMCAr MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMyBJbnN0aXR1ZSBvZiBTb2Z0d2FyZSBD aGluZXNlIEFjYWRlbXkgb2YgU2NpZW5jZXMgKElTQ0FTKS4KKyAqCisgKiBUaGlzIGZpbGUgaXMg cGFydCBvZiBGRm1wZWcuCisgKgorICogRkZtcGVnIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg KiBGRm1wZWcgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdp dGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0 aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAy MTEwLTEzMDEgVVNBCisgKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaW5jbHVkZSAibGli YXZ1dGlsL2F0dHJpYnV0ZXMuaCIKKyNpbmNsdWRlICJsaWJhdnV0aWwvY3B1LmgiCisjaW5jbHVk ZSAibGliYXZ1dGlsL3Jpc2N2L2NwdS5oIgorI2luY2x1ZGUgImxpYmF2Y29kZWMvdmMxLmgiCisK K3ZvaWQgZmZfdmMxX2ludl90cmFuc184eDhfZGNfcnZ2KHVpbnQ4X3QgKmRlc3QsIHB0cmRpZmZf dCBzdHJpZGUsIGludDE2X3QgKmJsb2NrKTsKK3ZvaWQgZmZfdmMxX2ludl90cmFuc180eDhfZGNf cnZ2KHVpbnQ4X3QgKmRlc3QsIHB0cmRpZmZfdCBzdHJpZGUsIGludDE2X3QgKmJsb2NrKTsKK3Zv aWQgZmZfdmMxX2ludl90cmFuc184eDRfZGNfcnZ2KHVpbnQ4X3QgKmRlc3QsIHB0cmRpZmZfdCBz dHJpZGUsIGludDE2X3QgKmJsb2NrKTsKK3ZvaWQgZmZfdmMxX2ludl90cmFuc180eDRfZGNfcnZ2 KHVpbnQ4X3QgKmRlc3QsIHB0cmRpZmZfdCBzdHJpZGUsIGludDE2X3QgKmJsb2NrKTsKKworYXZf Y29sZCB2b2lkIGZmX3ZjMWRzcF9pbml0X3Jpc2N2KFZDMURTUENvbnRleHQgKmRzcCkKK3sKKyNp ZiBIQVZFX1JWVgorICAgIGludCBmbGFncyA9IGF2X2dldF9jcHVfZmxhZ3MoKTsKKworICAgIGlm IChmZl9nZXRfcnZfdmxlbmIoKSA+PSAxNikgeworICAgICAgICBpZiAoZmxhZ3MgJiBBVl9DUFVf RkxBR19SVlZfSTY0KSB7CisgICAgICAgICAgICBkc3AtPnZjMV9pbnZfdHJhbnNfOHg4X2RjID0g ZmZfdmMxX2ludl90cmFuc184eDhfZGNfcnZ2OworICAgICAgICAgICAgZHNwLT52YzFfaW52X3Ry YW5zXzh4NF9kYyA9IGZmX3ZjMV9pbnZfdHJhbnNfOHg0X2RjX3J2djsKKyAgICAgICAgfQorICAg ICAgICBpZiAoZmxhZ3MgJiBBVl9DUFVfRkxBR19SVlZfSTMyKSB7CisgICAgICAgICAgICBkc3At PnZjMV9pbnZfdHJhbnNfNHg4X2RjID0gZmZfdmMxX2ludl90cmFuc180eDhfZGNfcnZ2OworICAg ICAgICAgICAgZHNwLT52YzFfaW52X3RyYW5zXzR4NF9kYyA9IGZmX3ZjMV9pbnZfdHJhbnNfNHg0 X2RjX3J2djsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy9yaXNjdi92YzFkc3BfcnZ2LlMgYi9saWJhdmNvZGVjL3Jpc2N2L3ZjMWRzcF9ydnYuUwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xYTUwM2VjYzg3Ci0tLSAvZGV2 L251bGwKKysrIGIvbGliYXZjb2RlYy9yaXNjdi92YzFkc3BfcnZ2LlMKQEAgLTAsMCArMSwxMTMg QEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjMgSW5zdGl0dWUgb2YgU29mdHdhcmUgQ2hpbmVz ZSBBY2FkZW15IG9mIFNjaWVuY2VzIChJU0NBUykuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQg b2YgRkZtcGVnLgorICoKKyAqIEZGbXBlZyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogRkZt cGVnIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIEZG bXBlZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwg SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxIFVTQQorICovCisKKyNpbmNsdWRlICJsaWJhdnV0aWwvcmlzY3YvYXNtLlMiCisKK2Z1bmMg ZmZfdmMxX2ludl90cmFuc184eDhfZGNfcnZ2LCB6dmU2NHgKKyAgICAgICAgbGggICAgICAgICAg ICB0MiwgKGEyKQorICAgICAgICB2c2V0aXZsaSAgICAgIHplcm8sIDgsIGU4LCBtZjIsIHRhLCBt YQorICAgICAgICB2bHNlNjQudiAgICAgIHYwLCAoYTApLCBhMQorICAgICAgICBzaDFhZGQgICAg ICAgIHQyLCB0MiwgdDIKKyAgICAgICAgYWRkaSAgICAgICAgICB0MiwgdDIsIDEKKyAgICAgICAg c3JhaSAgICAgICAgICB0MiwgdDIsIDEKKyAgICAgICAgc2gxYWRkICAgICAgICB0MiwgdDIsIHQy CisgICAgICAgIGFkZGkgICAgICAgICAgdDIsIHQyLCAxNgorICAgICAgICBzcmFpICAgICAgICAg IHQyLCB0MiwgNQorICAgICAgICBsaSAgICAgICAgICAgIHQwLCA4KjgKKyAgICAgICAgdnNldHZs aSAgICAgICB6ZXJvLCB0MCwgZTE2LCBtOCwgdGEsIG1hCisgICAgICAgIHZ6ZXh0LnZmMiAgICAg djgsIHYwCisgICAgICAgIHZhZGQudnggICAgICAgdjgsIHY4LCB0MgorICAgICAgICB2bWF4LnZ4 ICAgICAgIHY4LCB2OCwgemVybworICAgICAgICB2c2V0dmxpICAgICAgIHplcm8sIHplcm8sIGU4 LCBtNCwgdGEsIG1hCisgICAgICAgIHZuY2xpcHUud2kgICAgdjAsIHY4LCAwCisgICAgICAgIHZz ZXRpdmxpICAgICAgemVybywgOCwgZTgsIG1mMiwgdGEsIG1hCisgICAgICAgIHZzc2U2NC52ICAg ICAgdjAsIChhMCksIGExCisgICAgICAgIHJldAorZW5kZnVuYworCitmdW5jIGZmX3ZjMV9pbnZf dHJhbnNfNHg4X2RjX3J2diwgenZlMzJ4CisgICAgICAgIGxoICAgICAgICAgICAgdDIsIChhMikK KyAgICAgICAgdnNldGl2bGkgICAgICB6ZXJvLCA4LCBlOCwgbWYyLCB0YSwgbWEKKyAgICAgICAg dmxzZTMyLnYgICAgICB2MCwgKGEwKSwgYTEKKyAgICAgICAgc2xsaSAgICAgICAgICB0MSwgdDIs IDQKKyAgICAgICAgYWRkICAgICAgICAgICB0MiwgdDIsIHQxCisgICAgICAgIGFkZGkgICAgICAg ICAgdDIsIHQyLCA0CisgICAgICAgIHNyYWkgICAgICAgICAgdDIsIHQyLCAzCisgICAgICAgIHNo MWFkZCAgICAgICAgdDIsIHQyLCB0MgorICAgICAgICBzbGxpICAgICAgICAgIHQyLCB0MiwgMgor ICAgICAgICBhZGRpICAgICAgICAgIHQyLCB0MiwgNjQKKyAgICAgICAgc3JhaSAgICAgICAgICB0 MiwgdDIsIDcKKyAgICAgICAgbGkgICAgICAgICAgICB0MCwgNCo4CisgICAgICAgIHZzZXR2bGkg ICAgICAgemVybywgdDAsIGUxNiwgbTQsIHRhLCBtYQorICAgICAgICB2emV4dC52ZjIgICAgIHY0 LCB2MAorICAgICAgICB2YWRkLnZ4ICAgICAgIHY0LCB2NCwgdDIKKyAgICAgICAgdm1heC52eCAg ICAgICB2NCwgdjQsIHplcm8KKyAgICAgICAgdnNldHZsaSAgICAgICB6ZXJvLCB6ZXJvLCBlOCwg bTIsIHRhLCBtYQorICAgICAgICB2bmNsaXB1LndpICAgIHYwLCB2NCwgMAorICAgICAgICB2c2V0 aXZsaSAgICAgIHplcm8sIDgsIGU4LCBtZjIsIHRhLCBtYQorICAgICAgICB2c3NlMzIudiAgICAg IHYwLCAoYTApLCBhMQorICAgICAgICByZXQKK2VuZGZ1bmMKKworZnVuYyBmZl92YzFfaW52X3Ry YW5zXzh4NF9kY19ydnYsIHp2ZTY0eAorICAgICAgICBsaCAgICAgICAgICAgIHQyLCAoYTIpCisg ICAgICAgIHZzZXRpdmxpICAgICAgemVybywgOCwgZTgsIG1mMiwgdGEsIG1hCisgICAgICAgIHZs c2U2NC52ICAgICAgdjAsIChhMCksIGExCisgICAgICAgIHNoMWFkZCAgICAgICAgdDIsIHQyLCB0 MgorICAgICAgICBhZGRpICAgICAgICAgIHQyLCB0MiwgMQorICAgICAgICBzcmFpICAgICAgICAg IHQyLCB0MiwgMQorICAgICAgICBzbGxpICAgICAgICAgIHQxLCB0MiwgNAorICAgICAgICBhZGQg ICAgICAgICAgIHQyLCB0MiwgdDEKKyAgICAgICAgYWRkaSAgICAgICAgICB0MiwgdDIsIDY0Cisg ICAgICAgIHNyYWkgICAgICAgICAgdDIsIHQyLCA3CisgICAgICAgIGxpICAgICAgICAgICAgdDAs IDgqNAorICAgICAgICB2c2V0dmxpICAgICAgIHplcm8sIHQwLCBlMTYsIG00LCB0YSwgbWEKKyAg ICAgICAgdnpleHQudmYyICAgICB2NCwgdjAKKyAgICAgICAgdmFkZC52eCAgICAgICB2NCwgdjQs IHQyCisgICAgICAgIHZtYXgudnggICAgICAgdjQsIHY0LCB6ZXJvCisgICAgICAgIHZzZXR2bGkg ICAgICAgemVybywgemVybywgZTgsIG0yLCB0YSwgbWEKKyAgICAgICAgdm5jbGlwdS53aSAgICB2 MCwgdjQsIDAKKyAgICAgICAgdnNldGl2bGkgICAgICB6ZXJvLCA4LCBlOCwgbWYyLCB0YSwgbWEK KyAgICAgICAgdnNzZTY0LnYgICAgICB2MCwgKGEwKSwgYTEKKyAgICAgICAgcmV0CitlbmRmdW5j CisKK2Z1bmMgZmZfdmMxX2ludl90cmFuc180eDRfZGNfcnZ2LCB6dmUzMngKKyAgICAgICAgbGgg ICAgICAgICAgICB0MiwgKGEyKQorICAgICAgICB2c2V0aXZsaSAgICAgIHplcm8sIDQsIGU4LCBt ZjIsIHRhLCBtYQorICAgICAgICB2bHNlMzIudiAgICAgIHYwLCAoYTApLCBhMQorICAgICAgICBz bGxpICAgICAgICAgIHQxLCB0MiwgNAorICAgICAgICBhZGQgICAgICAgICAgIHQyLCB0MiwgdDEK KyAgICAgICAgYWRkaSAgICAgICAgICB0MiwgdDIsIDQKKyAgICAgICAgc3JhaSAgICAgICAgICB0 MiwgdDIsIDMKKyAgICAgICAgc2xsaSAgICAgICAgICB0MSwgdDIsIDQKKyAgICAgICAgYWRkICAg ICAgICAgICB0MiwgdDIsIHQxCisgICAgICAgIGFkZGkgICAgICAgICAgdDIsIHQyLCA2NAorICAg ICAgICBzcmFpICAgICAgICAgIHQyLCB0MiwgNworICAgICAgICB2c2V0aXZsaSAgICAgIHplcm8s IDQqNCwgZTE2LCBtMiwgdGEsIG1hCisgICAgICAgIHZ6ZXh0LnZmMiAgICAgdjIsIHYwCisgICAg ICAgIHZhZGQudnggICAgICAgdjIsIHYyLCB0MgorICAgICAgICB2bWF4LnZ4ICAgICAgIHYyLCB2 MiwgemVybworICAgICAgICB2c2V0dmxpICAgICAgIHplcm8sIHplcm8sIGU4LCBtMSwgdGEsIG1h CisgICAgICAgIHZuY2xpcHUud2kgICAgdjAsIHYyLCAwCisgICAgICAgIHZzZXRpdmxpICAgICAg emVybywgNCwgZTgsIG1mMiwgdGEsIG1hCisgICAgICAgIHZzc2UzMi52ICAgICAgdjAsIChhMCks IGExCisgICAgICAgIHJldAorZW5kZnVuYwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92YzFkc3Au YyBiL2xpYmF2Y29kZWMvdmMxZHNwLmMKaW5kZXggNjJjOGViMjFmYS4uMmNhYTNjNjg2MyAxMDA2 NDQKLS0tIGEvbGliYXZjb2RlYy92YzFkc3AuYworKysgYi9saWJhdmNvZGVjL3ZjMWRzcC5jCkBA IC0xMDM5LDYgKzEwMzksOCBAQCBhdl9jb2xkIHZvaWQgZmZfdmMxZHNwX2luaXQoVkMxRFNQQ29u dGV4dCAqZHNwKQogICAgIGZmX3ZjMWRzcF9pbml0X2FybShkc3ApOwogI2VsaWYgQVJDSF9QUEMK ICAgICBmZl92YzFkc3BfaW5pdF9wcGMoZHNwKTsKKyNlbGlmIEFSQ0hfUklTQ1YKKyAgICBmZl92 YzFkc3BfaW5pdF9yaXNjdihkc3ApOwogI2VsaWYgQVJDSF9YODYKICAgICBmZl92YzFkc3BfaW5p dF94ODYoZHNwKTsKICNlbGlmIEFSQ0hfTUlQUwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92YzFk c3AuaCBiL2xpYmF2Y29kZWMvdmMxZHNwLmgKaW5kZXggN2VkMTc3NmNhNy4uZTNiOTBkMmI2MiAx MDA2NDQKLS0tIGEvbGliYXZjb2RlYy92YzFkc3AuaAorKysgYi9saWJhdmNvZGVjL3ZjMWRzcC5o CkBAIC04OSw2ICs4OSw3IEBAIHZvaWQgZmZfdmMxZHNwX2luaXQoVkMxRFNQQ29udGV4dCogYyk7 CiB2b2lkIGZmX3ZjMWRzcF9pbml0X2FhcmNoNjQoVkMxRFNQQ29udGV4dCogZHNwKTsKIHZvaWQg ZmZfdmMxZHNwX2luaXRfYXJtKFZDMURTUENvbnRleHQqIGRzcCk7CiB2b2lkIGZmX3ZjMWRzcF9p bml0X3BwYyhWQzFEU1BDb250ZXh0ICpjKTsKK3ZvaWQgZmZfdmMxZHNwX2luaXRfcmlzY3YoVkMx RFNQQ29udGV4dCAqYyk7CiB2b2lkIGZmX3ZjMWRzcF9pbml0X3g4NihWQzFEU1BDb250ZXh0KiBk c3ApOwogdm9pZCBmZl92YzFkc3BfaW5pdF9taXBzKFZDMURTUENvbnRleHQqIGRzcCk7CiB2b2lk IGZmX3ZjMWRzcF9pbml0X2xvb25nYXJjaChWQzFEU1BDb250ZXh0KiBkc3ApOwotLSAKMi40My4w Cgo= --000000000000e8d12f060bfa9429 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --000000000000e8d12f060bfa9429--