Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/x264
  • EwoutH/x264
  • gramner/x264
  • BugMaster/x264
  • MaskRay/x264
  • thresh/x264
  • tpm/x264
  • wolfired/x264
  • ifb/x264
  • robinstorm/x264
  • ltnokiago/x264
  • janne/x264
  • Kromjunya/x264
  • trisnaayu0596/x264
  • felipegarcia1402/x264
  • coder2004/x264
  • philou/x264
  • walagnatalia/x264
  • DonDiego/x264
  • JHammler/x264
  • qyot27/x264
  • dwbuiten/x264
  • Kagami/x264
  • andriy-andreyev/x264
  • gxw/x264
  • trofi/x264
  • kierank/x264
  • aureliendavid/x264
  • galad/x264
  • roommini/x264
  • ocrete/x264
  • mstorsjo/x264
  • yinsj0116/x264
  • mamonet/x264
  • 1div0/x264
  • ko1265/x264
  • sergiomb2/x264
  • xutongda/x264
  • wenzhiwu/x264
  • arrowd/x264
  • FranceBB/x264
  • ziemek99/x264
  • longervision/x264
  • xopok/x264
  • jbk/x264
  • szatmary/x264
  • pekdon/x264
  • Jiangguyu/x264
  • jrtc27/x264
  • kankanol1/x264
  • gxwLite/x264
  • brad/x264
  • Gc6026/x264
  • jdek/x264
  • appcrash/x264
  • tguillem/x264
  • As/x264
  • wevian/x264
  • wangluls/x264
  • RellikJaeger/x264
  • hum/x264
  • rogerhardiman/x264
  • jankowalski12611/x264
  • zhijie1996/x264
  • yinshiyou/x264
  • Freed-Wu/x264
  • yajcoca/x264
  • bUd/x264
  • chienvannguyen2020/x264
  • nurbinakhatun386/x264
  • Siberiawind/x-264-meson
  • HecaiYuan/x264
  • david.chen/x264
  • Ytsejam76/x264
  • robUx4/x264
  • zhaoshiz/x-264-arm64ec
  • yintong.ustc/x-264-bd-ventana
  • nekobasu/x264
  • Courmisch/x264
  • BD-qjy/x264
  • quink/x264
  • markos/x264
  • pranavk/x264
  • robxnano/x264
