SubDir HAIKU_TOP src add-ons media plugins ffmpeg ;

SetSubDirSupportedPlatformsBeOSCompatible ;

UsePrivateHeaders media shared ;

SubDirC++Flags -D__STDC_CONSTANT_MACROS -Wno-deprecated-declarations ;

local sources =
	AVCodecDecoder.cpp
	AVCodecEncoder.cpp
	AVFormatReader.cpp
	AVFormatWriter.cpp
	CodecTable.cpp
	DemuxerTable.cpp
	EncoderTable.cpp
	FFmpegPlugin.cpp
	MuxerTable.cpp
	CpuCapabilities.cpp
	
	gfx_conv_c.cpp
	gfx_conv_c_lookup.cpp
	gfx_conv_mmx.cpp
	gfx_util.cpp
	;


SubDirSysHdrs $(HAIKU_FFMPEG_HEADERS) ;
Includes [ FGristFiles $(sources) ] : $(HAIKU_FFMPEG_HEADERS_DEPENDENCY) ;

UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) ] ;
UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavcodec ] ;
UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavdevice ] ;
UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavfilter ] ;
UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavformat ] ;
UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavutil ] ;
UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libswscale ] ;

Addon ffmpeg :
	$(sources)

	yuvrgb_sse.nasm
	yuvrgb_sse2.nasm
	yuvrgb_ssse3.nasm
	:

	# FFmpeg libraries (from FFmpeg optional package):
	$(HAIKU_FFMPEG_LIBS)

	$(HAIKU_SPEEX_LIBS)
	$(HAIKU_LIBTHEORA_LIBS)
	$(HAIKU_LIBVORBIS_LIBS)
	$(HAIKU_LIBOGG_LIBS)
	$(HAIKU_LIBVPX_LIBS)
	libbz2_ffmpeg.a

	be
	media
	libz.a
	$(TARGET_LIBSUPC++)
	$(TARGET_NETWORK_LIBS)
;

SubInclude HAIKU_TOP src add-ons media plugins ffmpeg libbz2 ;

