Changeset 7b0773e690a9c1388f4cfbe7c8fa3fa43a76e54c
- Timestamp:
- 19/05/07 23:43:16
(1 year ago)
- Author:
- Rémi Denis-Courmont <rem@videolan.org>
- git-committer:
- Rémi Denis-Courmont <rem@videolan.org> 1179610996 +0000
- git-parent:
[ce6766b628309d49350ed494fc61e86b11f7acd1]
- git-author:
- Rémi Denis-Courmont <rem@videolan.org> 1179610996 +0000
- Message:
Use a vlc_CPU() wrapper instead of (ab)using libvlc_global
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| raaa92c2 |
r7b0773e |
|
| 1163 | 1163 | #define CPU_CAPABILITY_ALTIVEC (1<<16) |
|---|
| 1164 | 1164 | #define CPU_CAPABILITY_FPU (1<<31) |
|---|
| | 1165 | VLC_EXPORT( unsigned, vlc_CPU, ( void ) ); |
|---|
| 1165 | 1166 | |
|---|
| 1166 | 1167 | /***************************************************************************** |
|---|
| rd3fe7f2 |
r7b0773e |
|
| 314 | 314 | mad_stream_options( &p_sys->mad_stream, MAD_OPTION_IGNORECRC ); |
|---|
| 315 | 315 | |
|---|
| 316 | | if( p_this->p_libvlc_global->i_cpu & CPU_CAPABILITY_FPU ) |
|---|
| | 316 | if( vlc_CPU() & CPU_CAPABILITY_FPU ) |
|---|
| 317 | 317 | p_filter->fmt_out.i_codec = VLC_FOURCC('f','l','3','2'); |
|---|
| 318 | 318 | else |
|---|
| r9025fab |
r7b0773e |
|
| 358 | 358 | /* Choose the linear PCM format (read the comment above about FPU |
|---|
| 359 | 359 | and float32) */ |
|---|
| 360 | | if( p_aout->p_libvlc_global->i_cpu & CPU_CAPABILITY_FPU ) |
|---|
| | 360 | if( vlc_CPU() & CPU_CAPABILITY_FPU ) |
|---|
| 361 | 361 | { |
|---|
| 362 | 362 | i_vlc_pcm_format = VLC_FOURCC('f','l','3','2'); |
|---|
| r512f81c |
r7b0773e |
|
| 122 | 122 | p_dec->fmt_out.i_cat = AUDIO_ES; |
|---|
| 123 | 123 | |
|---|
| 124 | | if (p_this->p_libvlc_global->i_cpu & CPU_CAPABILITY_FPU) |
|---|
| | 124 | if (vlc_CPU() & CPU_CAPABILITY_FPU) |
|---|
| 125 | 125 | p_dec->fmt_out.i_codec = VLC_FOURCC('f','l','3','2'); |
|---|
| 126 | 126 | else |
|---|
| … | … | |
| 157 | 157 | /* Set the faad config */ |
|---|
| 158 | 158 | cfg = faacDecGetCurrentConfiguration( p_sys->hfaad ); |
|---|
| 159 | | if (p_this->p_libvlc_global->i_cpu & CPU_CAPABILITY_FPU) |
|---|
| | 159 | if (vlc_CPU() & CPU_CAPABILITY_FPU) |
|---|
| 160 | 160 | cfg->outputFormat = FAAD_FMT_FLOAT; |
|---|
| 161 | 161 | else |
|---|
| … | … | |
| 433 | 433 | |
|---|
| 434 | 434 | /* Do the actual reordering */ |
|---|
| 435 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_FPU ) |
|---|
| | 435 | if( vlc_CPU() & CPU_CAPABILITY_FPU ) |
|---|
| 436 | 436 | for( i = 0; i < i_samples; i++ ) |
|---|
| 437 | 437 | for( j = 0; j < i_nb_channels; j++ ) |
|---|
| r9025fab |
r7b0773e |
|
| 262 | 262 | |
|---|
| 263 | 263 | /* Set CPU capabilities */ |
|---|
| | 264 | unsigned i_cpu = vlc_CPU(); |
|---|
| 264 | 265 | p_context->dsp_mask = 0; |
|---|
| 265 | | if( !(p_enc->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| | 266 | if( !(i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| 266 | 267 | { |
|---|
| 267 | 268 | p_context->dsp_mask |= FF_MM_MMX; |
|---|
| 268 | 269 | } |
|---|
| 269 | | if( !(p_enc->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| | 270 | if( !(i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| 270 | 271 | { |
|---|
| 271 | 272 | p_context->dsp_mask |= FF_MM_MMXEXT; |
|---|
| 272 | 273 | } |
|---|
| 273 | | if( !(p_enc->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW) ) |
|---|
| | 274 | if( !(i_cpu & CPU_CAPABILITY_3DNOW) ) |
|---|
| 274 | 275 | { |
|---|
| 275 | 276 | p_context->dsp_mask |= FF_MM_3DNOW; |
|---|
| 276 | 277 | } |
|---|
| 277 | | if( !(p_enc->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| | 278 | if( !(i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| 278 | 279 | { |
|---|
| 279 | 280 | p_context->dsp_mask |= FF_MM_SSE; |
|---|
| r4fc4b04 |
r7b0773e |
|
| 235 | 235 | #endif |
|---|
| 236 | 236 | |
|---|
| 237 | | var_Create( p_module->p_libvlc_global, "avcodec", VLC_VAR_MUTEX ); |
|---|
| | 237 | var_Create( (vlc_object_t *)p_module->p_libvlc_global, "avcodec", |
|---|
| | 238 | VLC_VAR_MUTEX ); |
|---|
| 238 | 239 | |
|---|
| 239 | 240 | vlc_module_end(); |
|---|
| … | … | |
| 285 | 286 | |
|---|
| 286 | 287 | /* Set CPU capabilities */ |
|---|
| | 288 | unsigned i_cpu = vlc_CPU(); |
|---|
| 287 | 289 | p_context->dsp_mask = 0; |
|---|
| 288 | | if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| | 290 | if( !(i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| 289 | 291 | { |
|---|
| 290 | 292 | p_context->dsp_mask |= FF_MM_MMX; |
|---|
| 291 | 293 | } |
|---|
| 292 | | if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| | 294 | if( !(i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| 293 | 295 | { |
|---|
| 294 | 296 | p_context->dsp_mask |= FF_MM_MMXEXT; |
|---|
| 295 | 297 | } |
|---|
| 296 | | if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW) ) |
|---|
| | 298 | if( !(i_cpu & CPU_CAPABILITY_3DNOW) ) |
|---|
| 297 | 299 | { |
|---|
| 298 | 300 | p_context->dsp_mask |= FF_MM_3DNOW; |
|---|
| 299 | 301 | } |
|---|
| 300 | | if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| | 302 | if( !(i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| 301 | 303 | { |
|---|
| 302 | 304 | p_context->dsp_mask |= FF_MM_SSE; |
|---|
| 303 | 305 | } |
|---|
| 304 | | if( !(p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE2) ) |
|---|
| | 306 | if( !(i_cpu & CPU_CAPABILITY_SSE2) ) |
|---|
| 305 | 307 | { |
|---|
| 306 | 308 | p_context->dsp_mask |= FF_MM_SSE2; |
|---|
| … | … | |
| 338 | 340 | vlc_value_t lockval; |
|---|
| 339 | 341 | |
|---|
| 340 | | var_Get( p_dec->p_libvlc_global, "avcodec", &lockval ); |
|---|
| | 342 | var_Get( (vlc_object_t *)p_dec->p_libvlc_global, "avcodec", &lockval ); |
|---|
| 341 | 343 | |
|---|
| 342 | 344 | switch( p_sys->i_cat ) |
|---|
| … | … | |
| 427 | 429 | vlc_value_t lockval; |
|---|
| 428 | 430 | |
|---|
| 429 | | var_Get( p_object->p_libvlc_global, "avcodec", &lockval ); |
|---|
| | 431 | var_Get( (vlc_object_t *)p_object->p_libvlc_global, "avcodec", &lockval ); |
|---|
| 430 | 432 | vlc_mutex_lock( lockval.p_address ); |
|---|
| 431 | 433 | |
|---|
| rd3fe7f2 |
r7b0773e |
|
| 123 | 123 | { |
|---|
| 124 | 124 | video_postproc_sys_t *p_sys = (video_postproc_sys_t *)p_data; |
|---|
| 125 | | int32_t i_cpu = p_dec->p_libvlc_global->i_cpu; |
|---|
| | 125 | unsigned i_cpu = vlc_CPU(); |
|---|
| 126 | 126 | int i_flags = 0; |
|---|
| 127 | 127 | |
|---|
| r89daefd |
r7b0773e |
|
| 116 | 116 | |
|---|
| 117 | 117 | /* Set CPU capabilities */ |
|---|
| | 118 | unsigned i_cpu = vlc_CPU(); |
|---|
| 118 | 119 | p_sys->i_cpu_mask = 0; |
|---|
| 119 | | if( p_filter->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX ) |
|---|
| | 120 | if( i_cpu & CPU_CAPABILITY_MMX ) |
|---|
| 120 | 121 | { |
|---|
| 121 | 122 | p_sys->i_cpu_mask |= SWS_CPU_CAPS_MMX; |
|---|
| 122 | 123 | } |
|---|
| 123 | | if( p_filter->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT ) |
|---|
| | 124 | if( i_cpu & CPU_CAPABILITY_MMXEXT ) |
|---|
| 124 | 125 | { |
|---|
| 125 | 126 | p_sys->i_cpu_mask |= SWS_CPU_CAPS_MMX2; |
|---|
| 126 | 127 | } |
|---|
| 127 | | if( p_filter->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW ) |
|---|
| | 128 | if( i_cpu & CPU_CAPABILITY_3DNOW ) |
|---|
| 128 | 129 | { |
|---|
| 129 | 130 | p_sys->i_cpu_mask |= SWS_CPU_CAPS_3DNOW; |
|---|
| 130 | 131 | } |
|---|
| 131 | | if( p_filter->p_libvlc_global->i_cpu & CPU_CAPABILITY_ALTIVEC ) |
|---|
| | 132 | if( i_cpu & CPU_CAPABILITY_ALTIVEC ) |
|---|
| 132 | 133 | { |
|---|
| 133 | 134 | p_sys->i_cpu_mask |= SWS_CPU_CAPS_ALTIVEC; |
|---|
| r5021c9c |
r7b0773e |
|
| 149 | 149 | |
|---|
| 150 | 150 | #if defined( __i386__ ) || defined( __x86_64__ ) |
|---|
| 151 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX ) |
|---|
| | 151 | if( vlc_CPU() & CPU_CAPABILITY_MMX ) |
|---|
| 152 | 152 | { |
|---|
| 153 | 153 | i_accel |= MPEG2_ACCEL_X86_MMX; |
|---|
| 154 | 154 | } |
|---|
| 155 | 155 | |
|---|
| 156 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW ) |
|---|
| | 156 | if( vlc_CPU() & CPU_CAPABILITY_3DNOW ) |
|---|
| 157 | 157 | { |
|---|
| 158 | 158 | i_accel |= MPEG2_ACCEL_X86_3DNOW; |
|---|
| 159 | 159 | } |
|---|
| 160 | 160 | |
|---|
| 161 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT ) |
|---|
| | 161 | if( vlc_CPU() & CPU_CAPABILITY_MMXEXT ) |
|---|
| 162 | 162 | { |
|---|
| 163 | 163 | i_accel |= MPEG2_ACCEL_X86_MMXEXT; |
|---|
| … | … | |
| 165 | 165 | |
|---|
| 166 | 166 | #elif defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc64__ ) |
|---|
| 167 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_ALTIVEC ) |
|---|
| | 167 | if( vlc_CPU() & CPU_CAPABILITY_ALTIVEC ) |
|---|
| 168 | 168 | { |
|---|
| 169 | 169 | i_accel |= MPEG2_ACCEL_PPC_ALTIVEC; |
|---|
| r72d1dd3 |
r7b0773e |
|
| 1115 | 1115 | p_sys->param.i_fps_den = p_enc->fmt_in.video.i_frame_rate_base; |
|---|
| 1116 | 1116 | } |
|---|
| 1117 | | if( !(p_enc->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| | 1117 | |
|---|
| | 1118 | unsigned i_cpu = vlc_CPU(); |
|---|
| | 1119 | if( !(i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| 1118 | 1120 | { |
|---|
| 1119 | 1121 | p_sys->param.cpu &= ~X264_CPU_MMX; |
|---|
| 1120 | 1122 | } |
|---|
| 1121 | | if( !(p_enc->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| | 1123 | if( !(i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| 1122 | 1124 | { |
|---|
| 1123 | 1125 | p_sys->param.cpu &= ~X264_CPU_MMXEXT; |
|---|
| 1124 | 1126 | } |
|---|
| 1125 | | if( !(p_enc->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| | 1127 | if( !(i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| 1126 | 1128 | { |
|---|
| 1127 | 1129 | p_sys->param.cpu &= ~X264_CPU_SSE; |
|---|
| 1128 | 1130 | } |
|---|
| 1129 | | if( !(p_enc->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE2) ) |
|---|
| | 1131 | if( !(i_cpu & CPU_CAPABILITY_SSE2) ) |
|---|
| 1130 | 1132 | { |
|---|
| 1131 | 1133 | p_sys->param.cpu &= ~X264_CPU_SSE2; |
|---|
| r5c0e385 |
r7b0773e |
|
| 153 | 153 | |
|---|
| 154 | 154 | #if defined( __i386__ ) |
|---|
| 155 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX ) |
|---|
| | 155 | if( vlc_CPU() & CPU_CAPABILITY_MMX ) |
|---|
| 156 | 156 | { |
|---|
| 157 | 157 | i_accel |= MPEG2_ACCEL_X86_MMX; |
|---|
| 158 | 158 | } |
|---|
| 159 | 159 | |
|---|
| 160 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW ) |
|---|
| | 160 | if( vlc_CPU() & CPU_CAPABILITY_3DNOW ) |
|---|
| 161 | 161 | { |
|---|
| 162 | 162 | i_accel |= MPEG2_ACCEL_X86_3DNOW; |
|---|
| 163 | 163 | } |
|---|
| 164 | 164 | |
|---|
| 165 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT ) |
|---|
| | 165 | if( vlc_CPU() & CPU_CAPABILITY_MMXEXT ) |
|---|
| 166 | 166 | { |
|---|
| 167 | 167 | i_accel |= MPEG2_ACCEL_X86_MMXEXT; |
|---|
| … | … | |
| 169 | 169 | |
|---|
| 170 | 170 | #elif defined( __powerpc__ ) || defined( SYS_DARWIN ) |
|---|
| 171 | | if( p_dec->p_libvlc_global->i_cpu & CPU_CAPABILITY_ALTIVEC ) |
|---|
| | 171 | if( vlc_CPU() & CPU_CAPABILITY_ALTIVEC ) |
|---|
| 172 | 172 | { |
|---|
| 173 | 173 | i_accel |= MPEG2_ACCEL_PPC_ALTIVEC; |
|---|
| r6f087f5 |
r7b0773e |
|
| 353 | 353 | |
|---|
| 354 | 354 | /* Set CPU capabilities */ |
|---|
| | 355 | unsigned i_cpu = vlc_CPU(); |
|---|
| 355 | 356 | id->ff_enc_c->dsp_mask = 0; |
|---|
| 356 | | if( !(p_stream->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| | 357 | if( !(i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| 357 | 358 | { |
|---|
| 358 | 359 | id->ff_enc_c->dsp_mask |= FF_MM_MMX; |
|---|
| 359 | 360 | } |
|---|
| 360 | | if( !(p_stream->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| | 361 | if( !(i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| 361 | 362 | { |
|---|
| 362 | 363 | id->ff_enc_c->dsp_mask |= FF_MM_MMXEXT; |
|---|
| 363 | 364 | } |
|---|
| 364 | | if( !(p_stream->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW) ) |
|---|
| | 365 | if( !(i_cpu & CPU_CAPABILITY_3DNOW) ) |
|---|
| 365 | 366 | { |
|---|
| 366 | 367 | id->ff_enc_c->dsp_mask |= FF_MM_3DNOW; |
|---|
| 367 | 368 | } |
|---|
| 368 | | if( !(p_stream->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| | 369 | if( !(i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| 369 | 370 | { |
|---|
| 370 | 371 | id->ff_enc_c->dsp_mask |= FF_MM_SSE; |
|---|
| … | … | |
| 726 | 727 | |
|---|
| 727 | 728 | /* Set CPU capabilities */ |
|---|
| | 729 | unsigned i_cpu = vlc_CPU(); |
|---|
| 728 | 730 | id->ff_enc_c->dsp_mask = 0; |
|---|
| 729 | | if( !(p_stream->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| | 731 | if( !(i_cpu & CPU_CAPABILITY_MMX) ) |
|---|
| 730 | 732 | { |
|---|
| 731 | 733 | id->ff_enc_c->dsp_mask |= FF_MM_MMX; |
|---|
| 732 | 734 | } |
|---|
| 733 | | if( !(p_stream->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| | 735 | if( !(i_cpu & CPU_CAPABILITY_MMXEXT) ) |
|---|
| 734 | 736 | { |
|---|
| 735 | 737 | id->ff_enc_c->dsp_mask |= FF_MM_MMXEXT; |
|---|
| 736 | 738 | } |
|---|
| 737 | | if( !(p_stream->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW) ) |
|---|
| | 739 | if( !(i_cpu & CPU_CAPABILITY_3DNOW) ) |
|---|
| 738 | 740 | { |
|---|
| 739 | 741 | id->ff_enc_c->dsp_mask |= FF_MM_3DNOW; |
|---|
| 740 | 742 | } |
|---|
| 741 | | if( !(p_stream->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| | 743 | if( !(i_cpu & CPU_CAPABILITY_SSE) ) |
|---|
| 742 | 744 | { |
|---|
| 743 | 745 | id->ff_enc_c->dsp_mask |= FF_MM_SSE; |
|---|
| r6ec82b0 |
r7b0773e |
|
| 208 | 208 | |
|---|
| 209 | 209 | #if defined(CAN_COMPILE_C_ALTIVEC) |
|---|
| 210 | | if( p_vout->p_libvlc_global->i_cpu & CPU_CAPABILITY_ALTIVEC ) |
|---|
| | 210 | if( vlc_CPU() & CPU_CAPABILITY_ALTIVEC ) |
|---|
| 211 | 211 | { |
|---|
| 212 | 212 | p_vout->p_sys->pf_merge = MergeAltivec; |
|---|
| … | … | |
| 216 | 216 | #endif |
|---|
| 217 | 217 | #if defined(CAN_COMPILE_SSE) |
|---|
| 218 | | if( p_vout->p_libvlc_global->i_cpu & CPU_CAPABILITY_SSE2 ) |
|---|
| | 218 | if( vlc_CPU() & CPU_CAPABILITY_SSE2 ) |
|---|
| 219 | 219 | { |
|---|
| 220 | 220 | p_vout->p_sys->pf_merge = MergeSSE2; |
|---|
| … | … | |
| 224 | 224 | #endif |
|---|
| 225 | 225 | #if defined(CAN_COMPILE_MMXEXT) |
|---|
| 226 | | if( p_vout->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT ) |
|---|
| | 226 | if( vlc_CPU() & CPU_CAPABILITY_MMXEXT ) |
|---|
| 227 | 227 | { |
|---|
| 228 | 228 | p_vout->p_sys->pf_merge = MergeMMXEXT; |
|---|
| … | … | |
| 232 | 232 | #endif |
|---|
| 233 | 233 | #if defined(CAN_COMPILE_3DNOW) |
|---|
| 234 | | if( p_vout->p_libvlc_global->i_cpu & CPU_CAPABILITY_3DNOW ) |
|---|
| | 234 | if( vlc_CPU() & CPU_CAPABILITY_3DNOW ) |
|---|
| 235 | 235 | { |
|---|
| 236 | 236 | p_vout->p_sys->pf_merge = Merge3DNow; |
|---|
| … | … | |
| 1966 | 1966 | |
|---|
| 1967 | 1967 | #ifdef CAN_COMPILE_MMXEXT |
|---|
| 1968 | | if( p_vout->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT ) |
|---|
| | 1968 | if( vlc_CPU & CPU_CAPABILITY_MMXEXT ) |
|---|
| 1969 | 1969 | XDeintBand8x8MMXEXT( dst, i_dst, src, i_src, i_mbx, i_modx ); |
|---|
| 1970 | 1970 | else |
|---|
| … | … | |
| 1993 | 1993 | |
|---|
| 1994 | 1994 | #ifdef CAN_COMPILE_MMXEXT |
|---|
| 1995 | | if( p_vout->p_libvlc_global->i_cpu & CPU_CAPABILITY_MMXEXT ) |
|---|
| | 1995 | if( vlc_CPU & CPU_CAPABILITY_MMXEXT ) |
|---|
| 1996 | 1996 | emms(); |
|---|
| 1997 | 1997 | #endif |
|---|
| rba04cf9 |
r7b0773e |
|
| 174 | 174 | { |
|---|
| 175 | 175 | /* Guess what CPU we have */ |
|---|
| 176 | | libvlc_global.i_cpu = CPUCapabilities(); |
|---|
| | 176 | cpu_flags = CPUCapabilities(); |
|---|
| 177 | 177 | /* The module bank will be initialized later */ |
|---|
| 178 | 178 | libvlc_global.p_module_bank = NULL; |
|---|
| … | … | |
| 729 | 729 | |
|---|
| 730 | 730 | if( !config_GetInt( p_libvlc, "fpu" ) ) |
|---|
| 731 | | libvlc_global.i_cpu &= ~CPU_CAPABILITY_FPU; |
|---|
| | 731 | cpu_flags &= ~CPU_CAPABILITY_FPU; |
|---|
| 732 | 732 | |
|---|
| 733 | 733 | #if defined( __i386__ ) || defined( __x86_64__ ) |
|---|
| 734 | 734 | if( !config_GetInt( p_libvlc, "mmx" ) ) |
|---|
| 735 | | libvlc_global.i_cpu &= ~CPU_CAPABILITY_MMX; |
|---|
| | 735 | cpu_flags &= ~CPU_CAPABILITY_MMX; |
|---|
| 736 | 736 | if( !config_GetInt( p_libvlc, "3dn" ) ) |
|---|
| 737 | | libvlc_global.i_cpu &= ~CPU_CAPABILITY_3DNOW; |
|---|
| | 737 | cpu_flags &= ~CPU_CAPABILITY_3DNOW; |
|---|
| 738 | 738 | if( !config_GetInt( p_libvlc, "mmxext" ) ) |
|---|
| 739 | | libvlc_global.i_cpu &= ~CPU_CAPABILITY_MMXEXT; |
|---|
| | 739 | cpu_flags &= ~CPU_CAPABILITY_MMXEXT; |
|---|
| 740 | 740 | if( !config_GetInt( p_libvlc, "sse" ) ) |
|---|
| 741 | | libvlc_global.i_cpu &= ~CPU_CAPABILITY_SSE; |
|---|
| | 741 | cpu_flags &= ~CPU_CAPABILITY_SSE; |
|---|
| 742 | 742 | if( !config_GetInt( p_libvlc, "sse2" ) ) |
|---|
| 743 | | libvlc_global.i_cpu &= ~CPU_CAPABILITY_SSE2; |
|---|
| | 743 | cpu_flags &= ~CPU_CAPABILITY_SSE2; |
|---|
| 744 | 744 | #endif |
|---|
| 745 | 745 | #if defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc64__ ) |
|---|
| 746 | 746 | if( !config_GetInt( p_libvlc, "altivec" ) ) |
|---|
| 747 | | libvlc_global.i_cpu &= ~CPU_CAPABILITY_ALTIVEC; |
|---|
| | 747 | cpu_flags &= ~CPU_CAPABILITY_ALTIVEC; |
|---|
| 748 | 748 | #endif |
|---|
| 749 | 749 | |
|---|
| 750 | 750 | #define PRINT_CAPABILITY( capability, string ) \ |
|---|
| 751 | | if( libvlc_global.i_cpu & capability ) \ |
|---|
| | 751 | if( vlc_CPU() & capability ) \ |
|---|
| 752 | 752 | { \ |
|---|
| 753 | 753 | strncat( p_capabilities, string " ", \ |
|---|
| rd3fe7f2 |
r7b0773e |
|
| 52 | 52 | static int i_illegal; |
|---|
| 53 | 53 | #if defined( __i386__ ) || defined( __x86_64__ ) |
|---|
| 54 | | static char *psz_capability; |
|---|
| | 54 | static const char *psz_capability; |
|---|
| 55 | 55 | #endif |
|---|
| 56 | 56 | #endif |
|---|
| … | … | |
| 61 | 61 | * This function is called to list extensions the CPU may have. |
|---|
| 62 | 62 | *****************************************************************************/ |
|---|
| 63 | | uint32_t CPUCapabilities( void ) |
|---|
| | 63 | static uint32_t CPUCapabilities( void ) |
|---|
| 64 | 64 | { |
|---|
| 65 | 65 | volatile uint32_t i_capabilities = CPU_CAPABILITY_NONE; |
|---|
| … | … | |
| 339 | 339 | #endif |
|---|
| 340 | 340 | |
|---|
| | 341 | |
|---|
| | 342 | extern uint32_t cpu_flags = 0; |
|---|
| | 343 | |
|---|
| | 344 | |
|---|
| | 345 | /***************************************************************************** |
|---|
| | 346 | * vlc_CPU: get pre-computed CPU capability flags |
|---|
| | 347 | ****************************************************************************/ |
|---|
| | 348 | unsigned vlc_CPU (void) |
|---|
| | 349 | { |
|---|
| | 350 | return cpu_flags; |
|---|
| | 351 | } |
|---|
| | 352 | |
|---|