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 C6025475CD for ; Sat, 14 Oct 2023 08:45:53 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 98BA368C9C1; Sat, 14 Oct 2023 11:45:49 +0300 (EEST) Received: from smtp-my3-08p62.yunyou.top (smtp-my3-08p62.yunyou.top [60.247.169.62]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 38E2B68C9BC for ; Sat, 14 Oct 2023 11:45:42 +0300 (EEST) Received: from [192.168.15.106] (unknown [125.121.27.199]) by smtp-my-08.yunyou.top (WestCloudMail) with ESMTPA id 6595EAE442 for ; Sat, 14 Oct 2023 16:45:39 +0800 (CST) Content-Type: multipart/mixed; boundary="------------05zAwXICLrSPjTeQWp1d0nS8" Message-ID: <646d7216-e68d-4a49-821b-f358337797ef@myais.com.cn> Date: Sat, 14 Oct 2023 16:45:39 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: "Logan.Lyu" To: ffmpeg-devel@ffmpeg.org Organization: myais Subject: [FFmpeg-devel] [PATCH 1/4] lavc/aarch64: new optimization for 8-bit hevc_epel_v 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: This is a multi-part message in MIME format. --------------05zAwXICLrSPjTeQWp1d0nS8 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit checkasm bench: put_hevc_epel_v4_8_c: 79.9 put_hevc_epel_v4_8_neon: 25.7 put_hevc_epel_v6_8_c: 151.4 put_hevc_epel_v6_8_neon: 46.4 put_hevc_epel_v8_8_c: 250.9 put_hevc_epel_v8_8_neon: 41.7 put_hevc_epel_v12_8_c: 542.7 put_hevc_epel_v12_8_neon: 108.7 put_hevc_epel_v16_8_c: 939.4 put_hevc_epel_v16_8_neon: 169.2 put_hevc_epel_v24_8_c: 2104.9 put_hevc_epel_v24_8_neon: 307.9 put_hevc_epel_v32_8_c: 3713.9 put_hevc_epel_v32_8_neon: 524.2 put_hevc_epel_v48_8_c: 8175.2 put_hevc_epel_v48_8_neon: 1197.2 put_hevc_epel_v64_8_c: 16049.4 put_hevc_epel_v64_8_neon: 2094.9 Co-Authored-By: J. Dekker Signed-off-by: Logan Lyu --- libavcodec/aarch64/hevcdsp_epel_neon.S | 223 ++++++++++++++++++++++ libavcodec/aarch64/hevcdsp_init_aarch64.c | 5 + 2 files changed, 228 insertions(+) diff --git a/libavcodec/aarch64/hevcdsp_epel_neon.S b/libavcodec/aarch64/hevcdsp_epel_neon.S index b4ca1e4c20..e541db5430 100644 --- a/libavcodec/aarch64/hevcdsp_epel_neon.S +++ b/libavcodec/aarch64/hevcdsp_epel_neon.S @@ -243,6 +243,229 @@ function ff_hevc_put_hevc_pel_pixels64_8_neon, export=1 ret endfunc + +function ff_hevc_put_hevc_epel_v4_8_neon, export=1 + load_epel_filterb x5, x4 + sub x1, x1, x2 + mov x10, #(MAX_PB_SIZE * 2) + ldr s16, [x1] + ldr s17, [x1 ,x2] + add x1, x1, x2, lsl #1 + ld1 {v18.s}[0], [x1], x2 +.macro calc src0, src1, src2, src3 + ld1 {\src3\().s}[0], [x1], x2 + movi v4.8h, #0 + calc_epelb v4, \src0, \src1, \src2, \src3 + subs w3, w3, #1 + st1 {v4.4h}, [x0], x10 +.endm +1: calc_all4 +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_epel_v6_8_neon, export=1 + load_epel_filterb x5, x4 + sub x1, x1, x2 + mov x10, #(MAX_PB_SIZE * 2 - 8) + ldr d16, [x1] + ldr d17, [x1, x2] + add x1, x1, x2, lsl #1 + ld1 {v18.8b}, [x1], x2 +.macro calc src0, src1, src2, src3 + ld1 {\src3\().8b}, [x1], x2 + movi v4.8h, #0 + calc_epelb v4, \src0, \src1, \src2, \src3 + st1 {v4.d}[0], [x0], #8 + subs w3, w3, #1 + st1 {v4.s}[2], [x0], x10 +.endm +1: calc_all4 +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_epel_v8_8_neon, export=1 + load_epel_filterb x5, x4 + sub x1, x1, x2 + mov x10, #(MAX_PB_SIZE * 2) + ldr d16, [x1] + ldr d17, [x1, x2] + add x1, x1, x2, lsl #1 + ld1 {v18.8b}, [x1], x2 +.macro calc src0, src1, src2, src3 + ld1 {\src3\().8b}, [x1], x2 + movi v4.8h, #0 + calc_epelb v4, \src0, \src1, \src2, \src3 + subs w3, w3, #1 + st1 {v4.8h}, [x0], x10 +.endm +1: calc_all4 +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_epel_v12_8_neon, export=1 + load_epel_filterb x5, x4 + sub x1, x1, x2 + mov x10, #(MAX_PB_SIZE * 2) + ldr q16, [x1] + ldr q17, [x1, x2] + add x1, x1, x2, lsl #1 + ld1 {v18.16b}, [x1], x2 +.macro calc src0, src1, src2, src3 + ld1 {\src3\().16b}, [x1], x2 + movi v4.8h, #0 + movi v5.8h, #0 + calc_epelb v4, \src0, \src1, \src2, \src3 + calc_epelb2 v5, \src0, \src1, \src2, \src3 + str q4, [x0] + subs w3, w3, #1 + str d5, [x0, #16] + add x0, x0, x10 +.endm +1: calc_all4 +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_epel_v16_8_neon, export=1 + load_epel_filterb x5, x4 + sub x1, x1, x2 + mov x10, #(MAX_PB_SIZE * 2) + ldr q16, [x1] + ldr q17, [x1, x2] + add x1, x1, x2, lsl #1 + ld1 {v18.16b}, [x1], x2 +.macro calc src0, src1, src2, src3 + ld1 {\src3\().16b}, [x1], x2 + movi v4.8h, #0 + movi v5.8h, #0 + calc_epelb v4, \src0, \src1, \src2, \src3 + calc_epelb2 v5, \src0, \src1, \src2, \src3 + subs w3, w3, #1 + st1 {v4.8h, v5.8h}, [x0], x10 +.endm +1: calc_all4 +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_epel_v24_8_neon, export=1 + load_epel_filterb x5, x4 + sub x1, x1, x2 + mov x10, #(MAX_PB_SIZE * 2) + ld1 {v16.8b, v17.8b, v18.8b}, [x1], x2 + ld1 {v19.8b, v20.8b, v21.8b}, [x1], x2 + ld1 {v22.8b, v23.8b, v24.8b}, [x1], x2 +.macro calc src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11 + ld1 {\src9\().8b, \src10\().8b, \src11\().8b}, [x1], x2 + movi v4.8h, #0 + movi v5.8h, #0 + movi v6.8h, #0 + calc_epelb v4, \src0, \src3, \src6, \src9 + calc_epelb v5, \src1, \src4, \src7, \src10 + calc_epelb v6, \src2, \src5, \src8, \src11 + subs w3, w3, #1 + st1 {v4.8h-v6.8h}, [x0], x10 +.endm +1: calc_all12 +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_epel_v32_8_neon, export=1 + load_epel_filterb x5, x4 + sub x1, x1, x2 + mov x10, #(MAX_PB_SIZE * 2) + ld1 {v16.16b, v17.16b}, [x1], x2 + ld1 {v18.16b, v19.16b}, [x1], x2 + ld1 {v20.16b, v21.16b}, [x1], x2 +.macro calc src0, src1, src2, src3, src4, src5, src6, src7 + ld1 {\src6\().16b, \src7\().16b}, [x1], x2 + movi v4.8h, #0 + movi v5.8h, #0 + movi v6.8h, #0 + movi v7.8h, #0 + calc_epelb v4, \src0, \src2, \src4, \src6 + calc_epelb2 v5, \src0, \src2, \src4, \src6 + calc_epelb v6, \src1, \src3, \src5, \src7 + calc_epelb2 v7, \src1, \src3, \src5, \src7 + subs w3, w3, #1 + st1 {v4.8h-v7.8h}, [x0], x10 +.endm +1: calc_all8 +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_epel_v48_8_neon, export=1 + load_epel_filterb x5, x4 + sub x1, x1, x2 + mov x10, #64 + ld1 {v16.16b, v17.16b, v18.16b}, [x1], x2 + ld1 {v19.16b, v20.16b, v21.16b}, [x1], x2 + ld1 {v22.16b, v23.16b, v24.16b}, [x1], x2 +.macro calc src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11 + ld1 {\src9\().16b, \src10\().16b, \src11\().16b}, [x1], x2 + movi v4.8h, #0 + movi v5.8h, #0 + movi v6.8h, #0 + movi v7.8h, #0 + movi v28.8h, #0 + movi v29.8h, #0 + calc_epelb v4, \src0, \src3, \src6, \src9 + calc_epelb2 v5, \src0, \src3, \src6, \src9 + calc_epelb v6, \src1, \src4, \src7, \src10 + calc_epelb2 v7, \src1, \src4, \src7, \src10 + calc_epelb v28, \src2, \src5, \src8, \src11 + calc_epelb2 v29, \src2, \src5, \src8, \src11 + st1 {v4.8h-v7.8h}, [x0], #64 + subs w3, w3, #1 + st1 {v28.8h-v29.8h}, [x0], x10 +.endm +1: calc_all12 +.purgem calc +2: ret +endfunc + +function ff_hevc_put_hevc_epel_v64_8_neon, export=1 + load_epel_filterb x5, x4 + sub sp, sp, #32 + st1 {v8.8b-v11.8b}, [sp] + sub x1, x1, x2 + ld1 {v16.16b, v17.16b, v18.16b, v19.16b}, [x1], x2 + ld1 {v20.16b, v21.16b, v22.16b, v23.16b}, [x1], x2 + ld1 {v24.16b, v25.16b, v26.16b, v27.16b}, [x1], x2 +.macro calc src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11, src12, src13, src14, src15 + ld1 {\src12\().16b-\src15\().16b}, [x1], x2 + movi v4.8h, #0 + movi v5.8h, #0 + movi v6.8h, #0 + movi v7.8h, #0 + movi v8.8h, #0 + movi v9.8h, #0 + movi v10.8h, #0 + movi v11.8h, #0 + calc_epelb v4, \src0, \src4, \src8, \src12 + calc_epelb2 v5, \src0, \src4, \src8, \src12 + calc_epelb v6, \src1, \src5, \src9, \src13 + calc_epelb2 v7, \src1, \src5, \src9, \src13 + calc_epelb v8, \src2, \src6, \src10, \src14 + calc_epelb2 v9, \src2, \src6, \src10, \src14 + calc_epelb v10, \src3, \src7, \src11, \src15 + calc_epelb2 v11, \src3, \src7, \src11, \src15 + st1 {v4.8h-v7.8h}, [x0], #64 + subs w3, w3, #1 + st1 {v8.8h-v11.8h}, [x0], #64 +.endm +1: calc_all16 +.purgem calc +2: ld1 {v8.8b-v11.8b}, [sp] + add sp, sp, #32 + ret +endfunc + function ff_hevc_put_hevc_epel_uni_v4_8_neon, export=1 load_epel_filterb x6, x5 sub x2, x2, x3 diff --git a/libavcodec/aarch64/hevcdsp_init_aarch64.c b/libavcodec/aarch64/hevcdsp_init_aarch64.c index 4c377a7940..82e1623a67 100644 --- a/libavcodec/aarch64/hevcdsp_init_aarch64.c +++ b/libavcodec/aarch64/hevcdsp_init_aarch64.c @@ -156,6 +156,10 @@ NEON8_FNPROTO(pel_pixels, (int16_t *dst, const uint8_t *src, ptrdiff_t srcstride, int height, intptr_t mx, intptr_t my, int width),); +NEON8_FNPROTO(epel_v, (int16_t *dst, + const uint8_t *src, ptrdiff_t srcstride, + int height, intptr_t mx, intptr_t my, int width),); + NEON8_FNPROTO(pel_uni_pixels, (uint8_t *_dst, ptrdiff_t _dststride, const uint8_t *_src, ptrdiff_t _srcstride, int height, intptr_t mx, intptr_t my, int width),); @@ -305,6 +309,7 @@ av_cold void ff_hevc_dsp_init_aarch64(HEVCDSPContext *c, const int bit_depth) c->put_hevc_qpel_bi[9][0][1] = ff_hevc_put_hevc_qpel_bi_h16_8_neon; NEON8_FNASSIGN(c->put_hevc_epel, 0, 0, pel_pixels,); + NEON8_FNASSIGN(c->put_hevc_epel, 1, 0, epel_v,); NEON8_FNASSIGN(c->put_hevc_qpel, 0, 0, pel_pixels,); NEON8_FNASSIGN(c->put_hevc_epel_uni, 0, 0, pel_uni_pixels,); NEON8_FNASSIGN(c->put_hevc_epel_uni, 1, 0, epel_uni_v,); -- 2.38.0.windows.1 --------------05zAwXICLrSPjTeQWp1d0nS8 Content-Type: text/plain; charset=UTF-8; name="0001-lavc-aarch64-new-optimization-for-8-bit-hevc_epel_v.patch" Content-Disposition: attachment; filename*0="0001-lavc-aarch64-new-optimization-for-8-bit-hevc_epel_v.pat"; filename*1="ch" Content-Transfer-Encoding: base64 RnJvbSBkZmFhZGRmOTdiODY4MTdiYzdhZGI1MGZkZjBkMjk2MzRiMzY1YmIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBMb2dhbiBMeXUgPExvZ2FuLkx5dUBteWFpcy5jb20u Y24+CkRhdGU6IFNhdCwgOSBTZXAgMjAyMyAxNjo1MDoyOSArMDgwMApTdWJqZWN0OiBbUEFU Q0ggMS80XSBsYXZjL2FhcmNoNjQ6IG5ldyBvcHRpbWl6YXRpb24gZm9yIDgtYml0IGhldmNf ZXBlbF92CgpjaGVja2FzbSBiZW5jaDoKcHV0X2hldmNfZXBlbF92NF84X2M6IDc5LjkKcHV0 X2hldmNfZXBlbF92NF84X25lb246IDI1LjcKcHV0X2hldmNfZXBlbF92Nl84X2M6IDE1MS40 CnB1dF9oZXZjX2VwZWxfdjZfOF9uZW9uOiA0Ni40CnB1dF9oZXZjX2VwZWxfdjhfOF9jOiAy NTAuOQpwdXRfaGV2Y19lcGVsX3Y4XzhfbmVvbjogNDEuNwpwdXRfaGV2Y19lcGVsX3YxMl84 X2M6IDU0Mi43CnB1dF9oZXZjX2VwZWxfdjEyXzhfbmVvbjogMTA4LjcKcHV0X2hldmNfZXBl bF92MTZfOF9jOiA5MzkuNApwdXRfaGV2Y19lcGVsX3YxNl84X25lb246IDE2OS4yCnB1dF9o ZXZjX2VwZWxfdjI0XzhfYzogMjEwNC45CnB1dF9oZXZjX2VwZWxfdjI0XzhfbmVvbjogMzA3 LjkKcHV0X2hldmNfZXBlbF92MzJfOF9jOiAzNzEzLjkKcHV0X2hldmNfZXBlbF92MzJfOF9u ZW9uOiA1MjQuMgpwdXRfaGV2Y19lcGVsX3Y0OF84X2M6IDgxNzUuMgpwdXRfaGV2Y19lcGVs X3Y0OF84X25lb246IDExOTcuMgpwdXRfaGV2Y19lcGVsX3Y2NF84X2M6IDE2MDQ5LjQKcHV0 X2hldmNfZXBlbF92NjRfOF9uZW9uOiAyMDk0LjkKCkNvLUF1dGhvcmVkLUJ5OiBKLiBEZWtr ZXIgPGpkZWtAaXRhbmltdWwubGk+Ci0tLQogbGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3Bf ZXBlbF9uZW9uLlMgICAgfCAyMjMgKysrKysrKysrKysrKysrKysrKysrKwogbGliYXZjb2Rl Yy9hYXJjaDY0L2hldmNkc3BfaW5pdF9hYXJjaDY0LmMgfCAgIDUgKwogMiBmaWxlcyBjaGFu Z2VkLCAyMjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvYWFyY2g2 NC9oZXZjZHNwX2VwZWxfbmVvbi5TIGIvbGliYXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfZXBl bF9uZW9uLlMKaW5kZXggYjRjYTFlNGMyMC4uZTU0MWRiNTQzMCAxMDA2NDQKLS0tIGEvbGli YXZjb2RlYy9hYXJjaDY0L2hldmNkc3BfZXBlbF9uZW9uLlMKKysrIGIvbGliYXZjb2RlYy9h YXJjaDY0L2hldmNkc3BfZXBlbF9uZW9uLlMKQEAgLTI0Myw2ICsyNDMsMjI5IEBAIGZ1bmN0 aW9uIGZmX2hldmNfcHV0X2hldmNfcGVsX3BpeGVsczY0XzhfbmVvbiwgZXhwb3J0PTEKICAg ICAgICAgcmV0CiBlbmRmdW5jCiAKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19lcGVs X3Y0XzhfbmVvbiwgZXhwb3J0PTEKKyAgICAgICAgbG9hZF9lcGVsX2ZpbHRlcmIgeDUsIHg0 CisgICAgICAgIHN1YiAgICAgICAgICAgICB4MSwgeDEsIHgyCisgICAgICAgIG1vdiAgICAg ICAgICAgICB4MTAsICMoTUFYX1BCX1NJWkUgKiAyKQorICAgICAgICBsZHIgICAgICAgICAg ICAgczE2LCBbeDFdCisgICAgICAgIGxkciAgICAgICAgICAgICBzMTcsIFt4MSAseDJdCisg ICAgICAgIGFkZCAgICAgICAgICAgICB4MSwgeDEsIHgyLCBsc2wgIzEKKyAgICAgICAgbGQx ICAgICAgICAgICAgIHt2MTguc31bMF0sIFt4MV0sIHgyCisubWFjcm8gY2FsYyBzcmMwLCBz cmMxLCBzcmMyLCBzcmMzCisgICAgICAgIGxkMSAgICAgICAgICAgICB7XHNyYzNcKCkuc31b MF0sIFt4MV0sIHgyCisgICAgICAgIG1vdmkgICAgICAgICAgICB2NC44aCwgIzAKKyAgICAg ICAgY2FsY19lcGVsYiAgICAgIHY0LCBcc3JjMCwgXHNyYzEsIFxzcmMyLCBcc3JjMworICAg ICAgICBzdWJzICAgICAgICAgICAgdzMsIHczLCAjMQorICAgICAgICBzdDEgICAgICAgICAg ICAge3Y0LjRofSwgW3gwXSwgeDEwCisuZW5kbQorMTogICAgICBjYWxjX2FsbDQKKy5wdXJn ZW0gY2FsYworMjogICAgICByZXQKK2VuZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRf aGV2Y19lcGVsX3Y2XzhfbmVvbiwgZXhwb3J0PTEKKyAgICAgICAgbG9hZF9lcGVsX2ZpbHRl cmIgeDUsIHg0CisgICAgICAgIHN1YiAgICAgICAgICAgICB4MSwgeDEsIHgyCisgICAgICAg IG1vdiAgICAgICAgICAgICB4MTAsICMoTUFYX1BCX1NJWkUgKiAyIC0gOCkKKyAgICAgICAg bGRyICAgICAgICAgICAgIGQxNiwgW3gxXQorICAgICAgICBsZHIgICAgICAgICAgICAgZDE3 LCBbeDEsIHgyXQorICAgICAgICBhZGQgICAgICAgICAgICAgeDEsIHgxLCB4MiwgbHNsICMx CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE4LjhifSwgW3gxXSwgeDIKKy5tYWNybyBj YWxjIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMKKyAgICAgICAgbGQxICAgICAgICAgICAgIHtc c3JjM1woKS44Yn0sIFt4MV0sIHgyCisgICAgICAgIG1vdmkgICAgICAgICAgICB2NC44aCwg IzAKKyAgICAgICAgY2FsY19lcGVsYiAgICAgIHY0LCBcc3JjMCwgXHNyYzEsIFxzcmMyLCBc c3JjMworICAgICAgICBzdDEgICAgICAgICAgICAge3Y0LmR9WzBdLCBbeDBdLCAjOAorICAg ICAgICBzdWJzICAgICAgICAgICAgdzMsIHczLCAjMQorICAgICAgICBzdDEgICAgICAgICAg ICAge3Y0LnN9WzJdLCBbeDBdLCB4MTAKKy5lbmRtCisxOiAgICAgIGNhbGNfYWxsNAorLnB1 cmdlbSBjYWxjCisyOiAgICAgIHJldAorZW5kZnVuYworCitmdW5jdGlvbiBmZl9oZXZjX3B1 dF9oZXZjX2VwZWxfdjhfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBsb2FkX2VwZWxfZmls dGVyYiB4NSwgeDQKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MSwgeDIKKyAgICAg ICAgbW92ICAgICAgICAgICAgIHgxMCwgIyhNQVhfUEJfU0laRSAqIDIpCisgICAgICAgIGxk ciAgICAgICAgICAgICBkMTYsIFt4MV0KKyAgICAgICAgbGRyICAgICAgICAgICAgIGQxNywg W3gxLCB4Ml0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxLCB4MSwgeDIsIGxzbCAjMQor ICAgICAgICBsZDEgICAgICAgICAgICAge3YxOC44Yn0sIFt4MV0sIHgyCisubWFjcm8gY2Fs YyBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzCisgICAgICAgIGxkMSAgICAgICAgICAgICB7XHNy YzNcKCkuOGJ9LCBbeDFdLCB4MgorICAgICAgICBtb3ZpICAgICAgICAgICAgdjQuOGgsICMw CisgICAgICAgIGNhbGNfZXBlbGIgICAgICB2NCwgXHNyYzAsIFxzcmMxLCBcc3JjMiwgXHNy YzMKKyAgICAgICAgc3VicyAgICAgICAgICAgIHczLCB3MywgIzEKKyAgICAgICAgc3QxICAg ICAgICAgICAgIHt2NC44aH0sIFt4MF0sIHgxMAorLmVuZG0KKzE6ICAgICAgY2FsY19hbGw0 CisucHVyZ2VtIGNhbGMKKzI6ICAgICAgcmV0CitlbmRmdW5jCisKK2Z1bmN0aW9uIGZmX2hl dmNfcHV0X2hldmNfZXBlbF92MTJfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBsb2FkX2Vw ZWxfZmlsdGVyYiB4NSwgeDQKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MSwgeDIK KyAgICAgICAgbW92ICAgICAgICAgICAgIHgxMCwgIyhNQVhfUEJfU0laRSAqIDIpCisgICAg ICAgIGxkciAgICAgICAgICAgICBxMTYsIFt4MV0KKyAgICAgICAgbGRyICAgICAgICAgICAg IHExNywgW3gxLCB4Ml0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxLCB4MSwgeDIsIGxz bCAjMQorICAgICAgICBsZDEgICAgICAgICAgICAge3YxOC4xNmJ9LCBbeDFdLCB4MgorLm1h Y3JvIGNhbGMgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMworICAgICAgICBsZDEgICAgICAgICAg ICAge1xzcmMzXCgpLjE2Yn0sIFt4MV0sIHgyCisgICAgICAgIG1vdmkgICAgICAgICAgICB2 NC44aCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHY1LjhoLCAjMAorICAgICAgICBj YWxjX2VwZWxiICAgICAgdjQsIFxzcmMwLCBcc3JjMSwgXHNyYzIsIFxzcmMzCisgICAgICAg IGNhbGNfZXBlbGIyICAgICB2NSwgXHNyYzAsIFxzcmMxLCBcc3JjMiwgXHNyYzMKKyAgICAg ICAgc3RyICAgICAgICAgICAgIHE0LCBbeDBdCisgICAgICAgIHN1YnMgICAgICAgICAgICB3 MywgdzMsICMxCisgICAgICAgIHN0ciAgICAgICAgICAgICBkNSwgW3gwLCAjMTZdCisgICAg ICAgIGFkZCAgICAgICAgICAgICB4MCwgeDAsIHgxMAorLmVuZG0KKzE6ICAgICAgY2FsY19h bGw0CisucHVyZ2VtIGNhbGMKKzI6ICAgICAgcmV0CitlbmRmdW5jCisKK2Z1bmN0aW9uIGZm X2hldmNfcHV0X2hldmNfZXBlbF92MTZfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBsb2Fk X2VwZWxfZmlsdGVyYiB4NSwgeDQKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MSwg eDIKKyAgICAgICAgbW92ICAgICAgICAgICAgIHgxMCwgIyhNQVhfUEJfU0laRSAqIDIpCisg ICAgICAgIGxkciAgICAgICAgICAgICBxMTYsIFt4MV0KKyAgICAgICAgbGRyICAgICAgICAg ICAgIHExNywgW3gxLCB4Ml0KKyAgICAgICAgYWRkICAgICAgICAgICAgIHgxLCB4MSwgeDIs IGxzbCAjMQorICAgICAgICBsZDEgICAgICAgICAgICAge3YxOC4xNmJ9LCBbeDFdLCB4Mgor Lm1hY3JvIGNhbGMgc3JjMCwgc3JjMSwgc3JjMiwgc3JjMworICAgICAgICBsZDEgICAgICAg ICAgICB7XHNyYzNcKCkuMTZifSwgW3gxXSwgeDIKKyAgICAgICAgbW92aSAgICAgICAgICAg IHY0LjhoLCAjMAorICAgICAgICBtb3ZpICAgICAgICAgICAgdjUuOGgsICMwCisgICAgICAg IGNhbGNfZXBlbGIgICAgICB2NCwgXHNyYzAsIFxzcmMxLCBcc3JjMiwgXHNyYzMKKyAgICAg ICAgY2FsY19lcGVsYjIgICAgIHY1LCBcc3JjMCwgXHNyYzEsIFxzcmMyLCBcc3JjMworICAg ICAgICBzdWJzICAgICAgICAgICAgdzMsIHczLCAjMQorICAgICAgICBzdDEgICAgICAgICAg ICAge3Y0LjhoLCB2NS44aH0sIFt4MF0sIHgxMAorLmVuZG0KKzE6ICAgICAgY2FsY19hbGw0 CisucHVyZ2VtIGNhbGMKKzI6ICAgICAgcmV0CitlbmRmdW5jCisKK2Z1bmN0aW9uIGZmX2hl dmNfcHV0X2hldmNfZXBlbF92MjRfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBsb2FkX2Vw ZWxfZmlsdGVyYiB4NSwgeDQKKyAgICAgICAgc3ViICAgICAgICAgICAgIHgxLCB4MSwgeDIK KyAgICAgICAgbW92ICAgICAgICAgICAgIHgxMCwgIyhNQVhfUEJfU0laRSAqIDIpCisgICAg ICAgIGxkMSAgICAgICAgICAgICB7djE2LjhiLCB2MTcuOGIsIHYxOC44Yn0sIFt4MV0sIHgy CisgICAgICAgIGxkMSAgICAgICAgICAgICB7djE5LjhiLCB2MjAuOGIsIHYyMS44Yn0sIFt4 MV0sIHgyCisgICAgICAgIGxkMSAgICAgICAgICAgICB7djIyLjhiLCB2MjMuOGIsIHYyNC44 Yn0sIFt4MV0sIHgyCisubWFjcm8gY2FsYyBzcmMwLCBzcmMxLCBzcmMyLCBzcmMzLCBzcmM0 LCBzcmM1LCBzcmM2LCBzcmM3LCBzcmM4LCBzcmM5LCBzcmMxMCwgc3JjMTEKKyAgICAgICAg bGQxICAgICAgICAgICAgIHtcc3JjOVwoKS44YiwgXHNyYzEwXCgpLjhiLCBcc3JjMTFcKCku OGJ9LCBbeDFdLCB4MgorICAgICAgICBtb3ZpICAgICAgICAgICAgdjQuOGgsICMwCisgICAg ICAgIG1vdmkgICAgICAgICAgICB2NS44aCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAg IHY2LjhoLCAjMAorICAgICAgICBjYWxjX2VwZWxiICAgICAgdjQsIFxzcmMwLCBcc3JjMywg XHNyYzYsIFxzcmM5CisgICAgICAgIGNhbGNfZXBlbGIgICAgICB2NSwgXHNyYzEsIFxzcmM0 LCBcc3JjNywgXHNyYzEwCisgICAgICAgIGNhbGNfZXBlbGIgICAgICB2NiwgXHNyYzIsIFxz cmM1LCBcc3JjOCwgXHNyYzExCisgICAgICAgIHN1YnMgICAgICAgICAgICB3MywgdzMsICMx CisgICAgICAgIHN0MSAgICAgICAgICAgICB7djQuOGgtdjYuOGh9LCBbeDBdLCB4MTAKKy5l bmRtCisxOiAgICAgIGNhbGNfYWxsMTIKKy5wdXJnZW0gY2FsYworMjogICAgICByZXQKK2Vu ZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19lcGVsX3YzMl84X25lb24sIGV4 cG9ydD0xCisgICAgICAgIGxvYWRfZXBlbF9maWx0ZXJiIHg1LCB4NAorICAgICAgICBzdWIg ICAgICAgICAgICAgeDEsIHgxLCB4MgorICAgICAgICBtb3YgICAgICAgICAgICAgeDEwLCAj KE1BWF9QQl9TSVpFICogMikKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTYuMTZiLCB2 MTcuMTZifSwgW3gxXSwgeDIKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTguMTZiLCB2 MTkuMTZifSwgW3gxXSwgeDIKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MjAuMTZiLCB2 MjEuMTZifSwgW3gxXSwgeDIKKy5tYWNybyBjYWxjIHNyYzAsIHNyYzEsIHNyYzIsIHNyYzMs IHNyYzQsIHNyYzUsIHNyYzYsIHNyYzcKKyAgICAgICAgbGQxICAgICAgICAgICAgIHtcc3Jj NlwoKS4xNmIsIFxzcmM3XCgpLjE2Yn0sIFt4MV0sIHgyCisgICAgICAgIG1vdmkgICAgICAg ICAgICB2NC44aCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHY1LjhoLCAjMAorICAg ICAgICBtb3ZpICAgICAgICAgICAgdjYuOGgsICMwCisgICAgICAgIG1vdmkgICAgICAgICAg ICB2Ny44aCwgIzAKKyAgICAgICAgY2FsY19lcGVsYiAgICAgIHY0LCBcc3JjMCwgXHNyYzIs IFxzcmM0LCBcc3JjNgorICAgICAgICBjYWxjX2VwZWxiMiAgICAgdjUsIFxzcmMwLCBcc3Jj MiwgXHNyYzQsIFxzcmM2CisgICAgICAgIGNhbGNfZXBlbGIgICAgICB2NiwgXHNyYzEsIFxz cmMzLCBcc3JjNSwgXHNyYzcKKyAgICAgICAgY2FsY19lcGVsYjIgICAgIHY3LCBcc3JjMSwg XHNyYzMsIFxzcmM1LCBcc3JjNworICAgICAgICBzdWJzICAgICAgICAgICAgdzMsIHczLCAj MQorICAgICAgICBzdDEgICAgICAgICAgICAge3Y0LjhoLXY3LjhofSwgW3gwXSwgeDEwCisu ZW5kbQorMTogICAgICBjYWxjX2FsbDgKKy5wdXJnZW0gY2FsYworMjogICAgICByZXQKK2Vu ZGZ1bmMKKworZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19lcGVsX3Y0OF84X25lb24sIGV4 cG9ydD0xCisgICAgICAgIGxvYWRfZXBlbF9maWx0ZXJiIHg1LCB4NAorICAgICAgICBzdWIg ICAgICAgICAgICAgeDEsIHgxLCB4MgorICAgICAgICBtb3YgICAgICAgICAgICAgeDEwLCAj NjQKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTYuMTZiLCB2MTcuMTZiLCB2MTguMTZi fSwgW3gxXSwgeDIKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MTkuMTZiLCB2MjAuMTZi LCB2MjEuMTZifSwgW3gxXSwgeDIKKyAgICAgICAgbGQxICAgICAgICAgICAgIHt2MjIuMTZi LCB2MjMuMTZiLCB2MjQuMTZifSwgW3gxXSwgeDIKKy5tYWNybyBjYWxjIHNyYzAsIHNyYzEs IHNyYzIsIHNyYzMsIHNyYzQsIHNyYzUsIHNyYzYsIHNyYzcsIHNyYzgsIHNyYzksIHNyYzEw LCBzcmMxMQorICAgICAgICBsZDEgICAgICAgICAgICAge1xzcmM5XCgpLjE2YiwgXHNyYzEw XCgpLjE2YiwgXHNyYzExXCgpLjE2Yn0sIFt4MV0sIHgyCisgICAgICAgIG1vdmkgICAgICAg ICAgICB2NC44aCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHY1LjhoLCAjMAorICAg ICAgICBtb3ZpICAgICAgICAgICAgdjYuOGgsICMwCisgICAgICAgIG1vdmkgICAgICAgICAg ICB2Ny44aCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHYyOC44aCwgIzAKKyAgICAg ICAgbW92aSAgICAgICAgICAgIHYyOS44aCwgIzAKKyAgICAgICAgY2FsY19lcGVsYiAgICAg IHY0LCAgXHNyYzAsIFxzcmMzLCBcc3JjNiwgXHNyYzkKKyAgICAgICAgY2FsY19lcGVsYjIg ICAgIHY1LCAgXHNyYzAsIFxzcmMzLCBcc3JjNiwgXHNyYzkKKyAgICAgICAgY2FsY19lcGVs YiAgICAgIHY2LCAgXHNyYzEsIFxzcmM0LCBcc3JjNywgXHNyYzEwCisgICAgICAgIGNhbGNf ZXBlbGIyICAgICB2NywgIFxzcmMxLCBcc3JjNCwgXHNyYzcsIFxzcmMxMAorICAgICAgICBj YWxjX2VwZWxiICAgICAgdjI4LCBcc3JjMiwgXHNyYzUsIFxzcmM4LCBcc3JjMTEKKyAgICAg ICAgY2FsY19lcGVsYjIgICAgIHYyOSwgXHNyYzIsIFxzcmM1LCBcc3JjOCwgXHNyYzExCisg ICAgICAgIHN0MSAgICAgICAgICAgICB7djQuOGgtdjcuOGh9LCBbeDBdLCAjNjQKKyAgICAg ICAgc3VicyAgICAgICAgICAgIHczLCB3MywgIzEKKyAgICAgICAgc3QxICAgICAgICAgICAg IHt2MjguOGgtdjI5LjhofSwgW3gwXSwgeDEwCisuZW5kbQorMTogICAgICBjYWxjX2FsbDEy CisucHVyZ2VtIGNhbGMKKzI6ICAgICAgcmV0CitlbmRmdW5jCisKK2Z1bmN0aW9uIGZmX2hl dmNfcHV0X2hldmNfZXBlbF92NjRfOF9uZW9uLCBleHBvcnQ9MQorICAgICAgICBsb2FkX2Vw ZWxfZmlsdGVyYiB4NSwgeDQKKyAgICAgICAgc3ViICAgICAgICAgICAgIHNwLCBzcCwgIzMy CisgICAgICAgIHN0MSAgICAgICAgICAgICB7djguOGItdjExLjhifSwgW3NwXQorICAgICAg ICBzdWIgICAgICAgICAgICAgeDEsIHgxLCB4MgorICAgICAgICBsZDEgICAgICAgICAgICAg e3YxNi4xNmIsIHYxNy4xNmIsIHYxOC4xNmIsIHYxOS4xNmJ9LCBbeDFdLCB4MgorICAgICAg ICBsZDEgICAgICAgICAgICAge3YyMC4xNmIsIHYyMS4xNmIsIHYyMi4xNmIsIHYyMy4xNmJ9 LCBbeDFdLCB4MgorICAgICAgICBsZDEgICAgICAgICAgICAge3YyNC4xNmIsIHYyNS4xNmIs IHYyNi4xNmIsIHYyNy4xNmJ9LCBbeDFdLCB4MgorLm1hY3JvIGNhbGMgc3JjMCwgc3JjMSwg c3JjMiwgc3JjMywgc3JjNCwgc3JjNSwgc3JjNiwgc3JjNywgc3JjOCwgc3JjOSwgc3JjMTAs IHNyYzExLCBzcmMxMiwgc3JjMTMsIHNyYzE0LCBzcmMxNQorICAgICAgICBsZDEgICAgICAg ICAgICAge1xzcmMxMlwoKS4xNmItXHNyYzE1XCgpLjE2Yn0sIFt4MV0sIHgyCisgICAgICAg IG1vdmkgICAgICAgICAgICB2NC44aCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHY1 LjhoLCAjMAorICAgICAgICBtb3ZpICAgICAgICAgICAgdjYuOGgsICMwCisgICAgICAgIG1v dmkgICAgICAgICAgICB2Ny44aCwgIzAKKyAgICAgICAgbW92aSAgICAgICAgICAgIHY4Ljho LCAjMAorICAgICAgICBtb3ZpICAgICAgICAgICAgdjkuOGgsICMwCisgICAgICAgIG1vdmkg ICAgICAgICAgICB2MTAuOGgsICMwCisgICAgICAgIG1vdmkgICAgICAgICAgICB2MTEuOGgs ICMwCisgICAgICAgIGNhbGNfZXBlbGIgICAgICB2NCwgIFxzcmMwLCBcc3JjNCwgXHNyYzgs ICBcc3JjMTIKKyAgICAgICAgY2FsY19lcGVsYjIgICAgIHY1LCAgXHNyYzAsIFxzcmM0LCBc c3JjOCwgIFxzcmMxMgorICAgICAgICBjYWxjX2VwZWxiICAgICAgdjYsICBcc3JjMSwgXHNy YzUsIFxzcmM5LCAgXHNyYzEzCisgICAgICAgIGNhbGNfZXBlbGIyICAgICB2NywgIFxzcmMx LCBcc3JjNSwgXHNyYzksICBcc3JjMTMKKyAgICAgICAgY2FsY19lcGVsYiAgICAgIHY4LCAg XHNyYzIsIFxzcmM2LCBcc3JjMTAsIFxzcmMxNAorICAgICAgICBjYWxjX2VwZWxiMiAgICAg djksICBcc3JjMiwgXHNyYzYsIFxzcmMxMCwgXHNyYzE0CisgICAgICAgIGNhbGNfZXBlbGIg ICAgICB2MTAsIFxzcmMzLCBcc3JjNywgXHNyYzExLCBcc3JjMTUKKyAgICAgICAgY2FsY19l cGVsYjIgICAgIHYxMSwgXHNyYzMsIFxzcmM3LCBcc3JjMTEsIFxzcmMxNQorICAgICAgICBz dDEgICAgICAgICAgICAge3Y0LjhoLXY3LjhofSwgW3gwXSwgIzY0CisgICAgICAgIHN1YnMg ICAgICAgICAgICB3MywgdzMsICMxCisgICAgICAgIHN0MSAgICAgICAgICAgICB7djguOGgt djExLjhofSwgW3gwXSwgIzY0CisuZW5kbQorMTogICAgICBjYWxjX2FsbDE2CisucHVyZ2Vt IGNhbGMKKzI6ICAgICAJbGQxICAgICAgICAgICAgIHt2OC44Yi12MTEuOGJ9LCBbc3BdCisg ICAgICAgIGFkZCAgICAgICAgICAgICBzcCwgc3AsICMzMgorICAgICAgICByZXQKK2VuZGZ1 bmMKKwogZnVuY3Rpb24gZmZfaGV2Y19wdXRfaGV2Y19lcGVsX3VuaV92NF84X25lb24sIGV4 cG9ydD0xCiAgICAgICAgIGxvYWRfZXBlbF9maWx0ZXJiIHg2LCB4NQogICAgICAgICBzdWIg ICAgICAgICAgICAgeDIsIHgyLCB4MwpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9hYXJjaDY0 L2hldmNkc3BfaW5pdF9hYXJjaDY0LmMgYi9saWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9p bml0X2FhcmNoNjQuYwppbmRleCA0YzM3N2E3OTQwLi44MmUxNjIzYTY3IDEwMDY0NAotLS0g YS9saWJhdmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9pbml0X2FhcmNoNjQuYworKysgYi9saWJh dmNvZGVjL2FhcmNoNjQvaGV2Y2RzcF9pbml0X2FhcmNoNjQuYwpAQCAtMTU2LDYgKzE1Niwx MCBAQCBORU9OOF9GTlBST1RPKHBlbF9waXhlbHMsIChpbnQxNl90ICpkc3QsCiAgICAgICAg IGNvbnN0IHVpbnQ4X3QgKnNyYywgcHRyZGlmZl90IHNyY3N0cmlkZSwKICAgICAgICAgaW50 IGhlaWdodCwgaW50cHRyX3QgbXgsIGludHB0cl90IG15LCBpbnQgd2lkdGgpLCk7CiAKK05F T044X0ZOUFJPVE8oZXBlbF92LCAoaW50MTZfdCAqZHN0LAorICAgICAgICBjb25zdCB1aW50 OF90ICpzcmMsIHB0cmRpZmZfdCBzcmNzdHJpZGUsCisgICAgICAgIGludCBoZWlnaHQsIGlu dHB0cl90IG14LCBpbnRwdHJfdCBteSwgaW50IHdpZHRoKSwpOworCiBORU9OOF9GTlBST1RP KHBlbF91bmlfcGl4ZWxzLCAodWludDhfdCAqX2RzdCwgcHRyZGlmZl90IF9kc3RzdHJpZGUs CiAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKl9zcmMsIHB0cmRpZmZfdCBfc3Jjc3RyaWRlLAog ICAgICAgICBpbnQgaGVpZ2h0LCBpbnRwdHJfdCBteCwgaW50cHRyX3QgbXksIGludCB3aWR0 aCksKTsKQEAgLTMwNSw2ICszMDksNyBAQCBhdl9jb2xkIHZvaWQgZmZfaGV2Y19kc3BfaW5p dF9hYXJjaDY0KEhFVkNEU1BDb250ZXh0ICpjLCBjb25zdCBpbnQgYml0X2RlcHRoKQogICAg ICAgICBjLT5wdXRfaGV2Y19xcGVsX2JpWzldWzBdWzFdICAgPSBmZl9oZXZjX3B1dF9oZXZj X3FwZWxfYmlfaDE2XzhfbmVvbjsKIAogICAgICAgICBORU9OOF9GTkFTU0lHTihjLT5wdXRf aGV2Y19lcGVsLCAwLCAwLCBwZWxfcGl4ZWxzLCk7CisgICAgICAgIE5FT044X0ZOQVNTSUdO KGMtPnB1dF9oZXZjX2VwZWwsIDEsIDAsIGVwZWxfdiwpOwogICAgICAgICBORU9OOF9GTkFT U0lHTihjLT5wdXRfaGV2Y19xcGVsLCAwLCAwLCBwZWxfcGl4ZWxzLCk7CiAgICAgICAgIE5F T044X0ZOQVNTSUdOKGMtPnB1dF9oZXZjX2VwZWxfdW5pLCAwLCAwLCBwZWxfdW5pX3BpeGVs cywpOwogICAgICAgICBORU9OOF9GTkFTU0lHTihjLT5wdXRfaGV2Y19lcGVsX3VuaSwgMSwg MCwgZXBlbF91bmlfdiwpOwotLSAKMi4zOC4wLndpbmRvd3MuMQoK --------------05zAwXICLrSPjTeQWp1d0nS8 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". --------------05zAwXICLrSPjTeQWp1d0nS8--