From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 755F04DE92 for ; Tue, 6 Jan 2026 16:16:50 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'3KuMpFrUS9OF1GurO5Wq+SbY9FywleOUvYyQeH5ddac=', expected b'AZv1iQS5fax4xHU9QXiEF4xTrSuN2Dh6YtaMEi83dWo=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1767716192; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=3KuMpFrUS9OF1GurO5Wq+SbY9FywleOUvYyQeH5ddac=; b=hFw1oRnVJzYqBwdgqdUhHUEn31vRwuB6MDuXEleY6BeWfB+7ZPlq11EIQg2Es9YW8sS66 Ecml6DUSNmLafO28XDuVdu6LaUFgRjZmyDlHEHvZz9T9H7VTlryuXd5C9j38TZ+a7zfHfCM 4cT4qAwVlnZR+BzSOF9Bfcs8i849QxqIYPrqPn3PI7KAADVda3PMd571c3Kes8e9mJnkM/9 xS7pcafwXg2eSe07luquKWNV9W1Sor+EQw+ne8lqrNKF0G8R8afOKQZxfU0LZ0qiZ2pl7wk pfVrI2RQG4amStrzVXmXw5RgjoFE7fXwSMJGk+DgbxI8JEctm2gXLLHmFbnA== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 9C913690D7E; Tue, 6 Jan 2026 18:16:32 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1767716179; b=HLDcC7OssJb8+dRZRMmq9r40nw9/m86XZnDR4+n/GriX+MLLHwH87cZgnnuv8DltjO0fG 2QfRw58AXfeaM5oO8V8q19qIoeXr2uXopkmTK+dP1rxY15PYLPIC3yLqHl2AuIRtnaVo5Ly l+AadF/Zy8WtfDw7mBDuQT2ZpH1TOa3mUxl28Xjii39tvarfIiMhciApGNvhIZWq2Vriep0 E/DVKGwDkjCzLxdwphHxkkygQdOFr0eCjKmNfwaO0QrcKQOlFUsI9lTLptWala+EnUsgESp iB70Q97JRHlmTBPFwUyMyD+Efn7bob9nPaUB04cWS9IM8IvtCRaD3FCnTNtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1767716179; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=0L/nFFQWkWRl2w3yKSYWTtaELxkjgjZPRreKvxPSxCA=; b=toGqSbqMVg5SwIj7YdZMvUN6wafC5TII1ImHBtpfRzIHXiBRY8DXD1KfScdufVWI/s0hL zMK2Fn/PH9Jbq7W8He3VKd5wrefx2+D9oci5bPlQM0NT4S/Lsk0aHcoHZhmZUe4npP7etyT n+mF21JlOLRWKPg13SssEvIareJMuP7v/BtgiGPXZ2mGfkIphBwg00LlOW2qVuyKh4fuSPy 3xHGJjovo4rZbK3bzdYOlPTJsprEqIvDn5WqMihtS7iaZs8GLGCTiz6oS0hoo1pU/kyeZlN f8cKGjxeC6Gp6M3olvl6XZtL00CJ8GI4MqwlY2xQ4CH/uNsr8NKY4O3H38gQ== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1767716171; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=AZv1iQS5fax4xHU9QXiEF4xTrSuN2Dh6YtaMEi83dWo=; b=w5+LFjHliIqfrUDsRyuWa2LixmHY6bHm14TWvOLsY2FcEsEFCRMorf9YOLFEGMw7sDf+/ AYrT/axmnrzO5rdFntP4VLHYMIjidBVRkgK+meUWmGk4YTlNvCUN7pSvXq3lH1xhw4btspX GjI3RIN2+YmizHyxo/jqSwDlFZgMPkSsrxCM6E+bc/Z3UFqWI0HDeGz//KmzN2td3RkEwMP iXr91+oohFQfekDDR8HUrzjX9n0hS4rBvLR0jKypAPPAT4UkRO+HkZ2QwvOsS6X6rWwvt2u mn23XXGMkRESEQyN3Bo9O/ZVwUoehASUUp6L+tE7XrP7JUp2zelvP4kXSs+Q== Received: from de3a2b3407a2 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id B5F2268FE52 for ; Tue, 6 Jan 2026 18:16:11 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Tue, 06 Jan 2026 16:16:11 -0000 Message-ID: <176771617194.25.15476264839758952819@4457048688e7> Message-ID-Hash: TW5PWQHZEFZ3EO7SRY7PRIWWDKNXZX36 X-Message-ID-Hash: TW5PWQHZEFZ3EO7SRY7PRIWWDKNXZX36 X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] avcodec/pngdec: Move ff_add_png_paeth_prediction() to pngdsp.c (PR #21397) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: mkver via ffmpeg-devel Cc: mkver Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21397 opened by mkver URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21397 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21397.patch >>From b6aa27da24bea6fd35674975386e6a8da343f1bf Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 6 Jan 2026 16:37:39 +0100 Subject: [PATCH 1/4] avcodec/pngdec: Move ff_add_png_paeth_prediction() to pngdsp.c Also rename it to ff_png_add_paeth_prediction() so that it has a proper prefix. Signed-off-by: Andreas Rheinhardt --- libavcodec/png.h | 2 -- libavcodec/pngdec.c | 28 ---------------------------- libavcodec/pngdsp.c | 28 +++++++++++++++++++++++++++- libavcodec/pngdsp.h | 6 ++++++ 4 files changed, 33 insertions(+), 31 deletions(-) diff --git a/libavcodec/png.h b/libavcodec/png.h index 01171e682e..903f217aed 100644 --- a/libavcodec/png.h +++ b/libavcodec/png.h @@ -57,8 +57,6 @@ int ff_png_get_nb_channels(int color_type); /* compute the row size of an interleaved pass */ int ff_png_pass_row_size(int pass, int bits_per_pixel, int width); -void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp); - void ff_png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type, uint8_t *src, uint8_t *last, int size, int bpp); diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index fff27305d5..3651da265f 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -218,34 +218,6 @@ static void png_put_interlaced_row(uint8_t *dst, int width, } } -void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, - int w, int bpp) -{ - int i; - for (i = 0; i < w; i++) { - int a, b, c, p, pa, pb, pc; - - a = dst[i - bpp]; - b = top[i]; - c = top[i - bpp]; - - p = b - c; - pc = a - c; - - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); - - if (pa <= pb && pa <= pc) - p = a; - else if (pb <= pc) - p = b; - else - p = c; - dst[i] = p + src[i]; - } -} - #define UNROLL1(bpp, op) \ { \ r = dst[0]; \ diff --git a/libavcodec/pngdsp.c b/libavcodec/pngdsp.c index ae40113a51..fa22bfcb07 100644 --- a/libavcodec/pngdsp.c +++ b/libavcodec/pngdsp.c @@ -23,7 +23,6 @@ #include "libavutil/attributes.h" #include "libavutil/intreadwrite.h" #include "libavutil/macros.h" -#include "png.h" #include "pngdsp.h" #if HAVE_FAST_64BIT @@ -53,6 +52,33 @@ static void add_bytes_l2_c(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w) dst[i] = src1[i] + src2[i]; } +void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, + int w, int bpp) +{ + for (int i = 0; i < w; ++i) { + int a, b, c, p, pa, pb, pc; + + a = dst[i - bpp]; + b = top[i]; + c = top[i - bpp]; + + p = b - c; + pc = a - c; + + pa = abs(p); + pb = abs(pc); + pc = abs(p + pc); + + if (pa <= pb && pa <= pc) + p = a; + else if (pb <= pc) + p = b; + else + p = c; + dst[i] = p + src[i]; + } +} + av_cold void ff_pngdsp_init(PNGDSPContext *dsp) { dsp->add_bytes_l2 = add_bytes_l2_c; diff --git a/libavcodec/pngdsp.h b/libavcodec/pngdsp.h index 5475d0d943..a32ffb88af 100644 --- a/libavcodec/pngdsp.h +++ b/libavcodec/pngdsp.h @@ -24,6 +24,8 @@ #include +#include "libavutil/attributes_internal.h" + typedef struct PNGDSPContext { void (*add_bytes_l2)(uint8_t *dst, uint8_t *src1 /* align 16 */, @@ -34,7 +36,11 @@ typedef struct PNGDSPContext { uint8_t *top, int w, int bpp); } PNGDSPContext; +FF_VISIBILITY_PUSH_HIDDEN +void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp); + void ff_pngdsp_init(PNGDSPContext *dsp); void ff_pngdsp_init_x86(PNGDSPContext *dsp); +FF_VISIBILITY_POP_HIDDEN #endif /* AVCODEC_PNGDSP_H */ -- 2.49.1 >>From f100eda442185ca44eb891a79ac3ad0dd5d5a16c Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 6 Jan 2026 16:55:43 +0100 Subject: [PATCH 2/4] avcodec/pngdsp: Constify Also constify ff_png_filter_row(). Signed-off-by: Andreas Rheinhardt --- libavcodec/png.h | 2 +- libavcodec/pngdec.c | 4 ++-- libavcodec/pngdsp.c | 7 ++++--- libavcodec/pngdsp.h | 11 ++++++----- libavcodec/x86/pngdsp_init.c | 12 ++++++------ 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/libavcodec/png.h b/libavcodec/png.h index 903f217aed..1e2cf11d1c 100644 --- a/libavcodec/png.h +++ b/libavcodec/png.h @@ -58,6 +58,6 @@ int ff_png_get_nb_channels(int color_type); int ff_png_pass_row_size(int pass, int bits_per_pixel, int width); void ff_png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type, - uint8_t *src, uint8_t *last, int size, int bpp); + const uint8_t *src, const uint8_t *last, int size, int bpp); #endif /* AVCODEC_PNG_H */ diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index 3651da265f..723f2aec4d 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -257,7 +257,7 @@ static void png_put_interlaced_row(uint8_t *dst, int width, /* NOTE: 'dst' can be equal to 'last' */ void ff_png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type, - uint8_t *src, uint8_t *last, int size, int bpp) + const uint8_t *src, const uint8_t *last, int size, int bpp) { int i, p, r, g, b, a; @@ -271,7 +271,7 @@ void ff_png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type, if (bpp == 4) { p = *(int *)dst; for (; i < size; i += bpp) { - unsigned s = *(int *)(src + i); + unsigned s = *(const int *)(src + i); p = ((s & 0x7f7f7f7f) + (p & 0x7f7f7f7f)) ^ ((s ^ p) & 0x80808080); *(int *)(dst + i) = p; } diff --git a/libavcodec/pngdsp.c b/libavcodec/pngdsp.c index fa22bfcb07..c5e870dd6e 100644 --- a/libavcodec/pngdsp.c +++ b/libavcodec/pngdsp.c @@ -40,7 +40,8 @@ typedef uint32_t uint_native; #define pb_7f (~(uint_native)0 / 255 * 0x7f) #define pb_80 (~(uint_native)0 / 255 * 0x80) -static void add_bytes_l2_c(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w) +static void add_bytes_l2_c(uint8_t *dst, const uint8_t *src1, + const uint8_t *src2, int w) { long i; for (i = 0; i <= w - (int) sizeof(uint_native); i += sizeof(uint_native)) { @@ -52,8 +53,8 @@ static void add_bytes_l2_c(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w) dst[i] = src1[i] + src2[i]; } -void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, - int w, int bpp) +void ff_add_png_paeth_prediction(uint8_t *dst, const uint8_t *src, + const uint8_t *top, int w, int bpp) { for (int i = 0; i < w; ++i) { int a, b, c, p, pa, pb, pc; diff --git a/libavcodec/pngdsp.h b/libavcodec/pngdsp.h index a32ffb88af..f2c4b4708f 100644 --- a/libavcodec/pngdsp.h +++ b/libavcodec/pngdsp.h @@ -28,16 +28,17 @@ typedef struct PNGDSPContext { void (*add_bytes_l2)(uint8_t *dst, - uint8_t *src1 /* align 16 */, - uint8_t *src2, int w); + const uint8_t *src1 /* align 16 */, + const uint8_t *src2, int w); /* this might write to dst[w] */ - void (*add_paeth_prediction)(uint8_t *dst, uint8_t *src, - uint8_t *top, int w, int bpp); + void (*add_paeth_prediction)(uint8_t *dst, const uint8_t *src, + const uint8_t *top, int w, int bpp); } PNGDSPContext; FF_VISIBILITY_PUSH_HIDDEN -void ff_add_png_paeth_prediction(uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp); +void ff_add_png_paeth_prediction(uint8_t *dst, const uint8_t *src, + const uint8_t *top, int w, int bpp); void ff_pngdsp_init(PNGDSPContext *dsp); void ff_pngdsp_init_x86(PNGDSPContext *dsp); diff --git a/libavcodec/x86/pngdsp_init.c b/libavcodec/x86/pngdsp_init.c index e2cd5effe3..0af58640b8 100644 --- a/libavcodec/x86/pngdsp_init.c +++ b/libavcodec/x86/pngdsp_init.c @@ -24,12 +24,12 @@ #include "libavutil/x86/cpu.h" #include "libavcodec/pngdsp.h" -void ff_add_png_paeth_prediction_mmxext(uint8_t *dst, uint8_t *src, - uint8_t *top, int w, int bpp); -void ff_add_png_paeth_prediction_ssse3(uint8_t *dst, uint8_t *src, - uint8_t *top, int w, int bpp); -void ff_add_bytes_l2_sse2(uint8_t *dst, uint8_t *src1, - uint8_t *src2, int w); +void ff_add_png_paeth_prediction_mmxext(uint8_t *dst, const uint8_t *src, + const uint8_t *top, int w, int bpp); +void ff_add_png_paeth_prediction_ssse3(uint8_t *dst, const uint8_t *src, + const uint8_t *top, int w, int bpp); +void ff_add_bytes_l2_sse2(uint8_t *dst, const uint8_t *src1, + const uint8_t *src2, int w); av_cold void ff_pngdsp_init_x86(PNGDSPContext *dsp) { -- 2.49.1 >>From 71263fdf1bb5c74dbf7d7c5f8eef70e7b6cfd205 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 6 Jan 2026 17:05:03 +0100 Subject: [PATCH 3/4] avcodec/pngdsp: Use proper prefix ff_add_png->ff_png_add Signed-off-by: Andreas Rheinhardt --- libavcodec/pngdec.c | 2 +- libavcodec/pngdsp.c | 4 ++-- libavcodec/pngdsp.h | 2 +- libavcodec/x86/pngdsp.asm | 2 +- libavcodec/x86/pngdsp_init.c | 8 ++++---- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index 723f2aec4d..042b6a5c2f 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -306,7 +306,7 @@ void ff_png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type, i = w; } } - ff_add_png_paeth_prediction(dst + i, src + i, last + i, size - i, bpp); + ff_png_add_paeth_prediction(dst + i, src + i, last + i, size - i, bpp); break; } } diff --git a/libavcodec/pngdsp.c b/libavcodec/pngdsp.c index c5e870dd6e..7f44563a2d 100644 --- a/libavcodec/pngdsp.c +++ b/libavcodec/pngdsp.c @@ -53,7 +53,7 @@ static void add_bytes_l2_c(uint8_t *dst, const uint8_t *src1, dst[i] = src1[i] + src2[i]; } -void ff_add_png_paeth_prediction(uint8_t *dst, const uint8_t *src, +void ff_png_add_paeth_prediction(uint8_t *dst, const uint8_t *src, const uint8_t *top, int w, int bpp) { for (int i = 0; i < w; ++i) { @@ -83,7 +83,7 @@ void ff_add_png_paeth_prediction(uint8_t *dst, const uint8_t *src, av_cold void ff_pngdsp_init(PNGDSPContext *dsp) { dsp->add_bytes_l2 = add_bytes_l2_c; - dsp->add_paeth_prediction = ff_add_png_paeth_prediction; + dsp->add_paeth_prediction = ff_png_add_paeth_prediction; #if ARCH_X86 && HAVE_X86ASM ff_pngdsp_init_x86(dsp); diff --git a/libavcodec/pngdsp.h b/libavcodec/pngdsp.h index f2c4b4708f..bd35431ae7 100644 --- a/libavcodec/pngdsp.h +++ b/libavcodec/pngdsp.h @@ -37,7 +37,7 @@ typedef struct PNGDSPContext { } PNGDSPContext; FF_VISIBILITY_PUSH_HIDDEN -void ff_add_png_paeth_prediction(uint8_t *dst, const uint8_t *src, +void ff_png_add_paeth_prediction(uint8_t *dst, const uint8_t *src, const uint8_t *top, int w, int bpp); void ff_pngdsp_init(PNGDSPContext *dsp); diff --git a/libavcodec/x86/pngdsp.asm b/libavcodec/x86/pngdsp.asm index 10a1fd648b..59d4ff5d5c 100644 --- a/libavcodec/x86/pngdsp.asm +++ b/libavcodec/x86/pngdsp.asm @@ -78,7 +78,7 @@ cglobal add_bytes_l2, 4, 6, 2, dst, src1, src2, wa, w, i RET %macro ADD_PAETH_PRED_FN 1 -cglobal add_png_paeth_prediction, 5, 7, %1, dst, src, top, w, bpp, end, cntr +cglobal png_add_paeth_prediction, 5, 7, %1, dst, src, top, w, bpp, end, cntr %if ARCH_X86_64 movsxd bppq, bppd movsxd wq, wd diff --git a/libavcodec/x86/pngdsp_init.c b/libavcodec/x86/pngdsp_init.c index 0af58640b8..36cd4c1d42 100644 --- a/libavcodec/x86/pngdsp_init.c +++ b/libavcodec/x86/pngdsp_init.c @@ -24,9 +24,9 @@ #include "libavutil/x86/cpu.h" #include "libavcodec/pngdsp.h" -void ff_add_png_paeth_prediction_mmxext(uint8_t *dst, const uint8_t *src, +void ff_png_add_paeth_prediction_mmxext(uint8_t *dst, const uint8_t *src, const uint8_t *top, int w, int bpp); -void ff_add_png_paeth_prediction_ssse3(uint8_t *dst, const uint8_t *src, +void ff_png_add_paeth_prediction_ssse3(uint8_t *dst, const uint8_t *src, const uint8_t *top, int w, int bpp); void ff_add_bytes_l2_sse2(uint8_t *dst, const uint8_t *src1, const uint8_t *src2, int w); @@ -36,9 +36,9 @@ av_cold void ff_pngdsp_init_x86(PNGDSPContext *dsp) int cpu_flags = av_get_cpu_flags(); if (EXTERNAL_MMXEXT(cpu_flags)) - dsp->add_paeth_prediction = ff_add_png_paeth_prediction_mmxext; + dsp->add_paeth_prediction = ff_png_add_paeth_prediction_mmxext; if (EXTERNAL_SSE2(cpu_flags)) dsp->add_bytes_l2 = ff_add_bytes_l2_sse2; if (EXTERNAL_SSSE3(cpu_flags)) - dsp->add_paeth_prediction = ff_add_png_paeth_prediction_ssse3; + dsp->add_paeth_prediction = ff_png_add_paeth_prediction_ssse3; } -- 2.49.1 >>From abe6de59585ef090af3c82f4687e0fc928e925ab Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Wed, 24 Dec 2025 13:32:09 +0100 Subject: [PATCH 4/4] avcodec/x86/pngdsp: Remove MMXEXT function overridden by SSSE3 Signed-off-by: Andreas Rheinhardt --- libavcodec/x86/pngdsp.asm | 23 ++--------------------- libavcodec/x86/pngdsp_init.c | 4 ---- 2 files changed, 2 insertions(+), 25 deletions(-) diff --git a/libavcodec/x86/pngdsp.asm b/libavcodec/x86/pngdsp.asm index 59d4ff5d5c..8ff49565d3 100644 --- a/libavcodec/x86/pngdsp.asm +++ b/libavcodec/x86/pngdsp.asm @@ -77,8 +77,8 @@ cglobal add_bytes_l2, 4, 6, 2, dst, src1, src2, wa, w, i jl .loop_s RET -%macro ADD_PAETH_PRED_FN 1 -cglobal png_add_paeth_prediction, 5, 7, %1, dst, src, top, w, bpp, end, cntr +INIT_MMX ssse3 +cglobal png_add_paeth_prediction, 5, 7, 0, dst, src, top, w, bpp, end, cntr %if ARCH_X86_64 movsxd bppq, bppd movsxd wq, wd @@ -109,21 +109,9 @@ cglobal png_add_paeth_prediction, 5, 7, %1, dst, src, top, w, bpp, end, cntr psubw m4, m0 mova m5, m3 paddw m5, m4 -%if cpuflag(ssse3) pabsw m3, m3 pabsw m4, m4 pabsw m5, m5 -%else ; !cpuflag(ssse3) - psubw m7, m5 - pmaxsw m5, m7 - pxor m6, m6 - pxor m7, m7 - psubw m6, m3 - psubw m7, m4 - pmaxsw m3, m6 - pmaxsw m4, m7 - pxor m7, m7 -%endif ; cpuflag(ssse3) mova m6, m4 pminsw m6, m5 pcmpgtw m3, m6 @@ -153,10 +141,3 @@ cglobal png_add_paeth_prediction, 5, 7, %1, dst, src, top, w, bpp, end, cntr POP dstq emms RET -%endmacro - -INIT_MMX mmxext -ADD_PAETH_PRED_FN 0 - -INIT_MMX ssse3 -ADD_PAETH_PRED_FN 0 diff --git a/libavcodec/x86/pngdsp_init.c b/libavcodec/x86/pngdsp_init.c index 36cd4c1d42..5121140dcc 100644 --- a/libavcodec/x86/pngdsp_init.c +++ b/libavcodec/x86/pngdsp_init.c @@ -24,8 +24,6 @@ #include "libavutil/x86/cpu.h" #include "libavcodec/pngdsp.h" -void ff_png_add_paeth_prediction_mmxext(uint8_t *dst, const uint8_t *src, - const uint8_t *top, int w, int bpp); void ff_png_add_paeth_prediction_ssse3(uint8_t *dst, const uint8_t *src, const uint8_t *top, int w, int bpp); void ff_add_bytes_l2_sse2(uint8_t *dst, const uint8_t *src1, @@ -35,8 +33,6 @@ av_cold void ff_pngdsp_init_x86(PNGDSPContext *dsp) { int cpu_flags = av_get_cpu_flags(); - if (EXTERNAL_MMXEXT(cpu_flags)) - dsp->add_paeth_prediction = ff_png_add_paeth_prediction_mmxext; if (EXTERNAL_SSE2(cpu_flags)) dsp->add_bytes_l2 = ff_add_bytes_l2_sse2; if (EXTERNAL_SSSE3(cpu_flags)) -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org