diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2017-04-04 12:45:51 -0400 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2017-04-06 10:03:28 -0400 |
commit | 32baeafeee4f8446c2c3720b9223ad2166ca9d30 (patch) | |
tree | b817e4d57ea80f33e1b4a9915462e4601d06bde6 /libavcodec/idctdsp.h | |
parent | e0c205677f6b3b7dba6891724cb68bfb81e9b8d6 (diff) | |
download | ffmpeg-32baeafeee4f8446c2c3720b9223ad2166ca9d30.tar.gz |
jrev/xvid: hardcode use of C put/add_pixels_clamped.
This removes the last use of the ff_put/add_pixels_clamped global
function pointers, and as such they are removed.
This patch has a negative effect on performance on MIPS, since there's
a SIMD-optimized put/add_pixels_clamped, but no xvid or jrev. From a
code maintenance point of view, that is probably acceptable.
Because the global function pointers are removed, this fixes the following
tsan warnings when running e.g. fate-dnxhr-parse:
WARNING: ThreadSanitizer: data race (pid=29917)
Write of size 8 at 0x0000025b12d8 by thread T2 (mutexes: write M1543):
#0 ff_idctdsp_init src/libavcodec/idctdsp.c:313 (ffmpeg+0x00000044b68e)
[..]
Previous write of size 8 at 0x0000025b12d8 by thread T1 (mutexes: write M1541):
#0 ff_idctdsp_init src/libavcodec/idctdsp.c:313 (ffmpeg+0x00000044b68e)
Diffstat (limited to 'libavcodec/idctdsp.h')
-rw-r--r-- | libavcodec/idctdsp.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libavcodec/idctdsp.h b/libavcodec/idctdsp.h index f9ba6c3131..26221f6a9d 100644 --- a/libavcodec/idctdsp.h +++ b/libavcodec/idctdsp.h @@ -97,8 +97,10 @@ typedef struct IDCTDSPContext { enum idct_permutation_type perm_type; } IDCTDSPContext; -extern void (*ff_put_pixels_clamped)(const int16_t *block, uint8_t *pixels, ptrdiff_t line_size); -extern void (*ff_add_pixels_clamped)(const int16_t *block, uint8_t *pixels, ptrdiff_t line_size); +void ff_put_pixels_clamped_c(const int16_t *block, uint8_t *av_restrict pixels, + ptrdiff_t line_size); +void ff_add_pixels_clamped_c(const int16_t *block, uint8_t *av_restrict pixels, + ptrdiff_t line_size); void ff_idctdsp_init(IDCTDSPContext *c, AVCodecContext *avctx); |