* More cleanup and removal of code duplication in the Jamfiles. Moved
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
This commit is contained in:
@@ -32,6 +32,57 @@ Addon ffmpeg :
|
|||||||
$(TARGET_LIBSUPC++)
|
$(TARGET_LIBSUPC++)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
# FFmpeg libs configuration is in the config.h header. Architecture specific
|
||||||
|
# defines have been commented out there and are being defined here instead.
|
||||||
|
# NOTE: These are intentionally global variables, so we can re-use them in
|
||||||
|
# sub-folders.
|
||||||
|
HAIKU_FFMPEG_DEFINES = HAVE_AV_CONFIG_H _FILE_OFFSET_BITS=64
|
||||||
|
_LARGEFILE_SOURCE ;
|
||||||
|
HAIKU_FFMPEG_USE_MMX = 1 ;
|
||||||
|
HAIKU_FFMPEG_USE_MMX2 = 1 ;
|
||||||
|
HAIKU_FFMPEG_USE_SSE = 0 ;
|
||||||
|
HAIKU_FFMPEG_USE_SSSE3 = 1 ;
|
||||||
|
HAIKU_FFMPEG_USE_AMD3DNOW = 0 ;
|
||||||
|
HAIKU_FFMPEG_USE_AMD3DNOWEXT = 0 ;
|
||||||
|
HAIKU_FFMPEG_GCC_EXTRA_FLAGS = ;
|
||||||
|
if $(HAIKU_GCC_VERSION[1]) >= 3 {
|
||||||
|
HAIKU_FFMPEG_GCC_EXTRA_FLAGS = -fomit-frame-pointer -fno-pic ;
|
||||||
|
} else {
|
||||||
|
HAIKU_FFMPEG_GCC_EXTRA_FLAGS = -fomit-frame-pointer -DPIC ;
|
||||||
|
}
|
||||||
|
|
||||||
|
if $(TARGET_ARCH) = x86 {
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_X86=1 ARCH_X86_32=1 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_PPC=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_SPARC=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_AMD3DNOW=$(HAIKU_FFMPEG_USE_AMD3DNOW) ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_AMD3DNOWEXT=$(HAIKU_FFMPEG_USE_AMD3DNOWEXT) ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_MMX=$(HAIKU_FFMPEG_USE_MMX) ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_MMX2=$(HAIKU_FFMPEG_USE_MMX2) ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_SSE=$(HAIKU_FFMPEG_USE_SSE) ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_SSSE3=$(HAIKU_FFMPEG_USE_SSSE3) ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_ALTIVEC=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_VIS=0 ;
|
||||||
|
} else if $(TARGET_ARCH) = ppc {
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_X86=0 ARCH_X86_32=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_PPC=1 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_SPARC=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_MMX=0 HAVE_MMX2=0 HAVE_SSE=0 HAVE_SSSE3=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_ALTIVEC=1 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_VIS=0 ;
|
||||||
|
} else if $(TARGET_ARCH) = sparc {
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_X86=0 ARCH_X86_32=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_PPC=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += ARCH_SPARC=1 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_MMX=0 HAVE_MMX2=0 HAVE_SSE=0 HAVE_SSSE3=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_ALTIVEC=0 ;
|
||||||
|
HAIKU_FFMPEG_DEFINES += HAVE_VIS=1 ;
|
||||||
|
}
|
||||||
|
|
||||||
|
HAIKU_FFMPEG_DEFINES = [ FDefines $(HAIKU_FFMPEG_DEFINES) ] ;
|
||||||
|
|
||||||
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavcodec ;
|
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavcodec ;
|
||||||
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavformat ;
|
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavformat ;
|
||||||
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavutil ;
|
SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libavutil ;
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
#define HAVE_SYS_SELECT_H 1
|
#define HAVE_SYS_SELECT_H 1
|
||||||
#define HAVE_SYS_SOUNDCARD_H 0
|
#define HAVE_SYS_SOUNDCARD_H 0
|
||||||
#define HAVE_SYS_VIDEOIO_H 0
|
#define HAVE_SYS_VIDEOIO_H 0
|
||||||
#define HAVE_TEN_OPERANDS 0
|
#define HAVE_TEN_OPERANDS 1
|
||||||
#define HAVE_TERMIOS_H 1
|
#define HAVE_TERMIOS_H 1
|
||||||
#define HAVE_THREADS 1
|
#define HAVE_THREADS 1
|
||||||
#define HAVE_TRUNCF 1
|
#define HAVE_TRUNCF 1
|
||||||
@@ -485,25 +485,25 @@
|
|||||||
#define CONFIG_LIBVORBIS_ENCODER 0
|
#define CONFIG_LIBVORBIS_ENCODER 0
|
||||||
#define CONFIG_LIBX264_ENCODER 0
|
#define CONFIG_LIBX264_ENCODER 0
|
||||||
#define CONFIG_LIBXVID_ENCODER 0
|
#define CONFIG_LIBXVID_ENCODER 0
|
||||||
#define CONFIG_AAC_PARSER 0
|
#define CONFIG_AAC_PARSER 1
|
||||||
#define CONFIG_AC3_PARSER 0
|
#define CONFIG_AC3_PARSER 1
|
||||||
#define CONFIG_CAVSVIDEO_PARSER 0
|
#define CONFIG_CAVSVIDEO_PARSER 1
|
||||||
#define CONFIG_DCA_PARSER 0
|
#define CONFIG_DCA_PARSER 1
|
||||||
#define CONFIG_DIRAC_PARSER 0
|
#define CONFIG_DIRAC_PARSER 1
|
||||||
#define CONFIG_DNXHD_PARSER 0
|
#define CONFIG_DNXHD_PARSER 1
|
||||||
#define CONFIG_DVBSUB_PARSER 0
|
#define CONFIG_DVBSUB_PARSER 1
|
||||||
#define CONFIG_DVDSUB_PARSER 0
|
#define CONFIG_DVDSUB_PARSER 1
|
||||||
#define CONFIG_H261_PARSER 0
|
#define CONFIG_H261_PARSER 1
|
||||||
#define CONFIG_H263_PARSER 0
|
#define CONFIG_H263_PARSER 1
|
||||||
#define CONFIG_H264_PARSER 0
|
#define CONFIG_H264_PARSER 1
|
||||||
#define CONFIG_MJPEG_PARSER 0
|
#define CONFIG_MJPEG_PARSER 1
|
||||||
#define CONFIG_MLP_PARSER 0
|
#define CONFIG_MLP_PARSER 1
|
||||||
#define CONFIG_MPEG4VIDEO_PARSER 0
|
#define CONFIG_MPEG4VIDEO_PARSER 1
|
||||||
#define CONFIG_MPEGAUDIO_PARSER 0
|
#define CONFIG_MPEGAUDIO_PARSER 1
|
||||||
#define CONFIG_MPEGVIDEO_PARSER 0
|
#define CONFIG_MPEGVIDEO_PARSER 1
|
||||||
#define CONFIG_PNM_PARSER 0
|
#define CONFIG_PNM_PARSER 1
|
||||||
#define CONFIG_VC1_PARSER 0
|
#define CONFIG_VC1_PARSER 1
|
||||||
#define CONFIG_VP3_PARSER 0
|
#define CONFIG_VP3_PARSER 1
|
||||||
#define CONFIG_DUMP_EXTRADATA_BSF 1
|
#define CONFIG_DUMP_EXTRADATA_BSF 1
|
||||||
#define CONFIG_H264_MP4TOANNEXB_BSF 1
|
#define CONFIG_H264_MP4TOANNEXB_BSF 1
|
||||||
#define CONFIG_IMX_DUMP_HEADER_BSF 1
|
#define CONFIG_IMX_DUMP_HEADER_BSF 1
|
||||||
|
|||||||
@@ -11,43 +11,7 @@ UseLibraryHeaders zlib ;
|
|||||||
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
||||||
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
||||||
|
|
||||||
if $(HAIKU_GCC_VERSION[1]) >= 3 {
|
SubDirCcFlags $(HAIKU_FFMPEG_GCC_EXTRA_FLAGS) ;
|
||||||
SubDirCcFlags -fomit-frame-pointer -fno-pic ;
|
|
||||||
} else {
|
|
||||||
SubDirCcFlags -fomit-frame-pointer -DPIC ;
|
|
||||||
}
|
|
||||||
|
|
||||||
# NOTE: This is intentionally a global variable, so we can re-use it in
|
|
||||||
# sub-folders.
|
|
||||||
HAIKU_FFMPEG_DEFINES = HAVE_AV_CONFIG_H=1 ;
|
|
||||||
|
|
||||||
if $(TARGET_ARCH) = x86 {
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_X86=1 ARCH_X86_32=1 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_PPC=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_SPARC=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_MMX=1 HAVE_MMX2=1 HAVE_SSE=0 HAVE_SSSE3=1 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_ALTIVEC=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_VIS=0 ;
|
|
||||||
} else if $(TARGET_ARCH) = ppc {
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_X86=0 ARCH_X86_32=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_PPC=1 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_SPARC=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_MMX=0 HAVE_MMX2=0 HAVE_SSE=0 HAVE_SSSE3=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_ALTIVEC=1 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_VIS=0 ;
|
|
||||||
} else if $(TARGET_ARCH) = sparc {
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_X86=0 ARCH_X86_32=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_PPC=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += ARCH_SPARC=1 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_MMX=0 HAVE_MMX2=0 HAVE_SSE=0 HAVE_SSSE3=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_ALTIVEC=0 ;
|
|
||||||
HAIKU_FFMPEG_DEFINES += HAVE_VIS=1 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
HAIKU_FFMPEG_DEFINES = [ FDefines $(HAIKU_FFMPEG_DEFINES) ] ;
|
|
||||||
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
|
|
||||||
@@ -100,6 +64,7 @@ StaticLibrary libavcodec.a :
|
|||||||
dca.c
|
dca.c
|
||||||
dca_parser.c
|
dca_parser.c
|
||||||
dirac_parser.c
|
dirac_parser.c
|
||||||
|
dnxhd_parser.c
|
||||||
dnxhddata.c
|
dnxhddata.c
|
||||||
dnxhddec.c
|
dnxhddec.c
|
||||||
dpcm.c
|
dpcm.c
|
||||||
@@ -126,7 +91,7 @@ StaticLibrary libavcodec.a :
|
|||||||
faandct.c
|
faandct.c
|
||||||
faanidct.c
|
faanidct.c
|
||||||
faxcompr.c
|
faxcompr.c
|
||||||
fdctref.c
|
# fdctref.c
|
||||||
fft.c
|
fft.c
|
||||||
ffv1.c
|
ffv1.c
|
||||||
flacdec.c
|
flacdec.c
|
||||||
@@ -147,7 +112,7 @@ StaticLibrary libavcodec.a :
|
|||||||
h264.c
|
h264.c
|
||||||
h264_mp4toannexb_bsf.c
|
h264_mp4toannexb_bsf.c
|
||||||
h264_parser.c
|
h264_parser.c
|
||||||
h264dspenc.c
|
# h264dspenc.c
|
||||||
h264idct.c
|
h264idct.c
|
||||||
h264pred.c
|
h264pred.c
|
||||||
huffman.c
|
huffman.c
|
||||||
@@ -155,6 +120,7 @@ StaticLibrary libavcodec.a :
|
|||||||
idcinvideo.c
|
idcinvideo.c
|
||||||
imc.c
|
imc.c
|
||||||
imgconvert.c
|
imgconvert.c
|
||||||
|
imgresample.c
|
||||||
imx_dump_header_bsf.c
|
imx_dump_header_bsf.c
|
||||||
indeo2.c
|
indeo2.c
|
||||||
indeo3.c
|
indeo3.c
|
||||||
@@ -172,9 +138,9 @@ StaticLibrary libavcodec.a :
|
|||||||
# ljpegenc.c
|
# ljpegenc.c
|
||||||
loco.c
|
loco.c
|
||||||
lpc.c
|
lpc.c
|
||||||
lsp.c
|
# lsp.c
|
||||||
lzw.c
|
lzw.c
|
||||||
lzwenc.c
|
# lzwenc.c
|
||||||
mace.c
|
mace.c
|
||||||
mdct.c
|
mdct.c
|
||||||
mdec.c
|
mdec.c
|
||||||
@@ -246,7 +212,7 @@ StaticLibrary libavcodec.a :
|
|||||||
resample2.c
|
resample2.c
|
||||||
rl2.c
|
rl2.c
|
||||||
rle.c
|
rle.c
|
||||||
roqaudioenc.c
|
# roqaudioenc.c
|
||||||
roqvideo.c
|
roqvideo.c
|
||||||
roqvideodec.c
|
roqvideodec.c
|
||||||
# roqvideoenc.c
|
# roqvideoenc.c
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "libavutil/pixfmt.h"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Logs a generic warning message about a missing feature.
|
* Logs a generic warning message about a missing feature.
|
||||||
|
|||||||
@@ -9,15 +9,10 @@ SubDirHdrs [ FDirName $(SUBDIR) ../../libswscale ] ;
|
|||||||
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
||||||
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
||||||
|
|
||||||
if $(HAIKU_GCC_VERSION[1]) >= 3 {
|
|
||||||
SubDirCcFlags -fomit-frame-pointer -fno-pic ;
|
|
||||||
} else {
|
|
||||||
SubDirCcFlags -fomit-frame-pointer -DPIC ;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Enable altivec support
|
# Enable altivec support
|
||||||
SubDirCcFlags -maltivec -mabi=altivec ;
|
SubDirCcFlags -maltivec -mabi=altivec ;
|
||||||
|
|
||||||
|
SubDirCcFlags $(HAIKU_FFMPEG_GCC_EXTRA_FLAGS) ;
|
||||||
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
|
|
||||||
|
|||||||
@@ -9,12 +9,7 @@ SubDirHdrs [ FDirName $(SUBDIR) ../../libswscale ] ;
|
|||||||
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
||||||
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
||||||
|
|
||||||
if $(HAIKU_GCC_VERSION[1]) >= 3 {
|
SubDirCcFlags $(HAIKU_FFMPEG_GCC_EXTRA_FLAGS) ;
|
||||||
SubDirCcFlags -fomit-frame-pointer -fno-pic ;
|
|
||||||
} else {
|
|
||||||
SubDirCcFlags -fomit-frame-pointer -DPIC ;
|
|
||||||
}
|
|
||||||
|
|
||||||
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
|
|
||||||
|
|||||||
@@ -9,39 +9,60 @@ SubDirHdrs [ FDirName $(SUBDIR) ../../libswscale ] ;
|
|||||||
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
||||||
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
||||||
|
|
||||||
if $(HAIKU_GCC_VERSION[1]) >= 3 {
|
SubDirCcFlags $(HAIKU_FFMPEG_GCC_EXTRA_FLAGS) ;
|
||||||
SubDirCcFlags -fomit-frame-pointer -fno-pic ;
|
|
||||||
} else {
|
|
||||||
SubDirCcFlags -fomit-frame-pointer -DPIC ;
|
|
||||||
}
|
|
||||||
|
|
||||||
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
|
|
||||||
StaticLibrary libavcodec_x86.a :
|
local mmxSources = ;
|
||||||
cpuid.c
|
if $(HAIKU_FFMPEG_USE_MMX) = 1 {
|
||||||
cavsdsp_mmx.c
|
mmxSources =
|
||||||
idct_mmx.c
|
cpuid.c
|
||||||
idct_mmx_xvid.c
|
cavsdsp_mmx.c
|
||||||
idct_sse2_xvid.c
|
dsputil_mmx.c
|
||||||
dsputil_mmx.c
|
# dsputilenc_mmx.c # For when we enable encoders.
|
||||||
# dsputilenc_mmx.c
|
fdct_mmx.c
|
||||||
fft_3dn.c
|
# idct_mmx.c # GPL
|
||||||
fft_3dn2.c
|
idct_mmx_xvid.c
|
||||||
fft_sse.c
|
motion_est_mmx.c
|
||||||
h264_idct_sse2.nasm
|
mpegvideo_mmx.c
|
||||||
h264_deblock_sse2.nasm
|
rv40dsp_mmx.c
|
||||||
fft_mmx.nasm
|
simple_idct_mmx.c
|
||||||
dsputil_yasm.nasm
|
vc1dsp_mmx.c
|
||||||
simple_idct_mmx.c
|
vp3dsp_mmx.c
|
||||||
motion_est_mmx.c
|
vp6dsp_mmx.c
|
||||||
mpegvideo_mmx.c
|
|
||||||
rv40dsp_mmx.c
|
|
||||||
vc1dsp_mmx.c
|
|
||||||
vp3dsp_mmx.c
|
|
||||||
vp3dsp_sse2.c
|
|
||||||
vp6dsp_mmx.c
|
|
||||||
vp6dsp_sse2.c
|
|
||||||
fdct_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)
|
||||||
|
;
|
||||||
|
|||||||
@@ -423,12 +423,10 @@ static void ff_ ## OPNAME ## cavs_qpel ## SIZE ## _mc03_ ## MMX(uint8_t *dst, ui
|
|||||||
"pavgb " #temp ", " #a " \n\t"\
|
"pavgb " #temp ", " #a " \n\t"\
|
||||||
"mov" #size " " #a ", " #b " \n\t"
|
"mov" #size " " #a ", " #b " \n\t"
|
||||||
|
|
||||||
#ifndef __HAIKU__
|
|
||||||
QPEL_CAVS(put_, PUT_OP, 3dnow)
|
QPEL_CAVS(put_, PUT_OP, 3dnow)
|
||||||
QPEL_CAVS(avg_, AVG_3DNOW_OP, 3dnow)
|
QPEL_CAVS(avg_, AVG_3DNOW_OP, 3dnow)
|
||||||
QPEL_CAVS(put_, PUT_OP, mmx2)
|
QPEL_CAVS(put_, PUT_OP, mmx2)
|
||||||
QPEL_CAVS(avg_, AVG_MMX2_OP, mmx2)
|
QPEL_CAVS(avg_, AVG_MMX2_OP, mmx2)
|
||||||
#endif
|
|
||||||
|
|
||||||
CAVS_MC(put_, 8, 3dnow)
|
CAVS_MC(put_, 8, 3dnow)
|
||||||
CAVS_MC(put_, 16,3dnow)
|
CAVS_MC(put_, 16,3dnow)
|
||||||
|
|||||||
@@ -1639,7 +1639,6 @@ QPEL_2TAP(avg_, 8, 3dnow)
|
|||||||
static void just_return(void) { return; }
|
static void just_return(void) { return; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __HAIKU__
|
|
||||||
static void gmc_mmx(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy,
|
static void gmc_mmx(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy,
|
||||||
int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height){
|
int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height){
|
||||||
const int w = 8;
|
const int w = 8;
|
||||||
@@ -1758,12 +1757,6 @@ static void gmc_mmx(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int o
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
static void gmc_mmx(uint8_t *dst, uint8_t *src, int stride, int h, int ox, int oy,
|
|
||||||
int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height){
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define PREFETCH(name, op) \
|
#define PREFETCH(name, op) \
|
||||||
static void name(void *mem, int stride, int h){\
|
static void name(void *mem, int stride, int h){\
|
||||||
const uint8_t *p= mem;\
|
const uint8_t *p= mem;\
|
||||||
@@ -2669,7 +2662,7 @@ void dsputil_init_mmx(DSPContext* c, AVCodecContext *avctx)
|
|||||||
SET_HPEL_FUNCS(avg, 1, 8, mmx);
|
SET_HPEL_FUNCS(avg, 1, 8, mmx);
|
||||||
SET_HPEL_FUNCS(avg_no_rnd, 1, 8, mmx);
|
SET_HPEL_FUNCS(avg_no_rnd, 1, 8, mmx);
|
||||||
|
|
||||||
c->gmc= ff_gmc_c;
|
c->gmc= gmc_mmx;
|
||||||
|
|
||||||
c->add_bytes= add_bytes_mmx;
|
c->add_bytes= add_bytes_mmx;
|
||||||
c->add_bytes_l2= add_bytes_l2_mmx;
|
c->add_bytes_l2= add_bytes_l2_mmx;
|
||||||
|
|||||||
@@ -792,8 +792,6 @@ static void h264_h_loop_filter_chroma_intra_mmx2(uint8_t *pix, int stride, int a
|
|||||||
transpose4x4(pix-2+4*stride, trans+4, stride, 8);
|
transpose4x4(pix-2+4*stride, trans+4, stride, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __HAIKU__
|
|
||||||
|
|
||||||
static void h264_loop_filter_strength_mmx2( int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2],
|
static void h264_loop_filter_strength_mmx2( int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2],
|
||||||
int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field ) {
|
int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field ) {
|
||||||
int dir;
|
int dir;
|
||||||
@@ -897,11 +895,6 @@ static void h264_loop_filter_strength_mmx2( int16_t bS[2][4][4], uint8_t nnz[40]
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
static void h264_loop_filter_strength_mmx2( int16_t bS[2][4][4], uint8_t nnz[40], int8_t ref[2][40], int16_t mv[2][40][2],
|
|
||||||
int bidir, int edges, int step, int mask_mv0, int mask_mv1, int field ) {
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/***********************************/
|
/***********************************/
|
||||||
/* motion compensation */
|
/* motion compensation */
|
||||||
|
|||||||
@@ -10,38 +10,9 @@ UseLibraryHeaders zlib ;
|
|||||||
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
||||||
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
||||||
|
|
||||||
if $(HAIKU_GCC_VERSION[1]) >= 3 {
|
SubDirCcFlags $(HAIKU_FFMPEG_GCC_EXTRA_FLAGS) ;
|
||||||
SubDirCcFlags -fomit-frame-pointer -fno-pic ;
|
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
} else {
|
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
SubDirCcFlags -fomit-frame-pointer -DPIC ;
|
|
||||||
}
|
|
||||||
|
|
||||||
local defines ;
|
|
||||||
defines = HAVE_AV_CONFIG_H=1 ;
|
|
||||||
|
|
||||||
if $(TARGET_ARCH) = x86 {
|
|
||||||
defines += ARCH_X86=1 ARCH_X86_32=1 ARCH_PPC=0 ARCH_SPARC=0 ;
|
|
||||||
defines += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
defines += HAVE_MMX=1 HAVE_MMX2=1 HAVE_SSE=0 HAVE_SSE3=1 ;
|
|
||||||
defines += HAVE_ALTIVEC=0 ;
|
|
||||||
defines += HAVE_VIS=0 ;
|
|
||||||
} else if $(TARGET_ARCH) = ppc {
|
|
||||||
defines += ARCH_X86=0 ARCH_X86_32=0 ARCH_PPC=1 ARCH_SPARC=0 ;
|
|
||||||
defines += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
defines += HAVE_MMX=0 HAVE_MMX2=0 HAVE_SSE=0 HAVE_SSE3=0 ;
|
|
||||||
defines += HAVE_ALTIVEC=1 ;
|
|
||||||
defines += HAVE_VIS=0 ;
|
|
||||||
} else if $(TARGET_ARCH) = sparc {
|
|
||||||
defines += ARCH_X86=0 ARCH_X86_32=0 ARCH_PPC=0 ARCH_SPARC=1 ;
|
|
||||||
defines += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
defines += HAVE_MMX=0 HAVE_MMX2=0 HAVE_SSE=0 HAVE_SSE3=0 ;
|
|
||||||
defines += HAVE_ALTIVEC=0 ;
|
|
||||||
defines += HAVE_VIS=1 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
defines = [ FDefines $(defines) ] ;
|
|
||||||
SubDirCcFlags $(defines) ;
|
|
||||||
SubDirC++Flags $(defines) ;
|
|
||||||
|
|
||||||
StaticLibrary libavformat.a :
|
StaticLibrary libavformat.a :
|
||||||
4xm.c
|
4xm.c
|
||||||
|
|||||||
@@ -7,8 +7,13 @@ TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
|||||||
SubDirHdrs [ FDirName $(SUBDIR) .. ] ;
|
SubDirHdrs [ FDirName $(SUBDIR) .. ] ;
|
||||||
SubDirHdrs [ FDirName $(SUBDIR) ../libavcodec ] ;
|
SubDirHdrs [ FDirName $(SUBDIR) ../libavcodec ] ;
|
||||||
|
|
||||||
SubDirCcFlags -fomit-frame-pointer -DPIC ;
|
# filter warnings we don't want here
|
||||||
#SubDirCcFlags -DHAVE_AV_CONFIG_H=1 ;
|
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) ;
|
||||||
|
|
||||||
StaticLibrary libavutil.a :
|
StaticLibrary libavutil.a :
|
||||||
adler32.c
|
adler32.c
|
||||||
|
|||||||
@@ -8,40 +8,20 @@ SubDirHdrs [ FDirName $(SUBDIR) ../libavcodec ] ;
|
|||||||
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS)
|
||||||
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
: -Wall -Wmissing-prototypes -Wsign-compare -Wpointer-arith ] ;
|
||||||
|
|
||||||
SubDirCcFlags -fomit-frame-pointer -DPIC ;
|
local archSources ;
|
||||||
|
archSources = ;
|
||||||
local arch_sources ;
|
|
||||||
arch_sources = ;
|
|
||||||
local defines ;
|
|
||||||
defines = HAVE_AV_CONFIG_H=1 ;
|
|
||||||
|
|
||||||
if $(TARGET_ARCH) = x86 {
|
if $(TARGET_ARCH) = x86 {
|
||||||
defines += ARCH_X86=1 ARCH_X86_32=1 ARCH_PPC=0 ARCH_SPARC=0 ;
|
|
||||||
defines += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
defines += HAVE_MMX=1 HAVE_MMX2=1 HAVE_SSE=0 HAVE_SSE3=1 ;
|
|
||||||
defines += HAVE_ALTIVEC=0 HAVE_ALTIVEC_H=0 ;
|
|
||||||
defines += HAVE_VIS=0 ;
|
|
||||||
} else if $(TARGET_ARCH) = ppc {
|
} else if $(TARGET_ARCH) = ppc {
|
||||||
defines += ARCH_X86=0 ARCH_X86_32=0 ARCH_PPC=1 ARCH_SPARC=0 ;
|
archSources = yuv2rgb_altivec.c ;
|
||||||
defines += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
defines += HAVE_MMX=0 HAVE_MMX2=0 HAVE_SSE=0 HAVE_SSE3=0 ;
|
|
||||||
defines += HAVE_ALTIVEC=1 HAVE_ALTIVEC_H=1 ;
|
|
||||||
defines += HAVE_VIS=0 ;
|
|
||||||
arch_sources = yuv2rgb_altivec.c ;
|
|
||||||
SubDirCcFlags -maltivec -mabi=altivec ;
|
SubDirCcFlags -maltivec -mabi=altivec ;
|
||||||
} else if $(TARGET_ARCH) = sparc {
|
} else if $(TARGET_ARCH) = sparc {
|
||||||
defines += ARCH_X86=0 ARCH_X86_32=0 ARCH_PPC=0 ARCH_SPARC=1 ;
|
archSources = yuv2rgb_vis.c ;
|
||||||
defines += HAVE_AMD3DNOW=0 HAVE_AMD3DNOWEXT=0 ;
|
|
||||||
defines += HAVE_MMX=0 HAVE_MMX2=0 HAVE_SSE=0 HAVE_SSE3=0 ;
|
|
||||||
defines += HAVE_ALTIVEC=0 HAVE_ALTIVEC_H=0 ;
|
|
||||||
defines += HAVE_VIS=1 ;
|
|
||||||
arch_sources = yuv2rgb_vis.c ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
defines = [ FDefines $(defines) ] ;
|
SubDirCcFlags $(HAIKU_FFMPEG_GCC_EXTRA_FLAGS) ;
|
||||||
SubDirCcFlags $(defines) ;
|
SubDirCcFlags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
SubDirC++Flags $(defines) ;
|
SubDirC++Flags $(HAIKU_FFMPEG_DEFINES) ;
|
||||||
|
|
||||||
|
|
||||||
StaticLibrary libswscale.a :
|
StaticLibrary libswscale.a :
|
||||||
rgb2rgb.c
|
rgb2rgb.c
|
||||||
@@ -49,5 +29,5 @@ StaticLibrary libswscale.a :
|
|||||||
swscale_avoption.c
|
swscale_avoption.c
|
||||||
yuv2rgb.c
|
yuv2rgb.c
|
||||||
|
|
||||||
$(arch_sources)
|
$(archSources)
|
||||||
;
|
;
|
||||||
|
|||||||
Reference in New Issue
Block a user