diff --git a/multimedia/ffmpeg/Config.in b/multimedia/ffmpeg/Config.in new file mode 100644 index 000000000..461926d95 --- /dev/null +++ b/multimedia/ffmpeg/Config.in @@ -0,0 +1,314 @@ +menu "Configuration" + depends on PACKAGE_libffmpeg-custom + +config FFMPEG_CUSTOM_PATENTED + bool "Include patented codecs and technologies" + default BUILD_PATENTED + +comment "Profiles ---" + +config FFMPEG_CUSTOM_FFSERVER_SUPPORT + bool "Include support for ffserver (FFmpeg streaming server)" + select FFMPEG_CUSTOM_MUXER_ffm + select FFMPEG_CUSTOM_DEMUXER_ffm + select FFMPEG_CUSTOM_DEMUXER_rtsp + select FFMPEG_CUSTOM_PROTOCOL_rtp + +config FFMPEG_CUSTOM_LIBDLNA_SUPPORT + bool "Include support for libdlna/ushare" + depends on FFMPEG_CUSTOM_PATENTED + select FFMPEG_CUSTOM_DECODER_ac3 + select FFMPEG_CUSTOM_DECODER_atrac3 + select FFMPEG_CUSTOM_DECODER_h264 + select FFMPEG_CUSTOM_DECODER_jpegls + select FFMPEG_CUSTOM_DECODER_mp3 + select FFMPEG_CUSTOM_DECODER_mpeg1video + select FFMPEG_CUSTOM_DECODER_mpeg2video + select FFMPEG_CUSTOM_DECODER_mpeg4 + select FFMPEG_CUSTOM_DECODER_mpegvideo + select FFMPEG_CUSTOM_DECODER_wmav1 + select FFMPEG_CUSTOM_DECODER_wmav2 + select FFMPEG_CUSTOM_DECODER_png + select FFMPEG_CUSTOM_DEMUXER_ac3 + select FFMPEG_CUSTOM_DEMUXER_h264 + select FFMPEG_CUSTOM_DEMUXER_mp3 + select FFMPEG_CUSTOM_DEMUXER_mpegvideo + +config FFMPEG_CUSTOM_MINIDLNA_SUPPORT + bool "Include support for minidlna" + depends on FFMPEG_CUSTOM_PATENTED + select FFMPEG_CUSTOM_DECODER_aac + select FFMPEG_CUSTOM_DECODER_ac3 + select FFMPEG_CUSTOM_DECODER_flac + select FFMPEG_CUSTOM_DECODER_h264 + select FFMPEG_CUSTOM_DECODER_jpegls + select FFMPEG_CUSTOM_DECODER_mp3 + select FFMPEG_CUSTOM_DECODER_mpeg1video + select FFMPEG_CUSTOM_DECODER_mpeg2video + select FFMPEG_CUSTOM_DECODER_mpeg4 + select FFMPEG_CUSTOM_DECODER_mpegvideo + select FFMPEG_CUSTOM_DECODER_wmav1 + select FFMPEG_CUSTOM_DECODER_wmav2 + select FFMPEG_CUSTOM_DECODER_png + select FFMPEG_CUSTOM_DEMUXER_aac + select FFMPEG_CUSTOM_DEMUXER_ac3 + select FFMPEG_CUSTOM_DEMUXER_avi + select FFMPEG_CUSTOM_DEMUXER_flac + select FFMPEG_CUSTOM_DEMUXER_h264 + select FFMPEG_CUSTOM_DEMUXER_matroska + select FFMPEG_CUSTOM_DEMUXER_mov + select FFMPEG_CUSTOM_DEMUXER_mp3 + select FFMPEG_CUSTOM_DEMUXER_mpegvideo + select FFMPEG_CUSTOM_PROTOCOL_file + +comment "Encoders ---" + +config FFMPEG_CUSTOM_ENCODER_ac3 + bool "AC3" + depends on FFMPEG_CUSTOM_PATENTED + select FFMPEG_CUSTOM_PARSER_ac3 + +config FFMPEG_CUSTOM_ENCODER_jpegls + bool "JPEG-LS" + +config FFMPEG_CUSTOM_ENCODER_mpeg1video + bool "MPEG-1 Video" + +config FFMPEG_CUSTOM_ENCODER_mpeg2video + bool "MPEG-2 Video" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_ENCODER_mpeg4 + bool "MPEG-4" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_ENCODER_pcm_s16be + bool "PCM signed 16-bit big-endian" + +config FFMPEG_CUSTOM_ENCODER_pcm_s16le + bool "PCM signed 16-bit little-endian" + +config FFMPEG_CUSTOM_ENCODER_png + bool "PNG" + select FFMPEG_CUSTOM_ENCODER_zlib + +config FFMPEG_CUSTOM_ENCODER_vorbis + bool "Vorbis" + +config FFMPEG_CUSTOM_ENCODER_zlib + bool "Zlib" + +comment "Decoders ---" + +config FFMPEG_CUSTOM_DECODER_aac + bool "AAC (Advanced Audio Coding)" + depends on FFMPEG_CUSTOM_PATENTED + select FFMPEG_CUSTOM_PARSER_aac + +config FFMPEG_CUSTOM_DECODER_ac3 + bool "AC3" + depends on FFMPEG_CUSTOM_PATENTED + select FFMPEG_CUSTOM_PARSER_ac3 + +config FFMPEG_CUSTOM_DECODER_atrac3 + bool "ATRAC3" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DECODER_flac + bool "FLAC" + +config FFMPEG_CUSTOM_DECODER_gif + bool "GIF" + +config FFMPEG_CUSTOM_DECODER_h264 + bool "H.264" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DECODER_jpegls + bool "JPEG-LS" + +config FFMPEG_CUSTOM_DECODER_mp2 + bool "MP2 (MPEG Audio Layer 2)" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DECODER_mp3 + bool "MP3 (MPEG Audio Layer 2)" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DECODER_mpegvideo + bool "MPEG Video" + +config FFMPEG_CUSTOM_DECODER_mpeg1video + bool "MPEG-1 Video" + +config FFMPEG_CUSTOM_DECODER_mpeg2video + bool "MPEG-2 Video" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DECODER_mpeg4 + bool "MPEG-4" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DECODER_pcm_s16be + bool "PCM signed 16-bit big-endian" + +config FFMPEG_CUSTOM_DECODER_pcm_s16le + bool "PCM signed 16-bit little-endian" + +config FFMPEG_CUSTOM_DECODER_png + bool "PNG" + select FFMPEG_CUSTOM_DECODER_zlib + +config FFMPEG_CUSTOM_DECODER_vorbis + bool "Vorbis" + +config FFMPEG_CUSTOM_DECODER_wmav1 + bool "WMAv1" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DECODER_wmav2 + bool "WMAv2" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DECODER_zlib + bool "Zlib" + +comment "Muxers ---" + +config FFMPEG_CUSTOM_MUXER_ac3 + bool "AC3" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_MUXER_ffm + bool "FFM (ffserver live feed)" + +config FFMPEG_CUSTOM_MUXER_h264 + bool "H.264" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_MUXER_mp3 + bool "MP3 (MPEG Audio Layer 3)" + +config FFMPEG_CUSTOM_MUXER_mp4 + bool "MP4" + +config FFMPEG_CUSTOM_MUXER_mpeg1video + bool "MPEG-1 Video" + +config FFMPEG_CUSTOM_MUXER_mpeg2video + bool "MPEG-2 Video" + +config FFMPEG_CUSTOM_MUXER_mpegts + bool "MPEG-2 (TS)" + +config FFMPEG_CUSTOM_MUXER_ogg + bool "Ogg" + +config FFMPEG_CUSTOM_MUXER_rtp + bool "RTP" + +comment "Demuxers ---" + +config FFMPEG_CUSTOM_DEMUXER_aac + bool "AAC" + +config FFMPEG_CUSTOM_DEMUXER_avi + bool "AVI (Audio Video Interleave)" + +config FFMPEG_CUSTOM_DEMUXER_ac3 + bool "AC3" + +config FFMPEG_CUSTOM_DEMUXER_flac + bool "FLAC" + +config FFMPEG_CUSTOM_DEMUXER_ffm + bool "FFM (ffserver live feed)" + +config FFMPEG_CUSTOM_DEMUXER_h264 + bool "H.264" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_DEMUXER_matroska + bool "Matroska (MKA,MKV)" + select FFMPEG_CUSTOM_DECODER_zlib + +config FFMPEG_CUSTOM_DEMUXER_mov + bool "MOV/MP4/M4A/3GP/3G2/MJ2" + select FFMPEG_CUSTOM_DECODER_zlib + +config FFMPEG_CUSTOM_DEMUXER_mp3 + bool "MP3 (MPEG Audio Layer 3)" + select FFMPEG_CUSTOM_PARSER_mpegaudio + +config FFMPEG_CUSTOM_DEMUXER_mpegvideo + bool "MPEG Video" + +config FFMPEG_CUSTOM_DEMUXER_mpegps + bool "MPEG-2 (PS)" + +config FFMPEG_CUSTOM_DEMUXER_mpegts + bool "MPEG-2 (TS)" + +config FFMPEG_CUSTOM_DEMUXER_ogg + bool "Ogg" + +config FFMPEG_CUSTOM_DEMUXER_rm + bool "RM" + help + RealMedia format demuxer + +config FFMPEG_CUSTOM_DEMUXER_rtsp + bool "RTSP" + select FFMPEG_CUSTOM_DEMUXER_rm + select FFMPEG_CUSTOM_DEMUXER_sdp + +config FFMPEG_CUSTOM_DEMUXER_sdp + bool "SDP" + select FFMPEG_CUSTOM_DEMUXER_mpegts + +comment "Parsers ---" + +config FFMPEG_CUSTOM_PARSER_aac + bool "AAC (Advanced Audio Coding)" + depends on FFMPEG_CUSTOM_PATENTED + +config FFMPEG_CUSTOM_PARSER_ac3 + bool "AC3" + +config FFMPEG_CUSTOM_PARSER_h264 + bool "H.264" + depends on FFMPEG_CUSTOM_PATENTED + select FFMPEG_CUSTOM_DECODER_h264 + +config FFMPEG_CUSTOM_PARSER_mpegaudio + bool "MPEG Audio" + +config FFMPEG_CUSTOM_PARSER_mpegvideo + bool "MPEG Video" + +config FFMPEG_CUSTOM_PARSER_mpeg4video + bool "MPEG-4 Video" + +comment "Protocols ---" + +config FFMPEG_CUSTOM_PROTOCOL_file + bool "file:" + +config FFMPEG_CUSTOM_PROTOCOL_http + bool "http:" + +config FFMPEG_CUSTOM_PROTOCOL_pipe + bool "pipe:" + +config FFMPEG_CUSTOM_PROTOCOL_rtp + bool "rtp:" + select FFMPEG_CUSTOM_PROTOCOL_udp + +config FFMPEG_CUSTOM_PROTOCOL_tcp + bool "tcp:" + +config FFMPEG_CUSTOM_PROTOCOL_udp + bool "udp:" + +endmenu + diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile new file mode 100644 index 000000000..7880f8982 --- /dev/null +++ b/multimedia/ffmpeg/Makefile @@ -0,0 +1,436 @@ +# +# Copyright (C) 2006-2013 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=ffmpeg +PKG_VERSION:=0.11.5 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=http://ffmpeg.org/releases/ +PKG_MD5SUM:=ea25fc252c132141f12988ed5506bfe8 + +PKG_LICENSE:=LGPLv2.1+ GPLv2+ LGPLv3 +PKG_LICENSE_FILES:=COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv2.1 COPYING.LGPLv3 + +FFMPEG_CUSTOM_ENCODERS:= \ + ac3 \ + jpegls \ + mpeg1video \ + mpeg2video \ + mpeg4 \ + pcm_s16be \ + pcm_s16le \ + png \ + vorbis \ + zlib \ + +FFMPEG_CUSTOM_DECODERS:= \ + aac \ + ac3 \ + atrac3 \ + flac \ + gif \ + h264 \ + jpegls \ + mp2 \ + mp3 \ + mpeg1video \ + mpeg2video \ + mpeg4 \ + mpegvideo \ + pcm_s16be \ + pcm_s16le \ + png \ + vorbis \ + wmav1 \ + wmav2 \ + zlib \ + +FFMPEG_CUSTOM_MUXERS:= \ + ac3 \ + ffm \ + h264 \ + mp3 \ + mp4 \ + mpeg1video \ + mpeg2video \ + mpegts \ + ogg \ + rtp \ + +FFMPEG_CUSTOM_DEMUXERS:= \ + aac \ + ac3 \ + avi \ + flac \ + ffm \ + h264 \ + matroska \ + mov \ + mp3 \ + mpegps \ + mpegts \ + mpegvideo \ + ogg \ + rm \ + rtsp \ + sdp \ + v4l2 \ + +FFMPEG_CUSTOM_PARSERS:= \ + aac \ + ac3 \ + h264 \ + mpegaudio \ + mpeg4video \ + mpegvideo \ + +FFMPEG_CUSTOM_PROTOCOLS:= \ + file http pipe rtp tcp udp + +FFMPEG_MINI_ENCODERS:= \ + +FFMPEG_MINI_DECODERS:= \ + aac \ + ac3 \ + atrac3 \ + flac \ + h263 \ + h264 \ + jpegls \ + mp3 \ + mpeg1video \ + mpeg2video \ + mpeg4 \ + mpegvideo \ + png \ + wmav1 \ + wmav2 \ + +FFMPEG_MINI_MUXERS:= \ + ffm \ + +FFMPEG_MINI_DEMUXERS := \ + aac \ + ac3 \ + asf \ + avi \ + ffm \ + flac \ + h264 \ + matroska \ + mov \ + mp3 \ + mpegts \ + mpegvideo \ + rtsp \ + +FFMPEG_MINI_PARSERS:= \ + ac3 \ + flac \ + h263 \ + h264 \ + mpeg4video \ + mpegaudio \ + +FFMPEG_MINI_PROTOCOLS := \ + file http rtp tcp udp \ + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) + +PKG_CONFIG_DEPENDS:= \ + $(patsubst %,CONFIG_FFMPEG_CUSTOM_ENCODER_%,$(FFMPEG_CUSTOM_ENCODERS)) \ + $(patsubst %,CONFIG_FFMPEG_CUSTOM_DECODER_%,$(FFMPEG_CUSTOM_DECODERS)) \ + $(patsubst %,CONFIG_FFMPEG_CUSTOM_MUXER_%,$(FFMPEG_CUSTOM_DEMUXERS)) \ + $(patsubst %,CONFIG_FFMPEG_CUSTOM_DEMUXER_%,$(FFMPEG_CUSTOM_DEMUXERS)) \ + $(patsubst %,CONFIG_FFMPEG_CUSTOM_PARSER_%,$(FFMPEG_CUSTOM_PARSERS)) \ + $(patsubst %,CONFIG_FFMPEG_CUSTOM_PROTOCOL_%,$(FFMPEG_CUSTOM_PROTOCOLS)) + +include $(INCLUDE_DIR)/package.mk + +define Package/ffmpeg/Default + TITLE:=FFmpeg + URL:=http://ffmpeg.mplayerhq.hu/ +endef + +define Package/ffmpeg/Default/description + FFmpeg is a a software package that can record, convert and stream digital + audio and video in numerous formats. +endef + + +define Package/ffmpeg +$(call Package/ffmpeg/Default) + SECTION:=multimedia + CATEGORY:=Multimedia + TITLE+= program + DEPENDS+= +libpthread +libffmpeg-full + VARIANT:=full +endef + +define Package/ffmpeg/description +$(call Package/ffmpeg/Default/description) + . + This package contains the FFmpeg command line tool. +endef + + +define Package/ffprobe +$(call Package/ffmpeg/Default) + SECTION:=multimedia + CATEGORY:=Multimedia + TITLE+= CLI media identifier + DEPENDS+= +libffmpeg-full + VARIANT:=full +endef + +define Package/ffprobe/description +$(call Package/ffmpeg/Default/description) + . + This package contains the FFprobe command line tool. +endef + + +define Package/ffserver +$(call Package/ffserver/Default) + SECTION:=multimedia + CATEGORY:=Multimedia + TITLE+= streaming server + DEPENDS+= +libpthread +libffmpeg-full + VARIANT:=full +endef + +define Package/ffserver/description +$(call Package/ffmpeg/Default/description) + . + This package contains the FFmpeg streaming server. +endef + + +define Package/libffmpeg/Default +$(call Package/ffmpeg/Default) + SECTION:=libs + CATEGORY:=Libraries + TITLE+= libraries + DEPENDS+= +libpthread +zlib +libbz2 + PROVIDES:= libffmpeg +endef + + +define Package/libffmpeg-custom +$(call Package/libffmpeg/Default) + TITLE+= (mini) + DEPENDS+= @DEVEL + VARIANT:=custom + MENU:=1 +endef + +define Package/libffmpeg-custom/config +source "$(SOURCE)/Config.in" +endef + +define Package/libffmpeg-custom/description +$(call Package/ffmpeg/Default/description) + . + This package contains customized FFmpeg shared libraries. +endef + + +define Package/libffmpeg-full +$(call Package/libffmpeg/Default) + TITLE+= (full) + DEPENDS+= @BUILD_PATENTED +alsa-lib + VARIANT:=full +endef + +define Package/libffmpeg-full/description +$(call Package/ffmpeg/Default/description) + . + This package contains full-featured FFmpeg shared libraries. +endef + + +define Package/libffmpeg-mini +$(call Package/libffmpeg/Default) + TITLE+= (mini) + DEPENDS+= @BUILD_PATENTED + VARIANT:=mini +endef + +define Package/libffmpeg-mini/description +$(call Package/ffmpeg/Default/description) + . + This package contains minimal-featured FFmpeg shared libraries. +endef + + +FFMPEG_CONFIGURE:= \ + CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + ./configure \ + --enable-cross-compile \ + --cross-prefix="$(TARGET_CROSS)" \ + --arch="$(ARCH)" \ + --target-os=linux \ + --prefix="/usr" \ + --enable-shared \ + --enable-static \ + --disable-debug \ + --pkg-config="pkg-config" \ + \ + --enable-gpl \ + --enable-version3 \ + \ + --disable-altivec \ + --disable-asm \ + --disable-doc \ + --disable-dxva2 \ + --enable-pthreads \ + --enable-small \ + --disable-stripping \ + --enable-zlib \ + --disable-outdevs + +ifeq ($(BUILD_VARIANT),custom) + + FFMPEG_ENABLE= \ + $(foreach c, $(2), \ + $(if $($(3)_$(c)),--enable-$(1)="$(c)") \ + ) + + FFMPEG_CONFIGURE+= \ + --disable-ffmpeg \ + --disable-ffplay \ + --disable-ffprobe \ + --disable-ffserver \ + --disable-avfilter \ + --disable-postproc \ + --disable-swresample \ + --disable-swscale \ + --disable-everything \ + $(call FFMPEG_ENABLE,encoder,$(FFMPEG_CUSTOM_ENCODERS),CONFIG_FFMPEG_CUSTOM_ENCODER) \ + $(call FFMPEG_ENABLE,decoder,$(FFMPEG_CUSTOM_DECODERS),CONFIG_FFMPEG_CUSTOM_DECODER) \ + $(call FFMPEG_ENABLE,muxer,$(FFMPEG_CUSTOM_MUXERS),CONFIG_FFMPEG_CUSTOM_MUXER) \ + $(call FFMPEG_ENABLE,demuxer,$(FFMPEG_CUSTOM_DEMUXERS),CONFIG_FFMPEG_CUSTOM_DEMUXER) \ + $(call FFMPEG_ENABLE,parser,$(FFMPEG_CUSTOM_PARSERS),CONFIG_FFMPEG_CUSTOM_PARSER) \ + $(call FFMPEG_ENABLE,protocol,$(FFMPEG_CUSTOM_PROTOCOLS),CONFIG_FFMPEG_CUSTOM_PROTOCOL) \ + +endif + +ifeq ($(BUILD_VARIANT),mini) + + FFMPEG_ENABLE= \ + $(foreach c, $(2), \ + --enable-$(1)="$(c)" \ + ) + + FFMPEG_CONFIGURE+= \ + --disable-ffmpeg \ + --disable-ffplay \ + --disable-ffprobe \ + --disable-ffserver \ + --disable-avfilter \ + --disable-postproc \ + --disable-swresample \ + --disable-swscale \ + --disable-everything \ + $(call FFMPEG_ENABLE,encoder,$(FFMPEG_MINI_ENCODERS)) \ + $(call FFMPEG_ENABLE,decoder,$(FFMPEG_MINI_DECODERS)) \ + $(call FFMPEG_ENABLE,muxer,$(FFMPEG_MINI_MUXERS)) \ + $(call FFMPEG_ENABLE,demuxer,$(FFMPEG_MINI_DEMUXERS)) \ + $(call FFMPEG_ENABLE,parser,$(FFMPEG_MINI_PARSERS)) \ + $(call FFMPEG_ENABLE,protocol,$(FFMPEG_MINI_PROTOCOLS)) \ + +endif + +ifneq ($(CONFIG_TARGET_x86),) + TARGET_CFLAGS += -fomit-frame-pointer +endif + +define Build/Configure + ( cd $(PKG_BUILD_DIR); $(FFMPEG_CONFIGURE) ) +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + all install +endef + +define Build/InstallDev/custom + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avdevice,avformat,avutil} $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avformat,avutil}.{a,so*} $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/usr/lib/pkgconfig + $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avdevice,avformat,avutil}.pc $(1)/usr/lib/pkgconfig/ +endef + +define Build/InstallDev/full + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avdevice,avfilter,avformat,avutil,postproc,swresample,swscale} $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avutil,postproc,swresample,swscale}.{a,so*} $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/usr/lib/pkgconfig + $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avdevice,avfilter,avformat,avutil,postproc,swresample,swscale}.pc $(1)/usr/lib/pkgconfig/ +endef + +Build/InstallDev/mini = $(Build/InstallDev/custom) + +# XXX: attempt at installing "best" dev files available +ifeq ($(BUILD_VARIANT),custom) + # XXX: only install "custom" dev files if -full & -mini are not selected + ifeq ($(CONFIG_PACKAGE_libffmpeg-full)$(CONFIG_PACKAGE_libffmpeg-mini),) + Build/InstallDev = $(Build/InstallDev/custom) + endif +endif +ifeq ($(BUILD_VARIANT),full) + # XXX: always install "full" dev files if -full is selected + Build/InstallDev = $(Build/InstallDev/full) +endif +ifeq ($(BUILD_VARIANT),mini) + # XXX: only install "mini" dev files if -full is not selected + ifeq ($(CONFIG_PACKAGE_libffmpeg-full),) + Build/InstallDev = $(Build/InstallDev/mini) + endif +endif + +define Package/ffmpeg/install + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/ffmpeg $(1)/usr/bin/ +endef + +define Package/ffprobe/install + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/ffprobe $(1)/usr/bin/ +endef + +define Package/ffserver/install + $(INSTALL_DIR) $(1)/usr/bin + $(CP) $(PKG_INSTALL_DIR)/usr/bin/ffserver $(1)/usr/bin/ +endef + +define Package/libffmpeg-custom/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avformat,avutil}.so.* $(1)/usr/lib/ +endef + +define Package/libffmpeg-full/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avutil,postproc,swresample,swscale}.so.* $(1)/usr/lib/ +endef + +Package/libffmpeg-mini/install = $(Package/libffmpeg-custom/install) + +$(eval $(call BuildPackage,ffmpeg)) +$(eval $(call BuildPackage,ffprobe)) +$(eval $(call BuildPackage,ffserver)) +$(eval $(call BuildPackage,libffmpeg-custom)) +$(eval $(call BuildPackage,libffmpeg-full)) +$(eval $(call BuildPackage,libffmpeg-mini))