Use lrand48 on Android
When building x86 assembly use lrand48 instead of the undocumented inlined _rand function. Android now supports rand() https://android-review.googlesource.com/97731 but only for new versions. Original workaround: https://gerrit.chromium.org/gerrit/15744 Change-Id: I130566837d5bfc9e54187ebe9807350d1a7dab2a
This commit is contained in:
parent
7336903545
commit
79afb5eb41
@ -246,7 +246,6 @@ sym(vp8_mbpost_proc_down_mmx):
|
||||
; unsigned char whiteclamp[16],
|
||||
; unsigned char bothclamp[16],
|
||||
; unsigned int Width, unsigned int Height, int Pitch)
|
||||
extern sym(rand)
|
||||
global sym(vp8_plane_add_noise_mmx) PRIVATE
|
||||
sym(vp8_plane_add_noise_mmx):
|
||||
push rbp
|
||||
@ -258,7 +257,7 @@ sym(vp8_plane_add_noise_mmx):
|
||||
; end prolog
|
||||
|
||||
.addnoise_loop:
|
||||
call sym(rand) WRT_PLT
|
||||
call sym(LIBVPX_RAND) WRT_PLT
|
||||
mov rcx, arg(1) ;noise
|
||||
and rax, 0xff
|
||||
add rcx, rax
|
||||
|
@ -660,7 +660,6 @@ sym(vp8_mbpost_proc_across_ip_xmm):
|
||||
; unsigned char whiteclamp[16],
|
||||
; unsigned char bothclamp[16],
|
||||
; unsigned int Width, unsigned int Height, int Pitch)
|
||||
extern sym(rand)
|
||||
global sym(vp8_plane_add_noise_wmt) PRIVATE
|
||||
sym(vp8_plane_add_noise_wmt):
|
||||
push rbp
|
||||
@ -672,7 +671,7 @@ sym(vp8_plane_add_noise_wmt):
|
||||
; end prolog
|
||||
|
||||
.addnoise_loop:
|
||||
call sym(rand) WRT_PLT
|
||||
call sym(LIBVPX_RAND) WRT_PLT
|
||||
mov rcx, arg(1) ;noise
|
||||
and rax, 0xff
|
||||
add rcx, rax
|
||||
|
@ -1,24 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2012 The WebM project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
/* On Android NDK, rand is inlined function, but postproc needs rand symbol */
|
||||
#if defined(__ANDROID__)
|
||||
#define rand __rand
|
||||
#include <stdlib.h>
|
||||
#undef rand
|
||||
|
||||
extern int rand(void)
|
||||
{
|
||||
return __rand();
|
||||
}
|
||||
#else
|
||||
/* ISO C forbids an empty translation unit. */
|
||||
int vp8_unused;
|
||||
#endif
|
@ -107,7 +107,6 @@ VP8_COMMON_SRCS-$(HAVE_SSSE3) += common/x86/variance_impl_ssse3.asm
|
||||
VP8_COMMON_SRCS-$(HAVE_SSE4_1) += common/x86/sad_sse4.asm
|
||||
|
||||
ifeq ($(CONFIG_POSTPROC),yes)
|
||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/postproc_x86.c
|
||||
VP8_COMMON_SRCS-$(HAVE_MMX) += common/x86/postproc_mmx.asm
|
||||
VP8_COMMON_SRCS-$(HAVE_SSE2) += common/x86/mfqe_sse2.asm
|
||||
VP8_COMMON_SRCS-$(HAVE_SSE2) += common/x86/postproc_sse2.asm
|
||||
|
@ -464,7 +464,6 @@ sym(vp9_mbpost_proc_down_mmx):
|
||||
; unsigned char whiteclamp[16],
|
||||
; unsigned char bothclamp[16],
|
||||
; unsigned int width, unsigned int height, int pitch)
|
||||
extern sym(rand)
|
||||
global sym(vp9_plane_add_noise_mmx) PRIVATE
|
||||
sym(vp9_plane_add_noise_mmx):
|
||||
push rbp
|
||||
@ -476,7 +475,7 @@ sym(vp9_plane_add_noise_mmx):
|
||||
; end prolog
|
||||
|
||||
.addnoise_loop:
|
||||
call sym(rand) WRT_PLT
|
||||
call sym(LIBVPX_RAND) WRT_PLT
|
||||
mov rcx, arg(1) ;noise
|
||||
and rax, 0xff
|
||||
add rcx, rax
|
||||
|
@ -629,7 +629,6 @@ sym(vp9_mbpost_proc_across_ip_xmm):
|
||||
; unsigned char whiteclamp[16],
|
||||
; unsigned char bothclamp[16],
|
||||
; unsigned int width, unsigned int height, int pitch)
|
||||
extern sym(rand)
|
||||
global sym(vp9_plane_add_noise_wmt) PRIVATE
|
||||
sym(vp9_plane_add_noise_wmt):
|
||||
push rbp
|
||||
@ -641,7 +640,7 @@ sym(vp9_plane_add_noise_wmt):
|
||||
; end prolog
|
||||
|
||||
.addnoise_loop:
|
||||
call sym(rand) WRT_PLT
|
||||
call sym(LIBVPX_RAND) WRT_PLT
|
||||
mov rcx, arg(1) ;noise
|
||||
and rax, 0xff
|
||||
add rcx, rax
|
||||
|
@ -393,3 +393,14 @@ section .note.GNU-stack noalloc noexec nowrite progbits
|
||||
section .text
|
||||
%endif
|
||||
|
||||
; On Android platforms use lrand48 when building postproc routines. Prior to L
|
||||
; rand() was not available.
|
||||
%if CONFIG_POSTPROC=1
|
||||
%ifdef __ANDROID__
|
||||
extern sym(lrand48)
|
||||
%define LIBVPX_RAND lrand48
|
||||
%else
|
||||
extern sym(rand)
|
||||
%define LIBVPX_RAND rand
|
||||
%endif
|
||||
%endif ; CONFIG_POSTPROC
|
||||
|
Loading…
x
Reference in New Issue
Block a user