the HAIKU_FFMPEG_DEFINES and friends to the toplevel ffmpeg Jamfile. * Define the X86 CPU acceleration features in global Jamfile variables, so that we can build specific source files depending on those defines later (used for libavcodec_x86.a). * In config.h, a whole bunch of parsers were defined off, which was the actual reason why plain old .MPG files and also my .MTS streams with H.264 video gave only scrambled video. * Removed some files from the build by comparing which files are build by a pristine FFmpeg libavcodec Makefile. Attention: The following changes may break the GCC2 build: * Remove Haiku specific changes from - libavcodec/x86/cavsdsp_mmx.c - libavcodec/x86/dsputil_mmx.c - libavcodec/x86/h264dsp_mmx.c I will test this next after switching my GCC. If you are impatiant, the following changes were previously done to the pristine FFmpeg 0.5 files: libavcodec/x86/cavsdsp_mmx.c: * commented out line 426 to 429 libavcodec/x86/h264dsp_mmx.c * h264_loop_filter_strength_mmx2() was commented out. libavcodec/x86/dsputil_mmx.c * gmc_mmx() was commented out. * commented out line 2665 (assigning c->gmc) * commented out line 2786 (assigning c->h264_loop_filter_strength) However, I would now make similar changes by checking the GCC version. Also, the libavcodec/x86/dsputil_mmx.c:2786 was still assigning the dummy h264_loop_filter_strength_mmx2() version. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31506 a95241bf-73f2-0310-859d-f6bbb57e9c96
69 lines
1.4 KiB
Plaintext
69 lines
1.4 KiB
Plaintext
SubDir HAIKU_TOP src add-ons media plugins ffmpeg libavcodec x86 ;
|
|
|
|
SubDirHdrs [ FDirName $(SUBDIR) .. ] ;
|
|
SubDirHdrs [ FDirName $(SUBDIR) ../.. ] ;
|
|
SubDirHdrs [ FDirName $(SUBDIR) ../../libavutil ] ;
|
|
SubDirHdrs [ FDirName $(SUBDIR) ../../libswscale ] ;
|
|
|
|
# filter warnings we don't want here
|
|
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
|
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
|
|
|
SubDirCcFlags $(HAIKU_FFMPEG_GCC_EXTRA_FLAGS) ;
|
|
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
|
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
|
|
|
local mmxSources = ;
|
|
if $(HAIKU_FFMPEG_USE_MMX) = 1 {
|
|
mmxSources =
|
|
cpuid.c
|
|
cavsdsp_mmx.c
|
|
dsputil_mmx.c
|
|
# dsputilenc_mmx.c # For when we enable encoders.
|
|
fdct_mmx.c
|
|
# idct_mmx.c # GPL
|
|
idct_mmx_xvid.c
|
|
motion_est_mmx.c
|
|
mpegvideo_mmx.c
|
|
rv40dsp_mmx.c
|
|
simple_idct_mmx.c
|
|
vc1dsp_mmx.c
|
|
vp3dsp_mmx.c
|
|
vp6dsp_mmx.c
|
|
|
|
fft_mmx.nasm
|
|
dsputil_yasm.nasm
|
|
;
|
|
}
|
|
|
|
local sseSources = ;
|
|
#if $(HAIKU_FFMPEG_USE_SSE) = 1 {
|
|
if $(HAIKU_FFMPEG_USE_SSSE3) = 1 {
|
|
sseSources =
|
|
fft_sse.c
|
|
idct_sse2_xvid.c
|
|
vp3dsp_sse2.c
|
|
vp6dsp_sse2.c
|
|
h264_idct_sse2.nasm
|
|
h264_deblock_sse2.nasm
|
|
;
|
|
}
|
|
|
|
local amdSources = ;
|
|
if $(HAIKU_FFMPEG_USE_AMD3DNOW) = 1 {
|
|
amdSources =
|
|
fft_3dn.c
|
|
;
|
|
}
|
|
if $(HAIKU_FFMPEG_USE_AMD3DNOWEXT) = 1 {
|
|
amdSources +=
|
|
fft_3dn2.c
|
|
;
|
|
}
|
|
|
|
StaticLibrary libavcodec_x86.a :
|
|
$(mmxSources)
|
|
$(sseSources)
|
|
$(amdSources)
|
|
;
|