ffmpeg: 3.2.8 update
[feed/packages.git] / multimedia / ffmpeg / Makefile
1 #
2 # Copyright (C) 2006-2017 OpenWrt.org
3 # Copyright (C) 2017 Ian Leonard <antonlacon@gmail.com>
4 #
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
7 #
8
9 include $(TOPDIR)/rules.mk
10
11 PKG_NAME:=ffmpeg
12 PKG_VERSION:=3.2.8
13 PKG_RELEASE:=1
14
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
16 PKG_SOURCE_URL:=https://ffmpeg.org/releases/
17 PKG_HASH:=42e7362692318afc666f14378dd445effa9a1b09787504a6ab5811fe442674cd
18 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
19 Ian Leonard <antonlacon@gmail.com>
20
21 PKG_LICENSE:=LGPL-2.1+ GPL-2+ LGPL-3
22 PKG_LICENSE_FILES:=COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv2.1 COPYING.LGPLv3
23
24 FFMPEG_CUSTOM_ENCODERS:= \
25 ac3 \
26 jpegls \
27 mpeg1video \
28 mpeg2video \
29 mpeg4 \
30 pcm_s16be \
31 pcm_s16le \
32 png \
33 vorbis \
34 zlib \
35
36 FFMPEG_CUSTOM_DECODERS:= \
37 aac \
38 ac3 \
39 alac \
40 amrnb \
41 amrwb \
42 ape \
43 atrac3 \
44 flac \
45 gif \
46 h264 \
47 hevc \
48 jpegls \
49 mp2 \
50 mp3 \
51 mpeg1video \
52 mpeg2video \
53 mpeg4 \
54 mpegvideo \
55 mpc7 \
56 mpc8 \
57 pcm_s16be \
58 pcm_s16le \
59 png \
60 vc1 \
61 vorbis \
62 wavpack \
63 wmav1 \
64 wmav2 \
65 zlib \
66
67 FFMPEG_CUSTOM_MUXERS:= \
68 ac3 \
69 ffm \
70 h264 \
71 hevc \
72 mp3 \
73 mp4 \
74 mpeg1video \
75 mpeg2video \
76 mpegts \
77 ogg \
78 rtp \
79
80 FFMPEG_CUSTOM_DEMUXERS:= \
81 aac \
82 ac3 \
83 amr \
84 ape \
85 avi \
86 flac \
87 ffm \
88 h264 \
89 hevc \
90 matroska \
91 mov \
92 mp3 \
93 mpegps \
94 mpegts \
95 mpegvideo \
96 mpc \
97 mpc8 \
98 ogg \
99 rm \
100 rtsp \
101 rtp \
102 sdp \
103 v4l2 \
104 vc1 \
105 wav \
106 wv \
107
108 FFMPEG_CUSTOM_PARSERS:= \
109 aac \
110 flac \
111 ac3 \
112 h264 \
113 hevc \
114 mpegaudio \
115 mpeg4video \
116 mpegvideo \
117 vc1 \
118
119 FFMPEG_CUSTOM_PROTOCOLS:= \
120 file http icecast pipe rtp tcp udp
121
122 FFMPEG_MINI_DECODERS:= \
123 aac \
124 ac3 \
125 flac \
126 h264 \
127 hevc \
128 jpegls \
129 mp2 \
130 mp3 \
131 mpeg1video \
132 mpeg2video \
133 mpeg4 \
134 mpegvideo \
135 opus \
136 png \
137 vc1 \
138 vorbis \
139 wmav1 \
140 wmav2 \
141
142 FFMPEG_MINI_DEMUXERS:= \
143 avi \
144 flac \
145 matroska \
146 mov \
147 mp3 \
148 mpegps \
149 mpegts \
150 mpegvideo \
151 ogg \
152
153 FFMPEG_MINI_PROTOCOLS:= \
154 file
155
156 FFMPEG_AUDIO_DECODERS:= \
157 aac \
158 aac_latm \
159 ac3 \
160 adpcm_* \
161 alac \
162 amrnb \
163 amrwb \
164 ape \
165 atrac3 \
166 flac \
167 mp2 \
168 mp3* \
169 mpc7 \
170 mpc8 \
171 opus \
172 pcm_* \
173 vorbis \
174 wavpack \
175 wmav1 \
176 wmav2 \
177 wmalossless \
178 wmapro \
179 zlib \
180
181 FFMPEG_AUDIO_DEMUXERS:= \
182 aac \
183 ac3 \
184 aiff \
185 amr \
186 ape \
187 avi \
188 flac \
189 ffm \
190 matroska \
191 mp3 \
192 mov \
193 mpc \
194 mpc8 \
195 mpegts \
196 ogg \
197 rm \
198 rtsp \
199 rtp \
200 sdp \
201 wav \
202 wv \
203
204 FFMPEG_AUDIO_PROTOCOLS:= \
205 file http icecast rtp tcp udp
206
207
208 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
209
210 PKG_CONFIG_DEPENDS:= \
211 $(patsubst %,CONFIG_FFMPEG_CUSTOM_ENCODER_%,$(FFMPEG_CUSTOM_ENCODERS)) \
212 $(patsubst %,CONFIG_FFMPEG_CUSTOM_DECODER_%,$(FFMPEG_CUSTOM_DECODERS)) \
213 $(patsubst %,CONFIG_FFMPEG_CUSTOM_MUXER_%,$(FFMPEG_CUSTOM_DEMUXERS)) \
214 $(patsubst %,CONFIG_FFMPEG_CUSTOM_DEMUXER_%,$(FFMPEG_CUSTOM_DEMUXERS)) \
215 $(patsubst %,CONFIG_FFMPEG_CUSTOM_PARSER_%,$(FFMPEG_CUSTOM_PARSERS)) \
216 $(patsubst %,CONFIG_FFMPEG_CUSTOM_PROTOCOL_%,$(FFMPEG_CUSTOM_PROTOCOLS))
217
218 include $(INCLUDE_DIR)/package.mk
219
220 define Package/ffmpeg/Default
221 TITLE:=FFmpeg
222 URL:=https://ffmpeg.org/
223 DEPENDS+= +libpthread
224 endef
225
226 define Package/ffmpeg/Default/description
227 FFmpeg is a a software package that can record, convert and stream digital
228 audio and video in numerous formats.
229 endef
230
231
232 define Package/ffmpeg
233 $(call Package/ffmpeg/Default)
234 SECTION:=multimedia
235 CATEGORY:=Multimedia
236 TITLE+= program
237 DEPENDS+= +libffmpeg-full
238 VARIANT:=full
239 endef
240
241 define Package/ffmpeg/description
242 $(call Package/ffmpeg/Default/description)
243 .
244 This package contains the FFmpeg command line tool.
245 endef
246
247
248 define Package/ffprobe
249 $(call Package/ffmpeg/Default)
250 SECTION:=multimedia
251 CATEGORY:=Multimedia
252 TITLE+= CLI media identifier
253 DEPENDS+= +libffmpeg-full
254 VARIANT:=full
255 endef
256
257 define Package/ffprobe/description
258 $(call Package/ffmpeg/Default/description)
259 .
260 This package contains the FFprobe command line tool.
261 endef
262
263
264 define Package/ffserver
265 $(call Package/ffserver/Default)
266 SECTION:=multimedia
267 CATEGORY:=Multimedia
268 TITLE+= streaming server
269 DEPENDS+= +libffmpeg-full
270 VARIANT:=full
271 endef
272
273 define Package/ffserver/description
274 $(call Package/ffmpeg/Default/description)
275 .
276 This package contains the FFmpeg streaming server.
277 endef
278
279 define Package/libffmpeg/Default
280 $(call Package/ffmpeg/Default)
281 SECTION:=libs
282 CATEGORY:=Libraries
283 TITLE+= libraries
284 DEPENDS+= +libpthread +zlib +libbz2
285 PROVIDES:= libffmpeg
286 endef
287
288
289 define Package/libffmpeg-custom
290 $(call Package/libffmpeg/Default)
291 TITLE+= (custom)
292 DEPENDS+= +FFMPEG_CUSTOM_SELECT_libopus:libopus \
293 +PACKAGE_libx264:libx264 +PACKAGE_lame-lib:lame-lib \
294 +FFMPEG_CUSTOM_SELECT_libshine:shine \
295 +PACKAGE_fdk-aac:fdk-aac
296 VARIANT:=custom
297 MENU:=1
298 endef
299
300 define Package/libffmpeg-custom/config
301 source "$(SOURCE)/Config.in"
302 endef
303
304 define Package/libffmpeg-custom/description
305 $(call Package/ffmpeg/Default/description)
306 .
307 This package contains customized FFmpeg shared libraries.
308 endef
309
310
311 define Package/libffmpeg-audio-dec
312 $(call Package/libffmpeg/Default)
313 TITLE+= (audio)
314 DEPENDS+= @BUILD_PATENTED
315 VARIANT:=audio-dec
316 endef
317
318 define Package/libffmpeg-audio-dec/description
319 $(call Package/ffmpeg/Default/description)
320 .
321 This package contains FFmpeg shared libraries for audio decoding
322 endef
323
324
325 define Package/libffmpeg-full
326 $(call Package/libffmpeg/Default)
327 TITLE+= (full)
328 DEPENDS+= @BUILD_PATENTED +alsa-lib +PACKAGE_libopus:libopus
329 ifeq ($(CONFIG_SOFT_FLOAT),y)
330 DEPENDS+= +PACKAGE_shine:shine
331 else
332 DEPENDS+= +PACKAGE_lame-lib:lame-lib +PACKAGE_libx264:libx264
333 endif
334 VARIANT:=full
335 endef
336
337
338 define Package/libffmpeg-full/description
339 $(call Package/ffmpeg/Default/description)
340 .
341 This package contains full-featured FFmpeg shared libraries.
342 endef
343
344
345 define Package/libffmpeg-mini
346 $(call Package/libffmpeg/Default)
347 TITLE+= (mini)
348 DEPENDS+= @BUILD_PATENTED
349 VARIANT:=mini
350 endef
351
352 define Package/libffmpeg-mini/description
353 $(call Package/ffmpeg/Default/description)
354 .
355 This package contains minimal-featured FFmpeg shared libraries.
356 endef
357
358
359 FFMPEG_CONFIGURE:= \
360 CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(FPIC)" \
361 LDFLAGS="$(TARGET_LDFLAGS)" \
362 ./configure \
363 --enable-cross-compile \
364 --cross-prefix="$(TARGET_CROSS)" \
365 --arch="$(ARCH)" \
366 --target-os=linux \
367 --prefix="/usr" \
368 --pkg-config="pkg-config" \
369 --enable-shared \
370 --enable-static \
371 --enable-pthreads \
372 --enable-zlib \
373 --disable-doc \
374 --disable-debug \
375 \
376 --disable-lzma \
377 --disable-vaapi \
378 --disable-vdpau \
379 --disable-outdevs
380
381 ifeq ($(CONFIG_SOFT_FLOAT),y)
382 FFMPEG_CONFIGURE+= \
383 --disable-altivec \
384 --disable-vsx \
385 --disable-power8 \
386 --disable-armv5te \
387 --disable-armv6 \
388 --disable-armv6t2 \
389 --disable-inline-asm \
390 --disable-mipsdsp \
391 --disable-mipsdspr2 \
392 --disable-mipsfpu \
393 --disable-msa \
394 --disable-mmi \
395 --disable-fast-unaligned \
396 --disable-runtime-cpudetect
397
398 else ifneq ($(findstring arm,$(CONFIG_ARCH)),)
399 FFMPEG_CONFIGURE+= \
400 --disable-runtime-cpudetect
401 # XXX: GitHub issue 3320 ppc cpu with fpu but no altivec (WNDR4700)
402 else ifneq ($(findstring powerpc,$(CONFIG_ARCH)),)
403 FFMPEG_CONFIGURE+= \
404 --disable-altivec
405 endif
406
407 # selectively disable optimizations according to arch/cpu type
408 ifneq ($(findstring arm,$(CONFIG_ARCH)),)
409 FFMPEG_CONFIGURE+= --enable-lto
410
411 ifneq ($(findstring vfp,$(CONFIG_TARGET_OPTIMIZATION)),)
412 FFMPEG_CONFIGURE+= --enable-vfp
413 else
414 FFMPEG_CONFIGURE+= --disable-vfp
415 endif
416 ifneq ($(findstring neon,$(CONFIG_TARGET_OPTIMIZATION)),)
417 FFMPEG_CONFIGURE+= \
418 --enable-neon \
419 --enable-vfp
420 else
421 FFMPEG_CONFIGURE+= --disable-neon
422 endif
423 endif
424
425 ifeq ($(ARCH),x86_64)
426 FFMPEG_CONFIGURE+= --enable-lto
427 endif
428
429 ifneq ($(CONFIG_YASM),y)
430 FFMPEG_CONFIGURE+= --disable-yasm
431
432 endif
433
434 ifeq ($(BUILD_VARIANT),full)
435 FFMPEG_CONFIGURE+= \
436 --enable-avresample \
437 $(if $(CONFIG_PACKAGE_libopus),--enable-libopus)
438 ifeq ($(CONFIG_SOFT_FLOAT),y)
439 FFMPEG_CONFIGURE+= \
440 --enable-small \
441 \
442 $(if $(CONFIG_PACKAGE_shine),--enable-libshine)
443 else
444 ifeq ($(ARCH),x86_64)
445 FFMPEG_CONFIGURE+= --enable-hardcoded-tables
446 else
447 FFMPEG_CONFIGURE+= --enable-small
448 endif
449 FFMPEG_CONFIGURE+= \
450 --enable-gpl \
451 \
452 $(if $(CONFIG_PACKAGE_lame-lib),--enable-libmp3lame) \
453 $(if $(CONFIG_PACKAGE_libx264),--enable-libx264)
454 endif
455 endif
456
457 ifeq ($(BUILD_VARIANT),custom)
458
459 FFMPEG_ENABLE= \
460 $(foreach c, $(2), \
461 $(if $($(3)_$(c)),--enable-$(1)="$(c)") \
462 )
463
464 ifeq ($(CONFIG_FFMPEG_CUSTOM_LARGE),y)
465 FFMPEG_CONFIGURE+= \
466 --enable-hardcoded-tables
467 else
468 FFMPEG_CONFIGURE+= \
469 --enable-small
470 endif
471
472 ifeq ($(CONFIG_FFMPEG_CUSTOM_GPL),y)
473 FFMPEG_CONFIGURE+= --enable-gpl
474 endif
475
476 ifeq ($(CONFIG_FFMPEG_CUSTOM_GPLV3),y)
477 FFMPEG_CONFIGURE+= --enable-version3
478 endif
479
480 ifeq ($(CONFIG_FFMPEG_CUSTOM_NONFREE),y)
481 FFMPEG_CONFIGURE+= --enable-nonfree
482 endif
483
484 FFMPEG_CONFIGURE+= \
485 --disable-programs \
486 --disable-avfilter \
487 --disable-postproc \
488 --disable-swresample \
489 --disable-swscale \
490 --disable-everything \
491 $(call FFMPEG_ENABLE,encoder,$(FFMPEG_CUSTOM_ENCODERS),CONFIG_FFMPEG_CUSTOM_ENCODER) \
492 $(call FFMPEG_ENABLE,decoder,$(FFMPEG_CUSTOM_DECODERS),CONFIG_FFMPEG_CUSTOM_DECODER) \
493 $(call FFMPEG_ENABLE,muxer,$(FFMPEG_CUSTOM_MUXERS),CONFIG_FFMPEG_CUSTOM_MUXER) \
494 $(call FFMPEG_ENABLE,demuxer,$(FFMPEG_CUSTOM_DEMUXERS),CONFIG_FFMPEG_CUSTOM_DEMUXER) \
495 $(call FFMPEG_ENABLE,parser,$(FFMPEG_CUSTOM_PARSERS),CONFIG_FFMPEG_CUSTOM_PARSER) \
496 $(call FFMPEG_ENABLE,protocol,$(FFMPEG_CUSTOM_PROTOCOLS),CONFIG_FFMPEG_CUSTOM_PROTOCOL) \
497
498 ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_adpcm),y)
499 FFMPEG_CONFIGURE+= \
500 --enable-decoder=adpcm_ima_wav \
501 --enable-decoder=adpcm_ima_qt \
502 --enable-decoder=adpcm_ms
503 endif
504
505 ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libfdk-aac),y)
506 FFMPEG_CONFIGURE+= \
507 --enable-libfdk-aac --enable-encoder=libfdk_aac
508 endif
509
510 ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libmp3lame),y)
511 FFMPEG_CONFIGURE+= \
512 --enable-libmp3lame --enable-encoder=libmp3lame
513 endif
514
515 ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libopus),y)
516 FFMPEG_CONFIGURE+= \
517 --enable-libopus --enable-decoder=libopus --enable-encoder=libopus
518 endif
519
520 ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libshine),y)
521 FFMPEG_CONFIGURE+= \
522 --enable-libshine --enable-encoder=libshine
523 endif
524
525 ifeq ($(CONFIG_FFMPEG_CUSTOM_SELECT_libx264),y)
526 FFMPEG_CONFIGURE+= \
527 --enable-libx264 --enable-encoder=libx264
528 endif
529
530 endif
531
532 ifeq ($(BUILD_VARIANT),audio-dec)
533
534 FFMPEG_ENABLE= \
535 $(foreach c, $(2), \
536 --enable-$(1)="$(c)" \
537 )
538
539 FFMPEG_CONFIGURE+= \
540 --enable-small \
541 --enable-gpl \
542 \
543 --disable-programs \
544 --disable-avfilter \
545 --disable-postproc \
546 --disable-swresample \
547 --disable-swscale \
548 --disable-everything \
549 $(call FFMPEG_ENABLE,decoder,$(FFMPEG_AUDIO_DECODERS)) \
550 $(call FFMPEG_ENABLE,demuxer,$(FFMPEG_AUDIO_DEMUXERS)) \
551 $(call FFMPEG_ENABLE,protocol,$(FFMPEG_AUDIO_PROTOCOLS)) \
552 --disable-decoder=pcm_bluray,pcm_dvd
553 endif
554
555 ifeq ($(BUILD_VARIANT),mini)
556
557 FFMPEG_ENABLE= \
558 $(foreach c, $(2), \
559 --enable-$(1)="$(c)" \
560 )
561
562 FFMPEG_CONFIGURE+= \
563 --enable-small \
564 \
565 --disable-programs \
566 --disable-avdevice \
567 --disable-avfilter \
568 --disable-postproc \
569 --disable-swresample \
570 --disable-swscale \
571 --disable-everything \
572 $(call FFMPEG_ENABLE,decoder,$(FFMPEG_MINI_DECODERS)) \
573 $(call FFMPEG_ENABLE,demuxer,$(FFMPEG_MINI_DEMUXERS)) \
574 $(call FFMPEG_ENABLE,protocol,$(FFMPEG_MINI_PROTOCOLS))
575 endif
576
577 ifneq ($(CONFIG_TARGET_x86),)
578 TARGET_CFLAGS+= -fomit-frame-pointer
579 endif
580
581 define Build/Configure
582 ( cd $(PKG_BUILD_DIR); $(FFMPEG_CONFIGURE) )
583 endef
584
585 define Build/Compile
586 $(MAKE) -C $(PKG_BUILD_DIR) \
587 DESTDIR="$(PKG_INSTALL_DIR)" \
588 all install
589 endef
590
591 define Build/InstallDev/custom
592 $(INSTALL_DIR) $(1)/usr/include
593 $(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avdevice,avformat,avutil} $(1)/usr/include/
594 $(INSTALL_DIR) $(1)/usr/lib
595 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avformat,avutil}.{a,so*} $(1)/usr/lib/
596 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
597 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avdevice,avformat,avutil}.pc $(1)/usr/lib/pkgconfig/
598 endef
599
600 # Soft float is LGPL (no libpostproc); Hard float is GPL (yes libpostproc)
601 define Build/InstallDev/full
602 $(INSTALL_DIR) $(1)/usr/include
603 $(INSTALL_DIR) $(1)/usr/lib
604 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
605 $(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale} $(1)/usr/include/
606 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.{a,so*} $(1)/usr/lib/
607 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.pc $(1)/usr/lib/pkgconfig/
608 ifneq ($(CONFIG_SOFT_FLOAT),y)
609 $(CP) $(PKG_INSTALL_DIR)/usr/include/libpostproc $(1)/usr/include/
610 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpostproc.{a,so*} $(1)/usr/lib/
611 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libpostproc.pc $(1)/usr/lib/pkgconfig/
612 endif
613 endef
614
615 define Build/InstallDev/mini
616 $(INSTALL_DIR) $(1)/usr/include
617 $(CP) $(PKG_INSTALL_DIR)/usr/include/lib{avcodec,avformat,avutil} $(1)/usr/include/
618 $(INSTALL_DIR) $(1)/usr/lib
619 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avformat,avutil}.{a,so*} $(1)/usr/lib/
620 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
621 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/lib{avcodec,avformat,avutil}.pc $(1)/usr/lib/pkgconfig/
622 endef
623
624 Build/InstallDev/audio-dec = $(Build/InstallDev/custom)
625
626 # XXX: attempt at installing "best" dev files available
627 ifeq ($(BUILD_VARIANT),custom)
628 # XXX: only install "custom" dev files if -full & -mini are not selected
629 ifeq ($(CONFIG_PACKAGE_libffmpeg-full)$(CONFIG_PACKAGE_libffmpeg-mini),)
630 Build/InstallDev = $(Build/InstallDev/custom)
631 endif
632 endif
633 ifeq ($(BUILD_VARIANT),audio-dec)
634 # XXX: only install "audio-dec" dev files if -full & -mini are not selected
635 ifeq ($(CONFIG_PACKAGE_libffmpeg-full)$(CONFIG_PACKAGE_libffmpeg-mini),)
636 Build/InstallDev = $(Build/InstallDev/audio-dec)
637 endif
638 endif
639 ifeq ($(BUILD_VARIANT),full)
640 # XXX: always install "full" dev files if -full is selected
641 Build/InstallDev = $(Build/InstallDev/full)
642 endif
643 ifeq ($(BUILD_VARIANT),mini)
644 # XXX: only install "mini" dev files if -full is not selected
645 ifeq ($(CONFIG_PACKAGE_libffmpeg-full),)
646 Build/InstallDev = $(Build/InstallDev/mini)
647 endif
648 endif
649
650 define Package/ffmpeg/install
651 $(INSTALL_DIR) $(1)/usr/bin
652 $(CP) $(PKG_INSTALL_DIR)/usr/bin/ffmpeg $(1)/usr/bin/
653 endef
654
655 define Package/ffprobe/install
656 $(INSTALL_DIR) $(1)/usr/bin
657 $(CP) $(PKG_INSTALL_DIR)/usr/bin/ffprobe $(1)/usr/bin/
658 endef
659
660 define Package/ffserver/install
661 $(INSTALL_DIR) $(1)/usr/bin
662 $(CP) $(PKG_INSTALL_DIR)/usr/bin/ffserver $(1)/usr/bin/
663 endef
664
665 define Package/libffmpeg-custom/install
666 $(INSTALL_DIR) $(1)/usr/lib
667 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avformat,avutil}.so.* $(1)/usr/lib/
668 endef
669
670 # Soft float is LGPL (no libpostproc); Hard float is GPL (yes libpostproc)
671 define Package/libffmpeg-full/install
672 $(INSTALL_DIR) $(1)/usr/lib
673 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avdevice,avfilter,avformat,avresample,avutil,swresample,swscale}.so.* $(1)/usr/lib/
674 ifneq ($(CONFIG_SOFT_FLOAT),y)
675 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpostproc.so.* $(1)/usr/lib/
676 endif
677 endef
678
679 define Package/libffmpeg-mini/install
680 $(INSTALL_DIR) $(1)/usr/lib
681 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{avcodec,avformat,avutil}.so.* $(1)/usr/lib/
682 endef
683
684 Package/libffmpeg-audio-dec/install = $(Package/libffmpeg-custom/install)
685
686 $(eval $(call BuildPackage,ffmpeg))
687 $(eval $(call BuildPackage,ffprobe))
688 $(eval $(call BuildPackage,ffserver))
689 $(eval $(call BuildPackage,libffmpeg-audio-dec))
690 $(eval $(call BuildPackage,libffmpeg-full))
691 $(eval $(call BuildPackage,libffmpeg-mini))
692 ifneq ($(CONFIG_ALL),y)
693 $(eval $(call BuildPackage,libffmpeg-custom))
694 endif