84 results
Show changes
Commits on Source (12)
...@@ -37,12 +37,20 @@ stages: ...@@ -37,12 +37,20 @@ stages:
stage: build stage: build
script: | script: |
set -x set -x
curl -L -- https://download.videolan.org/videolan/x264/av.tar.gz > av.tar.gz && tar xfzv av.tar.gz LOCAL_INSTALL_DIR=`pwd`/local_install
cd av export PKG_CONFIG_LIBDIR=${LOCAL_INSTALL_DIR}/lib/pkgconfig
./bootstrap git clone --depth 1 --branch master https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --prefix="${LOCAL_INSTALL_DIR}" --enable-pic --disable-debug --extra-ldflags="-static" --disable-programs --disable-doc --disable-avdevice --disable-postproc --disable-avfilter --disable-network --disable-encoders --disable-muxers
make -j$(getconf _NPROCESSORS_ONLN) make -j$(getconf _NPROCESSORS_ONLN)
make -j$(getconf _NPROCESSORS_ONLN) install
cd ..
git clone --depth 1 --branch master https://github.com/l-smash/l-smash.git lsmash
cd lsmash
./configure --prefix="${LOCAL_INSTALL_DIR}" --extra-ldflags="-static"
make -j$(getconf _NPROCESSORS_ONLN)
make -j$(getconf _NPROCESSORS_ONLN) install
cd .. cd ..
export PKG_CONFIG_PATH=`/bin/ls -d $PWD/av/*/lib/pkgconfig`
./configure --enable-pic --enable-strip --extra-ldflags="-static" ./configure --enable-pic --enable-strip --extra-ldflags="-static"
make -j$(getconf _NPROCESSORS_ONLN) x264 checkasm make -j$(getconf _NPROCESSORS_ONLN) x264 checkasm
artifacts: artifacts:
...@@ -73,12 +81,19 @@ build-debian-aarch64: ...@@ -73,12 +81,19 @@ build-debian-aarch64:
extends: build-debian-amd64 extends: build-debian-amd64
script: | script: |
set -x set -x
curl -f -o vlc-contrib-${_TRIPLET}-latest.tar.bz2 https://nightlies.videolan.org/build/contribs/vlc-contrib-${_TRIPLET}-latest.tar.bz2 || curl -f -o vlc-contrib-${_TRIPLET}-latest.tar.bz2 https://nightlies.videolan.org/build/${_PATH}/last/vlc-contrib-${_TRIPLET}-`date +%Y%m%d`.tar.bz2 LOCAL_INSTALL_DIR=`pwd`/${_TRIPLET}
export PKG_CONFIG_LIBDIR=${LOCAL_INSTALL_DIR}/lib/pkgconfig
curl -f -o vlc-contrib-${_TRIPLET}-latest.tar.bz2 https://nightlies.videolan.org/build/contribs/vlc-contrib-${_TRIPLET}-latest.tar.bz2
bunzip2 vlc-contrib-${_TRIPLET}-latest.tar.bz2 bunzip2 vlc-contrib-${_TRIPLET}-latest.tar.bz2
tar xvf vlc-contrib-${_TRIPLET}-latest.tar tar xvf vlc-contrib-${_TRIPLET}-latest.tar
sed -i "s#@@CONTRIB_PREFIX@@#`pwd`/${_TRIPLET}#g" ${_TRIPLET}/lib/pkgconfig/*.pc sed -i "s#@@CONTRIB_PREFIX@@#${LOCAL_INSTALL_DIR}#g" ${PKG_CONFIG_LIBDIR}/*.pc
export PKG_CONFIG_LIBDIR=`pwd`/${_TRIPLET}/lib/pkgconfig git clone --depth 1 --branch master https://github.com/l-smash/l-smash.git lsmash
./configure --host=${_TRIPLET} --cross-prefix=${_TRIPLET}- --enable-pic --enable-strip cd lsmash
./configure --prefix="${LOCAL_INSTALL_DIR}" --target-os="${_TRIPLET}" --cross-prefix="${_TRIPLET}-"
make -j$(getconf _NPROCESSORS_ONLN)
make -j$(getconf _NPROCESSORS_ONLN) install
cd ..
./configure --host="${_TRIPLET}" --cross-prefix="${_TRIPLET}-" --enable-pic --enable-strip
make -j$(getconf _NPROCESSORS_ONLN) x264 checkasm make -j$(getconf _NPROCESSORS_ONLN) x264 checkasm
build-win32: build-win32:
...@@ -95,12 +110,19 @@ build-macos: ...@@ -95,12 +110,19 @@ build-macos:
- macos - macos
script: | script: |
set -x set -x
curl -O https://nightlies.videolan.org/build/contribs/vlc-contrib-${_TRIPLET}-latest.tar.bz2 LOCAL_INSTALL_DIR=`pwd`/${_TRIPLET}
export PKG_CONFIG_LIBDIR=${LOCAL_INSTALL_DIR}/lib/pkgconfig
curl -f -o vlc-contrib-${_TRIPLET}-latest.tar.bz2 https://nightlies.videolan.org/build/contribs/vlc-contrib-${_TRIPLET}-latest.tar.bz2
bunzip2 vlc-contrib-${_TRIPLET}-latest.tar.bz2 bunzip2 vlc-contrib-${_TRIPLET}-latest.tar.bz2
tar xvf vlc-contrib-${_TRIPLET}-latest.tar tar xvf vlc-contrib-${_TRIPLET}-latest.tar
sed -i.bak "s#@@CONTRIB_PREFIX@@#`pwd`/${_TRIPLET}#g" ${_TRIPLET}/lib/pkgconfig/*.pc sed -i.bak "s#@@CONTRIB_PREFIX@@#${LOCAL_INSTALL_DIR}#g" ${PKG_CONFIG_LIBDIR}/*.pc
export PKG_CONFIG_LIBDIR=`pwd`/${_TRIPLET}/lib/pkgconfig git clone --depth 1 --branch master https://github.com/l-smash/l-smash.git lsmash
./configure --enable-strip cd lsmash
./configure --prefix="${LOCAL_INSTALL_DIR}"
make -j$(getconf _NPROCESSORS_ONLN)
make -j$(getconf _NPROCESSORS_ONLN) install
cd ..
./configure --enable-pic --enable-strip
make -j$(getconf _NPROCESSORS_ONLN) x264 checkasm make -j$(getconf _NPROCESSORS_ONLN) x264 checkasm
variables: *variables-macos variables: *variables-macos
......
...@@ -272,7 +272,7 @@ PLANE_INTERLEAVE(neon) ...@@ -272,7 +272,7 @@ PLANE_INTERLEAVE(neon)
PROPAGATE_LIST(neon) PROPAGATE_LIST(neon)
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
void x264_mc_init_aarch64( int cpu, x264_mc_functions_t *pf ) void x264_mc_init_aarch64( uint32_t cpu, x264_mc_functions_t *pf )
{ {
#if !HIGH_BIT_DEPTH #if !HIGH_BIT_DEPTH
if( cpu&X264_CPU_ARMV8 ) if( cpu&X264_CPU_ARMV8 )
......
...@@ -27,6 +27,6 @@ ...@@ -27,6 +27,6 @@
#define X264_AARCH64_MC_H #define X264_AARCH64_MC_H
#define x264_mc_init_aarch64 x264_template(mc_init_aarch64) #define x264_mc_init_aarch64 x264_template(mc_init_aarch64)
void x264_mc_init_aarch64( int cpu, x264_mc_functions_t *pf ); void x264_mc_init_aarch64( uint32_t cpu, x264_mc_functions_t *pf );
#endif #endif
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include "predict.h" #include "predict.h"
#include "pixel.h" #include "pixel.h"
void x264_predict_4x4_init_aarch64( int cpu, x264_predict_t pf[12] ) void x264_predict_4x4_init_aarch64( uint32_t cpu, x264_predict_t pf[12] )
{ {
#if !HIGH_BIT_DEPTH #if !HIGH_BIT_DEPTH
if( cpu&X264_CPU_ARMV8 ) if( cpu&X264_CPU_ARMV8 )
...@@ -47,7 +47,7 @@ void x264_predict_4x4_init_aarch64( int cpu, x264_predict_t pf[12] ) ...@@ -47,7 +47,7 @@ void x264_predict_4x4_init_aarch64( int cpu, x264_predict_t pf[12] )
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
} }
void x264_predict_8x8c_init_aarch64( int cpu, x264_predict_t pf[7] ) void x264_predict_8x8c_init_aarch64( uint32_t cpu, x264_predict_t pf[7] )
{ {
#if !HIGH_BIT_DEPTH #if !HIGH_BIT_DEPTH
if( cpu&X264_CPU_ARMV8 ) if( cpu&X264_CPU_ARMV8 )
...@@ -67,7 +67,7 @@ void x264_predict_8x8c_init_aarch64( int cpu, x264_predict_t pf[7] ) ...@@ -67,7 +67,7 @@ void x264_predict_8x8c_init_aarch64( int cpu, x264_predict_t pf[7] )
} }
void x264_predict_8x16c_init_aarch64( int cpu, x264_predict_t pf[7] ) void x264_predict_8x16c_init_aarch64( uint32_t cpu, x264_predict_t pf[7] )
{ {
if( !(cpu&X264_CPU_NEON) ) if( !(cpu&X264_CPU_NEON) )
return; return;
...@@ -82,7 +82,7 @@ void x264_predict_8x16c_init_aarch64( int cpu, x264_predict_t pf[7] ) ...@@ -82,7 +82,7 @@ void x264_predict_8x16c_init_aarch64( int cpu, x264_predict_t pf[7] )
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
} }
void x264_predict_8x8_init_aarch64( int cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter ) void x264_predict_8x8_init_aarch64( uint32_t cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter )
{ {
if( !(cpu&X264_CPU_NEON) ) if( !(cpu&X264_CPU_NEON) )
return; return;
...@@ -100,7 +100,7 @@ void x264_predict_8x8_init_aarch64( int cpu, x264_predict8x8_t pf[12], x264_pred ...@@ -100,7 +100,7 @@ void x264_predict_8x8_init_aarch64( int cpu, x264_predict8x8_t pf[12], x264_pred
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
} }
void x264_predict_16x16_init_aarch64( int cpu, x264_predict_t pf[7] ) void x264_predict_16x16_init_aarch64( uint32_t cpu, x264_predict_t pf[7] )
{ {
if( !(cpu&X264_CPU_NEON) ) if( !(cpu&X264_CPU_NEON) )
return; return;
......
...@@ -106,14 +106,14 @@ void x264_predict_16x16_h_neon( uint8_t *src ); ...@@ -106,14 +106,14 @@ void x264_predict_16x16_h_neon( uint8_t *src );
void x264_predict_16x16_dc_neon( uint8_t *src ); void x264_predict_16x16_dc_neon( uint8_t *src );
#define x264_predict_4x4_init_aarch64 x264_template(predict_4x4_init_aarch64) #define x264_predict_4x4_init_aarch64 x264_template(predict_4x4_init_aarch64)
void x264_predict_4x4_init_aarch64( int cpu, x264_predict_t pf[12] ); void x264_predict_4x4_init_aarch64( uint32_t cpu, x264_predict_t pf[12] );
#define x264_predict_8x8_init_aarch64 x264_template(predict_8x8_init_aarch64) #define x264_predict_8x8_init_aarch64 x264_template(predict_8x8_init_aarch64)
void x264_predict_8x8_init_aarch64( int cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter ); void x264_predict_8x8_init_aarch64( uint32_t cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter );
#define x264_predict_8x8c_init_aarch64 x264_template(predict_8x8c_init_aarch64) #define x264_predict_8x8c_init_aarch64 x264_template(predict_8x8c_init_aarch64)
void x264_predict_8x8c_init_aarch64( int cpu, x264_predict_t pf[7] ); void x264_predict_8x8c_init_aarch64( uint32_t cpu, x264_predict_t pf[7] );
#define x264_predict_8x16c_init_aarch64 x264_template(predict_8x16c_init_aarch64) #define x264_predict_8x16c_init_aarch64 x264_template(predict_8x16c_init_aarch64)
void x264_predict_8x16c_init_aarch64( int cpu, x264_predict_t pf[7] ); void x264_predict_8x16c_init_aarch64( uint32_t cpu, x264_predict_t pf[7] );
#define x264_predict_16x16_init_aarch64 x264_template(predict_16x16_init_aarch64) #define x264_predict_16x16_init_aarch64 x264_template(predict_16x16_init_aarch64)
void x264_predict_16x16_init_aarch64( int cpu, x264_predict_t pf[7] ); void x264_predict_16x16_init_aarch64( uint32_t cpu, x264_predict_t pf[7] );
#endif /* X264_AARCH64_PREDICT_H */ #endif /* X264_AARCH64_PREDICT_H */
...@@ -725,15 +725,15 @@ function sub8x16_dct_dc_neon ...@@ -725,15 +725,15 @@ function sub8x16_dct_dc_neon
vadd.s16 q3, q3, q15 vadd.s16 q3, q3, q15
vsub.s16 d17, d0, d1 @ b4 vsub.s16 d17, d0, d1 @ b4
vadd.s16 d18, d2, d3 @ b1 vadd.s16 d18, d2, d3 @ b1
vsub.s16 d19, d2, d3 @ b5 vsub.s16 d19, d2, d3 @ b5
vadd.s16 d20, d4, d5 @ b2 vadd.s16 d20, d4, d5 @ b2
vsub.s16 d21, d4, d5 @ b6 vsub.s16 d21, d4, d5 @ b6
vadd.s16 d22, d6, d7 @ b3 vadd.s16 d22, d6, d7 @ b3
vsub.s16 d23, d6, d7 @ b7 vsub.s16 d23, d6, d7 @ b7
vadd.s16 q0, q8, q9 @ b0 + b1, b4 + b5; a0, a2 vadd.s16 q0, q8, q9 @ b0 + b1, b4 + b5; a0, a2
vsub.s16 q1, q8, q9 @ b0 - b1, b4 - b5; a4, a6 vsub.s16 q1, q8, q9 @ b0 - b1, b4 - b5; a4, a6
vadd.s16 q2, q10, q11 @ b2 + b3, b6 + b7; a1, a3 vadd.s16 q2, q10, q11 @ b2 + b3, b6 + b7; a1, a3
vsub.s16 q3, q10, q11 @ b2 - b3, b6 - b7; a5, a7 vsub.s16 q3, q10, q11 @ b2 - b3, b6 - b7; a5, a7
vadd.s16 q8, q0, q2 @ a0 + a1, a2 + a3 vadd.s16 q8, q0, q2 @ a0 + a1, a2 + a3
vsub.s16 q9, q0, q2 @ a0 - a1, a2 - a3 vsub.s16 q9, q0, q2 @ a0 - a1, a2 - a3
......
...@@ -296,7 +296,7 @@ PLANE_INTERLEAVE(neon) ...@@ -296,7 +296,7 @@ PLANE_INTERLEAVE(neon)
PROPAGATE_LIST(neon) PROPAGATE_LIST(neon)
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
void x264_mc_init_arm( int cpu, x264_mc_functions_t *pf ) void x264_mc_init_arm( uint32_t cpu, x264_mc_functions_t *pf )
{ {
if( !(cpu&X264_CPU_ARMV6) ) if( !(cpu&X264_CPU_ARMV6) )
return; return;
......
...@@ -27,6 +27,6 @@ ...@@ -27,6 +27,6 @@
#define X264_ARM_MC_H #define X264_ARM_MC_H
#define x264_mc_init_arm x264_template(mc_init_arm) #define x264_mc_init_arm x264_template(mc_init_arm)
void x264_mc_init_arm( int cpu, x264_mc_functions_t *pf ); void x264_mc_init_arm( uint32_t cpu, x264_mc_functions_t *pf );
#endif #endif
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#include "predict.h" #include "predict.h"
#include "pixel.h" #include "pixel.h"
void x264_predict_4x4_init_arm( int cpu, x264_predict_t pf[12] ) void x264_predict_4x4_init_arm( uint32_t cpu, x264_predict_t pf[12] )
{ {
if( !(cpu&X264_CPU_ARMV6) ) if( !(cpu&X264_CPU_ARMV6) )
return; return;
...@@ -46,7 +46,7 @@ void x264_predict_4x4_init_arm( int cpu, x264_predict_t pf[12] ) ...@@ -46,7 +46,7 @@ void x264_predict_4x4_init_arm( int cpu, x264_predict_t pf[12] )
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
} }
void x264_predict_8x8c_init_arm( int cpu, x264_predict_t pf[7] ) void x264_predict_8x8c_init_arm( uint32_t cpu, x264_predict_t pf[7] )
{ {
if( !(cpu&X264_CPU_NEON) ) if( !(cpu&X264_CPU_NEON) )
return; return;
...@@ -61,7 +61,7 @@ void x264_predict_8x8c_init_arm( int cpu, x264_predict_t pf[7] ) ...@@ -61,7 +61,7 @@ void x264_predict_8x8c_init_arm( int cpu, x264_predict_t pf[7] )
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
} }
void x264_predict_8x16c_init_arm( int cpu, x264_predict_t pf[7] ) void x264_predict_8x16c_init_arm( uint32_t cpu, x264_predict_t pf[7] )
{ {
if( !(cpu&X264_CPU_NEON) ) if( !(cpu&X264_CPU_NEON) )
return; return;
...@@ -74,7 +74,7 @@ void x264_predict_8x16c_init_arm( int cpu, x264_predict_t pf[7] ) ...@@ -74,7 +74,7 @@ void x264_predict_8x16c_init_arm( int cpu, x264_predict_t pf[7] )
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
} }
void x264_predict_8x8_init_arm( int cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter ) void x264_predict_8x8_init_arm( uint32_t cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter )
{ {
if( !(cpu&X264_CPU_NEON) ) if( !(cpu&X264_CPU_NEON) )
return; return;
...@@ -92,7 +92,7 @@ void x264_predict_8x8_init_arm( int cpu, x264_predict8x8_t pf[12], x264_predict_ ...@@ -92,7 +92,7 @@ void x264_predict_8x8_init_arm( int cpu, x264_predict8x8_t pf[12], x264_predict_
#endif // !HIGH_BIT_DEPTH #endif // !HIGH_BIT_DEPTH
} }
void x264_predict_16x16_init_arm( int cpu, x264_predict_t pf[7] ) void x264_predict_16x16_init_arm( uint32_t cpu, x264_predict_t pf[7] )
{ {
if( !(cpu&X264_CPU_NEON) ) if( !(cpu&X264_CPU_NEON) )
return; return;
......
...@@ -92,14 +92,14 @@ void x264_predict_16x16_v_neon( uint8_t *src ); ...@@ -92,14 +92,14 @@ void x264_predict_16x16_v_neon( uint8_t *src );
void x264_predict_16x16_p_neon( uint8_t *src ); void x264_predict_16x16_p_neon( uint8_t *src );
#define x264_predict_4x4_init_arm x264_template(predict_4x4_init_arm) #define x264_predict_4x4_init_arm x264_template(predict_4x4_init_arm)
void x264_predict_4x4_init_arm( int cpu, x264_predict_t pf[12] ); void x264_predict_4x4_init_arm( uint32_t cpu, x264_predict_t pf[12] );
#define x264_predict_8x8_init_arm x264_template(predict_8x8_init_arm) #define x264_predict_8x8_init_arm x264_template(predict_8x8_init_arm)
void x264_predict_8x8_init_arm( int cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter ); void x264_predict_8x8_init_arm( uint32_t cpu, x264_predict8x8_t pf[12], x264_predict_8x8_filter_t *predict_filter );
#define x264_predict_8x8c_init_arm x264_template(predict_8x8c_init_arm) #define x264_predict_8x8c_init_arm x264_template(predict_8x8c_init_arm)
void x264_predict_8x8c_init_arm( int cpu, x264_predict_t pf[7] ); void x264_predict_8x8c_init_arm( uint32_t cpu, x264_predict_t pf[7] );
#define x264_predict_8x16c_init_arm x264_template(predict_8x16c_init_arm) #define x264_predict_8x16c_init_arm x264_template(predict_8x16c_init_arm)
void x264_predict_8x16c_init_arm( int cpu, x264_predict_t pf[7] ); void x264_predict_8x16c_init_arm( uint32_t cpu, x264_predict_t pf[7] );
#define x264_predict_16x16_init_arm x264_template(predict_16x16_init_arm) #define x264_predict_16x16_init_arm x264_template(predict_16x16_init_arm)
void x264_predict_16x16_init_arm( int cpu, x264_predict_t pf[7] ); void x264_predict_16x16_init_arm( uint32_t cpu, x264_predict_t pf[7] );
#endif #endif
...@@ -103,7 +103,7 @@ void *x264_malloc( int64_t i_size ) ...@@ -103,7 +103,7 @@ void *x264_malloc( int64_t i_size )
{ {
#define HUGE_PAGE_SIZE 2*1024*1024 #define HUGE_PAGE_SIZE 2*1024*1024
#define HUGE_PAGE_THRESHOLD HUGE_PAGE_SIZE*7/8 /* FIXME: Is this optimal? */ #define HUGE_PAGE_THRESHOLD HUGE_PAGE_SIZE*7/8 /* FIXME: Is this optimal? */
if( i_size < 0 || i_size > (SIZE_MAX - HUGE_PAGE_SIZE) /*|| i_size > (SIZE_MAX - NATIVE_ALIGN - sizeof(void **))*/ ) if( i_size < 0 || (uint64_t)i_size > (SIZE_MAX - HUGE_PAGE_SIZE) /*|| (uint64_t)i_size > (SIZE_MAX - NATIVE_ALIGN - sizeof(void **))*/ )
{ {
x264_log_internal( X264_LOG_ERROR, "invalid size of malloc: %"PRId64"\n", i_size ); x264_log_internal( X264_LOG_ERROR, "invalid size of malloc: %"PRId64"\n", i_size );
return NULL; return NULL;
...@@ -180,7 +180,7 @@ char *x264_slurp_file( const char *filename ) ...@@ -180,7 +180,7 @@ char *x264_slurp_file( const char *filename )
if( !buf ) if( !buf )
goto error; goto error;
b_error |= fread( buf, 1, i_size, fh ) != i_size; b_error |= fread( buf, 1, i_size, fh ) != (uint64_t)i_size;
fclose( fh ); fclose( fh );
if( b_error ) if( b_error )
{ {
...@@ -428,7 +428,7 @@ static int param_apply_preset( x264_param_t *param, const char *preset ) ...@@ -428,7 +428,7 @@ static int param_apply_preset( x264_param_t *param, const char *preset )
{ {
char *end; char *end;
int i = strtol( preset, &end, 10 ); int i = strtol( preset, &end, 10 );
if( *end == 0 && i >= 0 && i < sizeof(x264_preset_names)/sizeof(*x264_preset_names)-1 ) if( *end == 0 && i >= 0 && i < ARRAY_ELEMS(x264_preset_names)-1 )
preset = x264_preset_names[i]; preset = x264_preset_names[i];
if( !strcasecmp( preset, "ultrafast" ) ) if( !strcasecmp( preset, "ultrafast" ) )
...@@ -1259,7 +1259,7 @@ REALIGN_STACK int x264_param_parse( x264_param_t *p, const char *name, const cha ...@@ -1259,7 +1259,7 @@ REALIGN_STACK int x264_param_parse( x264_param_t *p, const char *name, const cha
OPT("zones") OPT("zones")
p->rc.psz_zones = strdup(value); p->rc.psz_zones = strdup(value);
OPT("crop-rect") OPT("crop-rect")
b_error |= sscanf( value, "%u,%u,%u,%u", &p->crop_rect.i_left, &p->crop_rect.i_top, b_error |= sscanf( value, "%d,%d,%d,%d", &p->crop_rect.i_left, &p->crop_rect.i_top,
&p->crop_rect.i_right, &p->crop_rect.i_bottom ) != 4; &p->crop_rect.i_right, &p->crop_rect.i_bottom ) != 4;
OPT("psnr") OPT("psnr")
p->analyse.b_psnr = atobool(value); p->analyse.b_psnr = atobool(value);
...@@ -1425,7 +1425,7 @@ char *x264_param2string( x264_param_t *p, int b_res ) ...@@ -1425,7 +1425,7 @@ char *x264_param2string( x264_param_t *p, int b_res )
if( p->rc.i_vbv_buffer_size ) if( p->rc.i_vbv_buffer_size )
s += sprintf( s, " nal_hrd=%s filler=%d", x264_nal_hrd_names[p->i_nal_hrd], p->rc.b_filler ); s += sprintf( s, " nal_hrd=%s filler=%d", x264_nal_hrd_names[p->i_nal_hrd], p->rc.b_filler );
if( p->crop_rect.i_left | p->crop_rect.i_top | p->crop_rect.i_right | p->crop_rect.i_bottom ) if( p->crop_rect.i_left | p->crop_rect.i_top | p->crop_rect.i_right | p->crop_rect.i_bottom )
s += sprintf( s, " crop_rect=%u,%u,%u,%u", p->crop_rect.i_left, p->crop_rect.i_top, s += sprintf( s, " crop_rect=%d,%d,%d,%d", p->crop_rect.i_left, p->crop_rect.i_top,
p->crop_rect.i_right, p->crop_rect.i_bottom ); p->crop_rect.i_right, p->crop_rect.i_bottom );
if( p->i_frame_packing >= 0 ) if( p->i_frame_packing >= 0 )
s += sprintf( s, " frame-packing=%d", p->i_frame_packing ); s += sprintf( s, " frame-packing=%d", p->i_frame_packing );
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
****************************************************************************/ ****************************************************************************/
#define XCHG(type,a,b) do { type t = a; a = b; b = t; } while( 0 ) #define XCHG(type,a,b) do { type t = a; a = b; b = t; } while( 0 )
#define FIX8(f) ((int)(f*(1<<8)+.5)) #define FIX8(f) ((int)(f*(1<<8)+.5))
#define ARRAY_ELEMS(a) ((sizeof(a))/(sizeof(a[0]))) #define ARRAY_ELEMS(a) ((int)((sizeof(a))/(sizeof(a[0]))))
#define ALIGN(x,a) (((x)+((a)-1))&~((a)-1)) #define ALIGN(x,a) (((x)+((a)-1))&~((a)-1))
#define IS_DISPOSABLE(type) ( type == X264_TYPE_B ) #define IS_DISPOSABLE(type) ( type == X264_TYPE_B )
...@@ -303,7 +303,7 @@ do {\ ...@@ -303,7 +303,7 @@ do {\
do {\ do {\
var = (void*)(intptr_t)prealloc_size;\ var = (void*)(intptr_t)prealloc_size;\
preallocs[prealloc_idx++] = (uint8_t**)&var;\ preallocs[prealloc_idx++] = (uint8_t**)&var;\
prealloc_size += ALIGN(size, NATIVE_ALIGN);\ prealloc_size += ALIGN((int64_t)(size), NATIVE_ALIGN);\
} while( 0 ) } while( 0 )
#define PREALLOC_END( ptr )\ #define PREALLOC_END( ptr )\
......
...@@ -103,7 +103,7 @@ void x264_nal_encode( x264_t *h, uint8_t *dst, x264_nal_t *nal ) ...@@ -103,7 +103,7 @@ void x264_nal_encode( x264_t *h, uint8_t *dst, x264_nal_t *nal )
x264_emms(); x264_emms();
} }
void x264_bitstream_init( int cpu, x264_bitstream_function_t *pf ) void x264_bitstream_init( uint32_t cpu, x264_bitstream_function_t *pf )
{ {
memset( pf, 0, sizeof(*pf) ); memset( pf, 0, sizeof(*pf) );
......
...@@ -66,7 +66,7 @@ typedef struct ...@@ -66,7 +66,7 @@ typedef struct
} x264_bitstream_function_t; } x264_bitstream_function_t;
#define x264_bitstream_init x264_template(bitstream_init) #define x264_bitstream_init x264_template(bitstream_init)
void x264_bitstream_init( int cpu, x264_bitstream_function_t *pf ); void x264_bitstream_init( uint32_t cpu, x264_bitstream_function_t *pf );
/* A larger level table size theoretically could help a bit at extremely /* A larger level table size theoretically could help a bit at extremely
* high bitrates, but the cost in cache is usually too high for it to be * high bitrates, but the cost in cache is usually too high for it to be
......
...@@ -108,6 +108,8 @@ ...@@ -108,6 +108,8 @@
# define MPIXEL_X4(src) M32(src) # define MPIXEL_X4(src) M32(src)
#endif #endif
#define SIZEOF_PIXEL ((int)sizeof(pixel))
#define CPPIXEL_X4(dst,src) MPIXEL_X4(dst) = MPIXEL_X4(src) #define CPPIXEL_X4(dst,src) MPIXEL_X4(dst) = MPIXEL_X4(src)
/**************************************************************************** /****************************************************************************
...@@ -528,7 +530,7 @@ struct x264_t ...@@ -528,7 +530,7 @@ struct x264_t
int16_t (*mvr[2][X264_REF_MAX*2])[2];/* 16x16 mv for each possible ref */ int16_t (*mvr[2][X264_REF_MAX*2])[2];/* 16x16 mv for each possible ref */
int8_t *skipbp; /* block pattern for SKIP or DIRECT (sub)mbs. B-frames + cabac only */ int8_t *skipbp; /* block pattern for SKIP or DIRECT (sub)mbs. B-frames + cabac only */
int8_t *mb_transform_size; /* transform_size_8x8_flag of each mb */ int8_t *mb_transform_size; /* transform_size_8x8_flag of each mb */
uint32_t *slice_table; /* sh->first_mb of the slice that the indexed mb is part of */ int32_t *slice_table; /* sh->first_mb of the slice that the indexed mb is part of */
uint8_t *field; uint8_t *field;
/* buffer for weighted versions of the reference frames */ /* buffer for weighted versions of the reference frames */
......
...@@ -362,7 +362,7 @@ int x264_cpu_fast_neon_mrc_test( void ); ...@@ -362,7 +362,7 @@ int x264_cpu_fast_neon_mrc_test( void );
uint32_t x264_cpu_detect( void ) uint32_t x264_cpu_detect( void )
{ {
int flags = 0; uint32_t flags = 0;
flags |= X264_CPU_ARMV6; flags |= X264_CPU_ARMV6;
// don't do this hack if compiled with -mfpu=neon // don't do this hack if compiled with -mfpu=neon
...@@ -449,7 +449,7 @@ int x264_cpu_num_processors( void ) ...@@ -449,7 +449,7 @@ int x264_cpu_num_processors( void )
return CPU_COUNT(&p_aff); return CPU_COUNT(&p_aff);
#else #else
int np = 0; int np = 0;
for( unsigned int bit = 0; bit < 8 * sizeof(p_aff); bit++ ) for( size_t bit = 0; bit < 8 * sizeof(p_aff); bit++ )
np += (((uint8_t *)&p_aff)[bit / 8] >> (bit % 8)) & 1; np += (((uint8_t *)&p_aff)[bit / 8] >> (bit % 8)) & 1;
return np; return np;
#endif #endif
......
...@@ -472,7 +472,7 @@ static void add16x16_idct_dc( pixel *p_dst, dctcoef dct[16] ) ...@@ -472,7 +472,7 @@ static void add16x16_idct_dc( pixel *p_dst, dctcoef dct[16] )
/**************************************************************************** /****************************************************************************
* x264_dct_init: * x264_dct_init:
****************************************************************************/ ****************************************************************************/
void x264_dct_init( int cpu, x264_dct_function_t *dctf ) void x264_dct_init( uint32_t cpu, x264_dct_function_t *dctf )
{ {
dctf->sub4x4_dct = sub4x4_dct; dctf->sub4x4_dct = sub4x4_dct;
dctf->add4x4_idct = add4x4_idct; dctf->add4x4_idct = add4x4_idct;
...@@ -901,7 +901,7 @@ static void zigzag_interleave_8x8_cavlc( dctcoef *dst, dctcoef *src, uint8_t *nn ...@@ -901,7 +901,7 @@ static void zigzag_interleave_8x8_cavlc( dctcoef *dst, dctcoef *src, uint8_t *nn
} }
} }
void x264_zigzag_init( int cpu, x264_zigzag_function_t *pf_progressive, x264_zigzag_function_t *pf_interlaced ) void x264_zigzag_init( uint32_t cpu, x264_zigzag_function_t *pf_progressive, x264_zigzag_function_t *pf_interlaced )
{ {
pf_interlaced->scan_8x8 = zigzag_scan_8x8_field; pf_interlaced->scan_8x8 = zigzag_scan_8x8_field;
pf_progressive->scan_8x8 = zigzag_scan_8x8_frame; pf_progressive->scan_8x8 = zigzag_scan_8x8_frame;
......
...@@ -70,8 +70,8 @@ typedef struct ...@@ -70,8 +70,8 @@ typedef struct
} x264_zigzag_function_t; } x264_zigzag_function_t;
#define x264_dct_init x264_template(dct_init) #define x264_dct_init x264_template(dct_init)
void x264_dct_init( int cpu, x264_dct_function_t *dctf ); void x264_dct_init( uint32_t cpu, x264_dct_function_t *dctf );
#define x264_zigzag_init x264_template(zigzag_init) #define x264_zigzag_init x264_template(zigzag_init)
void x264_zigzag_init( int cpu, x264_zigzag_function_t *pf_progressive, x264_zigzag_function_t *pf_interlaced ); void x264_zigzag_init( uint32_t cpu, x264_zigzag_function_t *pf_progressive, x264_zigzag_function_t *pf_interlaced );
#endif #endif
...@@ -681,7 +681,7 @@ void x264_macroblock_deblock( x264_t *h ) ...@@ -681,7 +681,7 @@ void x264_macroblock_deblock( x264_t *h )
#include "mips/deblock.h" #include "mips/deblock.h"
#endif #endif
void x264_deblock_init( int cpu, x264_deblock_function_t *pf, int b_mbaff ) void x264_deblock_init( uint32_t cpu, x264_deblock_function_t *pf, int b_mbaff )
{ {
pf->deblock_luma[1] = deblock_v_luma_c; pf->deblock_luma[1] = deblock_v_luma_c;
pf->deblock_luma[0] = deblock_h_luma_c; pf->deblock_luma[0] = deblock_h_luma_c;
......
...@@ -77,7 +77,7 @@ static x264_frame_t *frame_new( x264_t *h, int b_fdec ) ...@@ -77,7 +77,7 @@ static x264_frame_t *frame_new( x264_t *h, int b_fdec )
#endif #endif
/* ensure frame alignment after PADH is added */ /* ensure frame alignment after PADH is added */
int padh_align = X264_MAX( align - PADH * (int)sizeof(pixel), 0 ) / sizeof(pixel); int padh_align = X264_MAX( align - PADH * SIZEOF_PIXEL, 0 ) / SIZEOF_PIXEL;
CHECKED_MALLOCZERO( frame, sizeof(x264_frame_t) ); CHECKED_MALLOCZERO( frame, sizeof(x264_frame_t) );
PREALLOC_INIT PREALLOC_INIT
...@@ -152,9 +152,9 @@ static x264_frame_t *frame_new( x264_t *h, int b_fdec ) ...@@ -152,9 +152,9 @@ static x264_frame_t *frame_new( x264_t *h, int b_fdec )
{ {
int chroma_padv = i_padv >> (i_csp == X264_CSP_NV12); int chroma_padv = i_padv >> (i_csp == X264_CSP_NV12);
int chroma_plane_size = (frame->i_stride[1] * (frame->i_lines[1] + 2*chroma_padv)); int chroma_plane_size = (frame->i_stride[1] * (frame->i_lines[1] + 2*chroma_padv));
PREALLOC( frame->buffer[1], (chroma_plane_size + padh_align) * sizeof(pixel) ); PREALLOC( frame->buffer[1], (chroma_plane_size + padh_align) * SIZEOF_PIXEL );
if( PARAM_INTERLACED ) if( PARAM_INTERLACED )
PREALLOC( frame->buffer_fld[1], (chroma_plane_size + padh_align) * sizeof(pixel) ); PREALLOC( frame->buffer_fld[1], (chroma_plane_size + padh_align) * SIZEOF_PIXEL );
} }
/* all 4 luma planes allocated together, since the cacheline split code /* all 4 luma planes allocated together, since the cacheline split code
...@@ -167,9 +167,9 @@ static x264_frame_t *frame_new( x264_t *h, int b_fdec ) ...@@ -167,9 +167,9 @@ static x264_frame_t *frame_new( x264_t *h, int b_fdec )
luma_plane_size *= 4; luma_plane_size *= 4;
/* FIXME: Don't allocate both buffers in non-adaptive MBAFF. */ /* FIXME: Don't allocate both buffers in non-adaptive MBAFF. */
PREALLOC( frame->buffer[p], (luma_plane_size + padh_align) * sizeof(pixel) ); PREALLOC( frame->buffer[p], (luma_plane_size + padh_align) * SIZEOF_PIXEL );
if( PARAM_INTERLACED ) if( PARAM_INTERLACED )
PREALLOC( frame->buffer_fld[p], (luma_plane_size + padh_align) * sizeof(pixel) ); PREALLOC( frame->buffer_fld[p], (luma_plane_size + padh_align) * SIZEOF_PIXEL );
} }
frame->b_duplicate = 0; frame->b_duplicate = 0;
...@@ -207,7 +207,7 @@ static x264_frame_t *frame_new( x264_t *h, int b_fdec ) ...@@ -207,7 +207,7 @@ static x264_frame_t *frame_new( x264_t *h, int b_fdec )
{ {
int64_t luma_plane_size = align_plane_size( frame->i_stride_lowres * (frame->i_lines[0]/2 + 2*PADV), disalign ); int64_t luma_plane_size = align_plane_size( frame->i_stride_lowres * (frame->i_lines[0]/2 + 2*PADV), disalign );
PREALLOC( frame->buffer_lowres, (4 * luma_plane_size + padh_align) * sizeof(pixel) ); PREALLOC( frame->buffer_lowres, (4 * luma_plane_size + padh_align) * SIZEOF_PIXEL );
for( int j = 0; j <= !!h->param.i_bframe; j++ ) for( int j = 0; j <= !!h->param.i_bframe; j++ )
for( int i = 0; i <= h->param.i_bframe; i++ ) for( int i = 0; i <= h->param.i_bframe; i++ )
...@@ -419,7 +419,7 @@ int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src ) ...@@ -419,7 +419,7 @@ int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src )
h->mc.plane_copy_deinterleave_v210( dst->plane[0], dst->i_stride[0], h->mc.plane_copy_deinterleave_v210( dst->plane[0], dst->i_stride[0],
dst->plane[1], dst->i_stride[1], dst->plane[1], dst->i_stride[1],
(uint32_t *)pix[0], stride[0]/sizeof(uint32_t), h->param.i_width, h->param.i_height ); (uint32_t *)pix[0], stride[0]/(int)sizeof(uint32_t), h->param.i_width, h->param.i_height );
} }
else if( i_csp >= X264_CSP_BGR ) else if( i_csp >= X264_CSP_BGR )
{ {
...@@ -434,25 +434,25 @@ int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src ) ...@@ -434,25 +434,25 @@ int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src )
h->mc.plane_copy_deinterleave_rgb( dst->plane[1+b], dst->i_stride[1+b], h->mc.plane_copy_deinterleave_rgb( dst->plane[1+b], dst->i_stride[1+b],
dst->plane[0], dst->i_stride[0], dst->plane[0], dst->i_stride[0],
dst->plane[2-b], dst->i_stride[2-b], dst->plane[2-b], dst->i_stride[2-b],
(pixel*)pix[0], stride[0]/sizeof(pixel), i_csp==X264_CSP_BGRA ? 4 : 3, h->param.i_width, h->param.i_height ); (pixel*)pix[0], stride[0]/SIZEOF_PIXEL, i_csp==X264_CSP_BGRA ? 4 : 3, h->param.i_width, h->param.i_height );
} }
else else
{ {
int v_shift = CHROMA_V_SHIFT; int v_shift = CHROMA_V_SHIFT;
get_plane_ptr( h, src, &pix[0], &stride[0], 0, 0, 0 ); get_plane_ptr( h, src, &pix[0], &stride[0], 0, 0, 0 );
h->mc.plane_copy( dst->plane[0], dst->i_stride[0], (pixel*)pix[0], h->mc.plane_copy( dst->plane[0], dst->i_stride[0], (pixel*)pix[0],
stride[0]/sizeof(pixel), h->param.i_width, h->param.i_height ); stride[0]/SIZEOF_PIXEL, h->param.i_width, h->param.i_height );
if( i_csp == X264_CSP_NV12 || i_csp == X264_CSP_NV16 ) if( i_csp == X264_CSP_NV12 || i_csp == X264_CSP_NV16 )
{ {
get_plane_ptr( h, src, &pix[1], &stride[1], 1, 0, v_shift ); get_plane_ptr( h, src, &pix[1], &stride[1], 1, 0, v_shift );
h->mc.plane_copy( dst->plane[1], dst->i_stride[1], (pixel*)pix[1], h->mc.plane_copy( dst->plane[1], dst->i_stride[1], (pixel*)pix[1],
stride[1]/sizeof(pixel), h->param.i_width, h->param.i_height>>v_shift ); stride[1]/SIZEOF_PIXEL, h->param.i_width, h->param.i_height>>v_shift );
} }
else if( i_csp == X264_CSP_NV21 ) else if( i_csp == X264_CSP_NV21 )
{ {
get_plane_ptr( h, src, &pix[1], &stride[1], 1, 0, v_shift ); get_plane_ptr( h, src, &pix[1], &stride[1], 1, 0, v_shift );
h->mc.plane_copy_swap( dst->plane[1], dst->i_stride[1], (pixel*)pix[1], h->mc.plane_copy_swap( dst->plane[1], dst->i_stride[1], (pixel*)pix[1],
stride[1]/sizeof(pixel), h->param.i_width>>1, h->param.i_height>>v_shift ); stride[1]/SIZEOF_PIXEL, h->param.i_width>>1, h->param.i_height>>v_shift );
} }
else if( i_csp == X264_CSP_I420 || i_csp == X264_CSP_I422 || i_csp == X264_CSP_YV12 || i_csp == X264_CSP_YV16 ) else if( i_csp == X264_CSP_I420 || i_csp == X264_CSP_I422 || i_csp == X264_CSP_YV12 || i_csp == X264_CSP_YV16 )
{ {
...@@ -460,8 +460,8 @@ int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src ) ...@@ -460,8 +460,8 @@ int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src )
get_plane_ptr( h, src, &pix[1], &stride[1], uv_swap ? 2 : 1, 1, v_shift ); get_plane_ptr( h, src, &pix[1], &stride[1], uv_swap ? 2 : 1, 1, v_shift );
get_plane_ptr( h, src, &pix[2], &stride[2], uv_swap ? 1 : 2, 1, v_shift ); get_plane_ptr( h, src, &pix[2], &stride[2], uv_swap ? 1 : 2, 1, v_shift );
h->mc.plane_copy_interleave( dst->plane[1], dst->i_stride[1], h->mc.plane_copy_interleave( dst->plane[1], dst->i_stride[1],
(pixel*)pix[1], stride[1]/sizeof(pixel), (pixel*)pix[1], stride[1]/SIZEOF_PIXEL,
(pixel*)pix[2], stride[2]/sizeof(pixel), (pixel*)pix[2], stride[2]/SIZEOF_PIXEL,
h->param.i_width>>1, h->param.i_height>>v_shift ); h->param.i_width>>1, h->param.i_height>>v_shift );
} }
else if( i_csp == X264_CSP_I444 || i_csp == X264_CSP_YV24 ) else if( i_csp == X264_CSP_I444 || i_csp == X264_CSP_YV24 )
...@@ -469,9 +469,9 @@ int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src ) ...@@ -469,9 +469,9 @@ int x264_frame_copy_picture( x264_t *h, x264_frame_t *dst, x264_picture_t *src )
get_plane_ptr( h, src, &pix[1], &stride[1], i_csp==X264_CSP_I444 ? 1 : 2, 0, 0 ); get_plane_ptr( h, src, &pix[1], &stride[1], i_csp==X264_CSP_I444 ? 1 : 2, 0, 0 );
get_plane_ptr( h, src, &pix[2], &stride[2], i_csp==X264_CSP_I444 ? 2 : 1, 0, 0 ); get_plane_ptr( h, src, &pix[2], &stride[2], i_csp==X264_CSP_I444 ? 2 : 1, 0, 0 );
h->mc.plane_copy( dst->plane[1], dst->i_stride[1], (pixel*)pix[1], h->mc.plane_copy( dst->plane[1], dst->i_stride[1], (pixel*)pix[1],
stride[1]/sizeof(pixel), h->param.i_width, h->param.i_height ); stride[1]/SIZEOF_PIXEL, h->param.i_width, h->param.i_height );
h->mc.plane_copy( dst->plane[2], dst->i_stride[2], (pixel*)pix[2], h->mc.plane_copy( dst->plane[2], dst->i_stride[2], (pixel*)pix[2],
stride[2]/sizeof(pixel), h->param.i_width, h->param.i_height ); stride[2]/SIZEOF_PIXEL, h->param.i_width, h->param.i_height );
} }
} }
return 0; return 0;
...@@ -535,18 +535,18 @@ static ALWAYS_INLINE void plane_expand_border( pixel *pix, int i_stride, int i_w ...@@ -535,18 +535,18 @@ static ALWAYS_INLINE void plane_expand_border( pixel *pix, int i_stride, int i_w
for( int y = 0; y < i_height; y++ ) for( int y = 0; y < i_height; y++ )
{ {
/* left band */ /* left band */
pixel_memset( PPIXEL(-i_padh, y), PPIXEL(0, y), i_padh>>b_chroma, sizeof(pixel)<<b_chroma ); pixel_memset( PPIXEL(-i_padh, y), PPIXEL(0, y), i_padh>>b_chroma, SIZEOF_PIXEL<<b_chroma );
/* right band */ /* right band */
pixel_memset( PPIXEL(i_width, y), PPIXEL(i_width-1-b_chroma, y), i_padh>>b_chroma, sizeof(pixel)<<b_chroma ); pixel_memset( PPIXEL(i_width, y), PPIXEL(i_width-1-b_chroma, y), i_padh>>b_chroma, SIZEOF_PIXEL<<b_chroma );
} }
/* upper band */ /* upper band */
if( b_pad_top ) if( b_pad_top )
for( int y = 0; y < i_padv; y++ ) for( int y = 0; y < i_padv; y++ )
memcpy( PPIXEL(-i_padh, -y-1), PPIXEL(-i_padh, 0), (i_width+2*i_padh) * sizeof(pixel) ); memcpy( PPIXEL(-i_padh, -y-1), PPIXEL(-i_padh, 0), (i_width+2*i_padh) * SIZEOF_PIXEL );
/* lower band */ /* lower band */
if( b_pad_bottom ) if( b_pad_bottom )
for( int y = 0; y < i_padv; y++ ) for( int y = 0; y < i_padv; y++ )
memcpy( PPIXEL(-i_padh, i_height+y), PPIXEL(-i_padh, i_height-1), (i_width+2*i_padh) * sizeof(pixel) ); memcpy( PPIXEL(-i_padh, i_height+y), PPIXEL(-i_padh, i_height-1), (i_width+2*i_padh) * SIZEOF_PIXEL );
#undef PPIXEL #undef PPIXEL
} }
...@@ -650,14 +650,14 @@ void x264_frame_expand_border_mod16( x264_t *h, x264_frame_t *frame ) ...@@ -650,14 +650,14 @@ void x264_frame_expand_border_mod16( x264_t *h, x264_frame_t *frame )
for( int y = 0; y < i_height; y++ ) for( int y = 0; y < i_height; y++ )
pixel_memset( &frame->plane[i][y*frame->i_stride[i] + i_width], pixel_memset( &frame->plane[i][y*frame->i_stride[i] + i_width],
&frame->plane[i][y*frame->i_stride[i] + i_width - 1-h_shift], &frame->plane[i][y*frame->i_stride[i] + i_width - 1-h_shift],
i_padx>>h_shift, sizeof(pixel)<<h_shift ); i_padx>>h_shift, SIZEOF_PIXEL<<h_shift );
} }
if( i_pady ) if( i_pady )
{ {
for( int y = i_height; y < i_height + i_pady; y++ ) for( int y = i_height; y < i_height + i_pady; y++ )
memcpy( &frame->plane[i][y*frame->i_stride[i]], memcpy( &frame->plane[i][y*frame->i_stride[i]],
&frame->plane[i][(i_height-(~y&PARAM_INTERLACED)-1)*frame->i_stride[i]], &frame->plane[i][(i_height-(~y&PARAM_INTERLACED)-1)*frame->i_stride[i]],
(i_width + i_padx) * sizeof(pixel) ); (i_width + i_padx) * SIZEOF_PIXEL );
} }
} }
} }
...@@ -672,7 +672,7 @@ void x264_expand_border_mbpair( x264_t *h, int mb_x, int mb_y ) ...@@ -672,7 +672,7 @@ void x264_expand_border_mbpair( x264_t *h, int mb_x, int mb_y )
int pady = (h->mb.i_mb_height * 16 - h->param.i_height) >> v_shift; int pady = (h->mb.i_mb_height * 16 - h->param.i_height) >> v_shift;
pixel *fenc = h->fenc->plane[i] + 16*mb_x; pixel *fenc = h->fenc->plane[i] + 16*mb_x;
for( int y = height; y < height + pady; y++ ) for( int y = height; y < height + pady; y++ )
memcpy( fenc + y*stride, fenc + (height-1)*stride, 16*sizeof(pixel) ); memcpy( fenc + y*stride, fenc + (height-1)*stride, 16*SIZEOF_PIXEL );
} }
} }
...@@ -685,12 +685,14 @@ void x264_frame_cond_broadcast( x264_frame_t *frame, int i_lines_completed ) ...@@ -685,12 +685,14 @@ void x264_frame_cond_broadcast( x264_frame_t *frame, int i_lines_completed )
x264_pthread_mutex_unlock( &frame->mutex ); x264_pthread_mutex_unlock( &frame->mutex );
} }
void x264_frame_cond_wait( x264_frame_t *frame, int i_lines_completed ) int x264_frame_cond_wait( x264_frame_t *frame, int i_lines_completed )
{ {
int completed;
x264_pthread_mutex_lock( &frame->mutex ); x264_pthread_mutex_lock( &frame->mutex );
while( frame->i_lines_completed < i_lines_completed ) while( (completed = frame->i_lines_completed) < i_lines_completed && i_lines_completed >= 0 )
x264_pthread_cond_wait( &frame->cv, &frame->mutex ); x264_pthread_cond_wait( &frame->cv, &frame->mutex );
x264_pthread_mutex_unlock( &frame->mutex ); x264_pthread_mutex_unlock( &frame->mutex );
return completed;
} }
void x264_threadslice_cond_broadcast( x264_t *h, int pass ) void x264_threadslice_cond_broadcast( x264_t *h, int pass )
......