[BOARD/PACKAGE] add FFMPEG to record&play /dev/fb0 + alsa capture (#48)

* [PACKAGE] downgrade FFMPEG(add) & X264
- use ffmpeg-3.1 thus downgrade ver. to working SDL1.2
- downgrade x264 to be inline with former ffmpeg
- uncomment FFSERVER build instructions (it is available in 3.1 version)

* [BOARD] 
- add `ffplay` & `ffmpeg` apps to record&play
- add `arecord` script for AUDIO capture (use alsaloop workaround)
- update appLinks with "params=&" for bg launch
- use `pkill` instead 'killall` for scripts (warning: it also checks for bash running under the same name)
- use FFPROBE to detect media format in `ffplay`
- for X264  use sources.buildroot.net (code.videolan.org src only works with git method)
- rm redundant usb Applink
- add 0003-ffplay-custom-sdlk.patch (to make hotkeys usable in miyoo)
This commit is contained in:
Apaczer
2023-11-18 17:27:30 +01:00
committed by GitHub
parent b7a8ba56ec
commit 423e87bd64
25 changed files with 212 additions and 366 deletions

View File

@@ -1774,12 +1774,6 @@ config BR2_PACKAGE_LUNIT
The lunit package was removed in favor of its fork lunitx, The lunit package was removed in favor of its fork lunitx,
which supports all versions of Lua. which supports all versions of Lua.
config BR2_PACKAGE_FFMPEG_FFSERVER
bool "ffmpeg ffserver removed"
select BR2_LEGACY
help
On July 10th, 2016, ffserver program has been dropped.
config BR2_PACKAGE_LIBUMP config BR2_PACKAGE_LIBUMP
bool "libump package removed" bool "libump package removed"
select BR2_LEGACY select BR2_LEGACY

View File

@@ -0,0 +1,18 @@
#!/bin/sh
if pgrep "arecord" > /dev/null; then
killall arecord
while (pgrep "arecord"); do
sleep 1
done
rmmod snd-aloop.ko
rm /mnt/.asoundrc
alsactl init
else
#WARNING: This disables audio output to speakers by redirecting it to alsaloop capturing device's card
echo 'pcm.!default { type plug slave.pcm "hw:Loopback,0,0" }' > /mnt/.asoundrc
modprobe snd-aloop.ko
alsactl init
mkdir -p /mnt/output
arecord -q -c2 -D hw:Loopback,1,0 -f S16_LE "/mnt/output/audio_$(date +%Y%m%d%H%M%S).wav"
fi

View File

@@ -0,0 +1,12 @@
#!/bin/sh
if ffprobe -v error -select_streams v:0 -show_entries stream=codec_type "$1" | grep -q "video"; then
ffplay -autoexit -i "$1"
elif ffprobe -v error -select_streams a:0 -show_entries stream=codec_type "$1" | grep -q "audio"; then
ffplay -nodisp -autoexit -i "$1"
else
echo -en "Invalid video/audio format!"
# We're using SDL terminal to display above echo msg
## because all stdout is parsed to /dev/null from gmenu2x and it's child ps
/mnt/apps/st/st -e "/bin/sh" "-c" "echo -e \"\n\n\n\n\n\n Invalid video or audio format!\"; sleep 2"
fi

View File

@@ -0,0 +1,11 @@
FFPLAY shortcuts:
-----------------------
ESCAPE ("Select") = quit
LSHIFT ("X"); f = fullscreen
SPACE ("Y"); RETURN ("Start")= pause
LCTRL ("B"); m = mute
RSHIFT/RALT ("R3/L3"); 0/9 = increase/decrease volume
LALT ("A"); s = step to next frame
LEFT/RIGHT (-) = Seek backward/forward 10 seconds.
DOWN/UP (-)= Seek backward/forward 1 minute.
PAGEUP/PAGEDOWN ("L2/R2")= Seek to the previous/next chapter. If there are no chapters seek backward/forward 10 minutes.

View File

@@ -0,0 +1,7 @@
#!/bin/sh
if pgrep "ffmpeg" > /dev/null; then
pkill ffmpeg
else
mkdir -p /mnt/output
ffmpeg -f fbdev -r 8 -i /dev/fb0 -c:v mpeg4 -framerate 15 "/mnt/output/video_$(date +%Y%m%d%H%M%S).mp4" -nostdin
fi

View File

@@ -0,0 +1,5 @@
title=FFPLAY
description=Play a movie/audio file
exec=/mnt/apps/ffmpeg/ffplay_launch.sh
manual=/mnt/apps/ffmpeg/manual.txt
selectordir=/mnt/output

View File

@@ -0,0 +1,4 @@
title=AUDIO rec
description=Start/Stop recording alsa HW audio output
exec=/mnt/apps/arecord/audio_record.sh
params=&

View File

@@ -0,0 +1,4 @@
title=VIDEO Rec
description=Start/Stop recording FB0 video in the background
exec=/mnt/apps/ffmpeg/video_record.sh
params=&

View File

@@ -1,3 +0,0 @@
title=USB change part.
description=USB switch FAT partition
exec=/mnt/apps/usb-serial-mass-storage/usb-change_primary_partition.sh

View File

@@ -35,6 +35,13 @@ BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_ESPEAK=y BR2_PACKAGE_ESPEAK=y
BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA=y BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA=y
BR2_PACKAGE_FFMPEG=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_MPG123=y BR2_PACKAGE_MPG123=y
BR2_PACKAGE_VORBIS_TOOLS=y BR2_PACKAGE_VORBIS_TOOLS=y
BR2_PACKAGE_P7ZIP=y BR2_PACKAGE_P7ZIP=y

View File

@@ -22,6 +22,13 @@ BR2_SYSTEM_BIN_SH_NONE=y
BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_FFMPEG=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_FLITE=y BR2_PACKAGE_FLITE=y
BR2_PACKAGE_MIMIC=y BR2_PACKAGE_MIMIC=y
BR2_PACKAGE_MIMIC_AUDIO_BACKEND_ALSA=y BR2_PACKAGE_MIMIC_AUDIO_BACKEND_ALSA=y
@@ -39,7 +46,6 @@ BR2_PACKAGE_GETTEXT=y
BR2_PACKAGE_LIBTOOL=y BR2_PACKAGE_LIBTOOL=y
BR2_PACKAGE_PKGCONF=y BR2_PACKAGE_PKGCONF=y
BR2_PACKAGE_FBGRAB=y BR2_PACKAGE_FBGRAB=y
BR2_PACKAGE_SDL=y
BR2_PACKAGE_SDL_GFX=y BR2_PACKAGE_SDL_GFX=y
BR2_PACKAGE_SDL_IMAGE=y BR2_PACKAGE_SDL_IMAGE=y
BR2_PACKAGE_SDL_IMAGE_GIF=y BR2_PACKAGE_SDL_IMAGE_GIF=y

View File

@@ -35,6 +35,13 @@ BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_ESPEAK=y BR2_PACKAGE_ESPEAK=y
BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA=y BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA=y
BR2_PACKAGE_FFMPEG=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_MPG123=y BR2_PACKAGE_MPG123=y
BR2_PACKAGE_VORBIS_TOOLS=y BR2_PACKAGE_VORBIS_TOOLS=y
BR2_PACKAGE_BZIP2=y BR2_PACKAGE_BZIP2=y

View File

@@ -22,6 +22,13 @@ BR2_INIT_NONE=y
BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_APLAY=y BR2_PACKAGE_ALSA_UTILS_APLAY=y
BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y
BR2_PACKAGE_FFMPEG=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
BR2_PACKAGE_FFMPEG_FFPLAY=y
BR2_PACKAGE_FFMPEG_FFPROBE=y
BR2_PACKAGE_FFMPEG_AVRESAMPLE=y
BR2_PACKAGE_FFMPEG_POSTPROC=y
BR2_PACKAGE_MPG123=y BR2_PACKAGE_MPG123=y
BR2_PACKAGE_VORBIS_TOOLS=y BR2_PACKAGE_VORBIS_TOOLS=y
BR2_PACKAGE_BZIP2=y BR2_PACKAGE_BZIP2=y
@@ -31,7 +38,6 @@ BR2_PACKAGE_STRACE=y
BR2_PACKAGE_GETTEXT=y BR2_PACKAGE_GETTEXT=y
BR2_PACKAGE_LIBTOOL=y BR2_PACKAGE_LIBTOOL=y
BR2_PACKAGE_FBGRAB=y BR2_PACKAGE_FBGRAB=y
BR2_PACKAGE_SDL=y
BR2_PACKAGE_SDL_GFX=y BR2_PACKAGE_SDL_GFX=y
BR2_PACKAGE_SDL_IMAGE=y BR2_PACKAGE_SDL_IMAGE=y
BR2_PACKAGE_SDL_IMAGE_GIF=y BR2_PACKAGE_SDL_IMAGE_GIF=y

View File

@@ -0,0 +1,26 @@
Fix bfin compile error
See gcc bug report:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77311
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
diff -Nur ffmpeg-2.8.7.orig/libavcodec/hevcdsp_template.c ffmpeg-2.8.7/libavcodec/hevcdsp_template.c
--- ffmpeg-2.8.7.orig/libavcodec/hevcdsp_template.c 2016-03-29 04:25:16.000000000 +0200
+++ ffmpeg-2.8.7/libavcodec/hevcdsp_template.c 2016-08-12 21:32:36.728178969 +0200
@@ -1517,7 +1517,14 @@
#define TQ2 pix[2 * xstride + 3 * ystride]
#define TQ3 pix[3 * xstride + 3 * ystride]
-static void FUNC(hevc_loop_filter_luma)(uint8_t *_pix,
+// Blackfin gcc 6.1.x fails with
+// unable to find a register to spill in class CCREGS
+#if defined(__bfin__)
+#define disable_opt __attribute__ ((optimize("O1")))
+#else
+#define disable_opt
+#endif
+static void disable_opt FUNC(hevc_loop_filter_luma)(uint8_t *_pix,
ptrdiff_t _xstride, ptrdiff_t _ystride,
int beta, int *_tc,
uint8_t *_no_p, uint8_t *_no_q)

View File

@@ -1,43 +0,0 @@
From bf8eae2d30a205bb76ac625e04c0351106981b9e Mon Sep 17 00:00:00 2001
From: Parker Ernest <@>
Date: Sun, 23 Feb 2020 13:22:42 +0100
Subject: [PATCH] swscale/x86/yuv2rgb: Fix build without SSSE3
commit fc6a5883d6af8cae0e96af84dda0ad74b360a084 breaks build on
x86_64 CPUs which do not have SSSE3, e.g. AMD Phenom-II
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
[bernd.kuhls@t-online.de:
- retrieved from upstream patchwork:
https://patchwork.ffmpeg.org/project/ffmpeg/patch/20200223122256.23402-1-michael@niedermayer.cc/
]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[yann.morin.1998@free.fr: fix reference top patchwork and SoB order]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
libswscale/x86/yuv2rgb.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libswscale/x86/yuv2rgb.c b/libswscale/x86/yuv2rgb.c
index c12e88cbb5..4791e5b93a 100644
--- a/libswscale/x86/yuv2rgb.c
+++ b/libswscale/x86/yuv2rgb.c
@@ -83,6 +83,7 @@ av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c)
#if HAVE_X86ASM
int cpu_flags = av_get_cpu_flags();
+#if HAVE_SSSE3
if (EXTERNAL_SSSE3(cpu_flags)) {
switch (c->dstFormat) {
case AV_PIX_FMT_RGB32:
@@ -111,6 +112,7 @@ av_cold SwsFunc ff_yuv2rgb_init_x86(SwsContext *c)
return yuv420_rgb15_ssse3;
}
}
+#endif
if (EXTERNAL_MMXEXT(cpu_flags)) {
switch (c->dstFormat) {
--
2.26.2

View File

@@ -1,36 +0,0 @@
From 2c6b3f357331e203ad87214984661c40704aceb7 Mon Sep 17 00:00:00 2001
From: Rainer Hochecker <fernetmenta@online.de>
Date: Sat, 26 Jan 2019 19:48:35 +0100
Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
It was hit frequently when watching h264 channels received via DVB-X.
Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
Downloaded from Kodi ffmpeg repo:
https://github.com/xbmc/FFmpeg/commit/2c6b3f357331e203ad87214984661c40704aceb7
Patch was sent upstream:
http://ffmpeg.org/pipermail/ffmpeg-devel/2019-March/240863.html
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
libavcodec/vaapi_h264.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
index dd2a6571604..e521a05c4ff 100644
--- a/libavcodec/vaapi_h264.c
+++ b/libavcodec/vaapi_h264.c
@@ -314,6 +314,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
H264SliceContext *sl = &h->slice_ctx[0];
int ret;
+ if (pic->nb_slices == 0) {
+ ret = AVERROR_INVALIDDATA;
+ goto finish;
+ }
+
ret = ff_vaapi_decode_issue(avctx, pic);
if (ret < 0)
goto finish;

View File

@@ -0,0 +1,13 @@
diff --git a/libavutil/mem.h b/libavutil/mem.h
index f9d88847..5d505d22 100644
--- a/libavutil/mem.h
+++ b/libavutil/mem.h
@@ -335,7 +335,7 @@ av_alloc_size(2, 3) void *av_realloc_array(void *ptr, size_t nmemb, size_t size)
* @warning Unlike av_malloc(), the allocated memory is not guaranteed to be
* correctly aligned.
*/
-av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size);
+int av_reallocp_array(void *ptr, size_t nmemb, size_t size);
/**
* Reallocate the given buffer if it is not large enough, otherwise do nothing.

View File

@@ -0,0 +1,36 @@
diff --git a/ffplay.c b/ffplay.c
index f28e0877..b08d7598 100644
--- a/ffplay.c
+++ b/root/ffplay.c
@@ -3367,25 +3367,31 @@ static void event_loop(VideoState *cur_stream)
do_exit(cur_stream);
break;
case SDLK_f:
+ case SDLK_LSHIFT:
toggle_full_screen(cur_stream);
cur_stream->force_refresh = 1;
break;
case SDLK_p:
case SDLK_SPACE:
+ case SDLK_RETURN:
toggle_pause(cur_stream);
break;
case SDLK_m:
+ case SDLK_LCTRL:
toggle_mute(cur_stream);
break;
case SDLK_KP_MULTIPLY:
case SDLK_0:
+ case SDLK_RSHIFT:
update_volume(cur_stream, 1, SDL_VOLUME_STEP);
break;
case SDLK_KP_DIVIDE:
case SDLK_9:
+ case SDLK_RALT:
update_volume(cur_stream, -1, SDL_VOLUME_STEP);
break;
case SDLK_s: // S: Step to next frame
+ case SDLK_LALT:
step_to_next_frame(cur_stream);
break;
case SDLK_a:

View File

@@ -1,72 +0,0 @@
From 6e8daf0d502a2a822f1f08f42368d7d676dc1a9e Mon Sep 17 00:00:00 2001
From: Bernd Kuhls <bernd.kuhls@t-online.de>
Date: Sun, 6 Jun 2021 08:54:53 +0200
Subject: [PATCH] libavutil: Fix mips build
Check for sys/auxv.h because not all toolchains contain this header.
Fixes https://trac.ffmpeg.org/ticket/9138
Patch sent upstream:
http://ffmpeg.org/pipermail/ffmpeg-devel/2021-June/281272.html
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
configure | 2 ++
libavutil/mips/cpu.c | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/configure b/configure
index 6bfd98b384..773a7d516c 100755
--- a/configure
+++ b/configure
@@ -2161,6 +2161,7 @@ HEADERS_LIST="
opencv2_core_core_c_h
OpenGL_gl3_h
poll_h
+ sys_auxv_h
sys_param_h
sys_resource_h
sys_select_h
@@ -6218,6 +6219,7 @@ check_func_headers VideoToolbox/VTCompressionSession.h VTCompressionSessionPrepa
check_headers windows.h
check_headers X11/extensions/XvMClib.h
check_headers asm/types.h
+check_headers sys/auxv.h
# it seems there are versions of clang in some distros that try to use the
# gcc headers, which explodes for stdatomic
diff --git a/libavutil/mips/cpu.c b/libavutil/mips/cpu.c
index 59619d54de..19196de50b 100644
--- a/libavutil/mips/cpu.c
+++ b/libavutil/mips/cpu.c
@@ -19,7 +19,7 @@
#include "libavutil/cpu.h"
#include "libavutil/cpu_internal.h"
#include "config.h"
-#if defined __linux__ || defined __ANDROID__
+#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H
#include <stdint.h>
#include <stdio.h>
#include <string.h>
@@ -28,7 +28,7 @@
#include "libavutil/avstring.h"
#endif
-#if defined __linux__ || defined __ANDROID__
+#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H
#define HWCAP_LOONGSON_CPUCFG (1 << 14)
@@ -105,7 +105,7 @@ static int cpu_flags_cpuinfo(void)
int ff_get_cpu_flags_mips(void)
{
-#if defined __linux__ || defined __ANDROID__
+#if (defined __linux__ || defined __ANDROID__) && HAVE_SYS_AUXV_H
if (cpucfg_available())
return cpu_flags_cpucfg();
else
--
2.29.2

View File

@@ -1,47 +0,0 @@
From 0c288853630b7b4e004774c39945d4a804afcfa8 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Fri, 6 Aug 2021 09:17:20 +0200
Subject: [PATCH] configure: add extralibs to extralibs_xxx
Add extralibs to extralibs_xxx (e.g. extralibs_avformat) to allow
applications such as motion to retrieve ffmpeg dependencies such as
-latomic through pkg-config
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Upstream status: not upstreamable]
---
configure | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/configure b/configure
index 0bb3a7cf2b..3bda99e415 100755
--- a/configure
+++ b/configure
@@ -7602,15 +7602,15 @@ rpath=$(enabled rpath && echo "-Wl,-rpath,\${libdir}")
source_path=${source_path}
LIBPREF=${LIBPREF}
LIBSUF=${LIBSUF}
-extralibs_avutil="$avutil_extralibs"
-extralibs_avcodec="$avcodec_extralibs"
-extralibs_avformat="$avformat_extralibs"
-extralibs_avdevice="$avdevice_extralibs"
-extralibs_avfilter="$avfilter_extralibs"
-extralibs_avresample="$avresample_extralibs"
-extralibs_postproc="$postproc_extralibs"
-extralibs_swscale="$swscale_extralibs"
-extralibs_swresample="$swresample_extralibs"
+extralibs_avutil="$avutil_extralibs $extralibs"
+extralibs_avcodec="$avcodec_extralibs $extralibs"
+extralibs_avformat="$avformat_extralibs $extralibs"
+extralibs_avdevice="$avdevice_extralibs $extralibs"
+extralibs_avfilter="$avfilter_extralibs $extralibs"
+extralibs_avresample="$avresample_extralibs $extralibs"
+extralibs_postproc="$postproc_extralibs $extralibs"
+extralibs_swscale="$swscale_extralibs $extralibs"
+extralibs_swresample="$swresample_extralibs $extralibs"
EOF
for lib in $LIBRARY_LIST; do
--
2.30.2

View File

@@ -1,26 +1,16 @@
config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS config BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
bool bool
default y
# fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2 # fenv.h lacks FE_INVALID, FE_OVERFLOW & FE_UNDERFLOW on nios2
depends on !BR2_nios2
# No support for ARMv7-M in the ARM assembly logic # No support for ARMv7-M in the ARM assembly logic
depends on !BR2_ARM_CPU_ARMV7M # Microblaze build affected by gcc PR71124 (infinite loop)
# m68k coldfire causes a build failure, because the check for default y if !BR2_nios2 && !BR2_ARM_CPU_ARMV7M && !BR2_microblaze
# atomics (atomic_store) succeeds, which causes ffmpeg to
# think atomic intrinsics are available, while they are
# not. See https://patchwork.ozlabs.org/patch/756664/ and
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68467 for more
# details.
depends on !BR2_m68k_cf
# assertion fail in binutils
depends on !(BR2_or1k && !BR2_TOOLCHAIN_GCC_AT_LEAST_9)
menuconfig BR2_PACKAGE_FFMPEG menuconfig BR2_PACKAGE_FFMPEG
bool "ffmpeg" bool "ffmpeg"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
help help
FFmpeg is a complete, cross-platform solution to record, FFmpeg is a complete, cross-platform solution to record, convert
convert and stream audio and video. and stream audio and video.
http://www.ffmpeg.org http://www.ffmpeg.org
@@ -50,16 +40,18 @@ config BR2_PACKAGE_FFMPEG_FFMPEG
config BR2_PACKAGE_FFMPEG_FFPLAY config BR2_PACKAGE_FFMPEG_FFPLAY
bool "Build ffplay" bool "Build ffplay"
depends on !BR2_STATIC_LIBS # sdl2
select BR2_PACKAGE_FFMPEG_SWSCALE select BR2_PACKAGE_FFMPEG_SWSCALE
select BR2_PACKAGE_SDL2 select BR2_PACKAGE_SDL
help help
FFplay is a very simple and portable media player using the FFplay is a very simple and portable media player using the
FFmpeg libraries and the SDL library. FFmpeg libraries and the SDL library.
It is mostly used as a testbed for the various FFmpeg APIs. It is mostly used as a testbed for the various FFmpeg APIs.
comment "ffplay needs a toolchain w/ dynamic library" config BR2_PACKAGE_FFMPEG_FFSERVER
depends on BR2_STATIC_LIBS bool "Build ffserver"
depends on BR2_USE_MMU # fork()
help
FFserver is a streaming server for both audio and video.
config BR2_PACKAGE_FFMPEG_FFPROBE config BR2_PACKAGE_FFMPEG_FFPROBE
bool "Build ffprobe" bool "Build ffprobe"
@@ -67,13 +59,6 @@ config BR2_PACKAGE_FFMPEG_FFPROBE
FFprobe is a utility to determine the audio and video FFprobe is a utility to determine the audio and video
characteristics of a container file. characteristics of a container file.
config BR2_PACKAGE_FFMPEG_XCBGRAB
bool "Build X11 screen grabbing"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBXCB
help
X11 screen grabbing using libxcb.
config BR2_PACKAGE_FFMPEG_AVRESAMPLE config BR2_PACKAGE_FFMPEG_AVRESAMPLE
bool "Build libavresample" bool "Build libavresample"
help help

View File

@@ -1,5 +1,2 @@
# Locally calculated # Locally calculated
sha256 6c5b6c195e61534766a0b5fe16acc919170c883362612816d0a1c7f4f947006e ffmpeg-4.4.3.tar.xz sha256 919022430e2dad782fabccffdd6c4cae4e7029f84f0701aa662f036a9ca65423 ffmpeg-3.1.tar.xz
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING.GPLv2
sha256 b634ab5640e258563c536e658cad87080553df6f34f62269a21d554844e58bfe COPYING.LGPLv2.1
sha256 cb48bf09a11f5fb576cddb0431c8f5ed0a60157a9ec942adffc13907cbe083f2 LICENSE.md

View File

@@ -4,20 +4,18 @@
# #
################################################################################ ################################################################################
FFMPEG_VERSION = 4.4.3 FFMPEG_VERSION = 3.1
FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.xz FFMPEG_SOURCE = ffmpeg-$(FFMPEG_VERSION).tar.xz
FFMPEG_SITE = http://ffmpeg.org/releases FFMPEG_SITE = http://ffmpeg.org/releases
FFMPEG_INSTALL_STAGING = YES FFMPEG_INSTALL_STAGING = YES
FFMPEG_LICENSE = LGPL-2.1+, libjpeg license FFMPEG_LICENSE = LGPLv2.1+, libjpeg license
FFMPEG_LICENSE_FILES = LICENSE.md COPYING.LGPLv2.1 FFMPEG_LICENSE_FILES = LICENSE.md COPYING.LGPLv2.1
ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y) ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y)
FFMPEG_LICENSE += and GPL-2.0+ FFMPEG_LICENSE += and GPLv2+
FFMPEG_LICENSE_FILES += COPYING.GPLv2 FFMPEG_LICENSE_FILES += COPYING.GPLv2
endif endif
FFMPEG_CPE_ID_VENDOR = ffmpeg
FFMPEG_CONF_OPTS = \ FFMPEG_CONF_OPTS = \
--prefix=/usr \ --prefix=/usr \
--enable-avfilter \ --enable-avfilter \
@@ -28,6 +26,7 @@ FFMPEG_CONF_OPTS = \
--enable-avdevice \ --enable-avdevice \
--enable-avcodec \ --enable-avcodec \
--enable-avformat \ --enable-avformat \
--disable-x11grab \
--enable-network \ --enable-network \
--disable-gray \ --disable-gray \
--enable-swscale-alpha \ --enable-swscale-alpha \
@@ -40,25 +39,27 @@ FFMPEG_CONF_OPTS = \
--disable-dxva2 \ --disable-dxva2 \
--enable-runtime-cpudetect \ --enable-runtime-cpudetect \
--disable-hardcoded-tables \ --disable-hardcoded-tables \
--disable-memalign-hack \
--disable-mipsdsp \ --disable-mipsdsp \
--disable-mipsdspr2 \ --disable-mipsdspr2 \
--disable-msa \ --disable-msa \
--enable-hwaccels \ --enable-hwaccels \
--disable-cuda \
--disable-cuvid \
--disable-nvenc \
--disable-avisynth \ --disable-avisynth \
--disable-frei0r \ --disable-frei0r \
--disable-libopencore-amrnb \ --disable-libopencore-amrnb \
--disable-libopencore-amrwb \ --disable-libopencore-amrwb \
--disable-libcdio \
--disable-libdc1394 \ --disable-libdc1394 \
--disable-libgsm \ --disable-libgsm \
--disable-libilbc \ --disable-libilbc \
--disable-libnut \
--disable-libopenjpeg \
--disable-libschroedinger \
--disable-libvo-amrwbenc \ --disable-libvo-amrwbenc \
--disable-symver \ --disable-symver \
--disable-doc --disable-doc
FFMPEG_DEPENDENCIES += host-pkgconf FFMPEG_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBICONV),libiconv) host-pkgconf
ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y) ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y)
FFMPEG_CONF_OPTS += --enable-gpl FFMPEG_CONF_OPTS += --enable-gpl
@@ -79,18 +80,17 @@ FFMPEG_CONF_OPTS += --disable-ffmpeg
endif endif
ifeq ($(BR2_PACKAGE_FFMPEG_FFPLAY),y) ifeq ($(BR2_PACKAGE_FFMPEG_FFPLAY),y)
FFMPEG_DEPENDENCIES += sdl2 FFMPEG_DEPENDENCIES += sdl
FFMPEG_CONF_OPTS += --enable-ffplay FFMPEG_CONF_OPTS += --enable-ffplay
FFMPEG_CONF_ENV += SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl2-config FFMPEG_CONF_ENV += SDL_CONFIG=$(STAGING_DIR)/usr/bin/sdl-config
else else
FFMPEG_CONF_OPTS += --disable-ffplay FFMPEG_CONF_OPTS += --disable-ffplay
endif endif
ifeq ($(BR2_PACKAGE_LIBV4L),y) ifeq ($(BR2_PACKAGE_FFMPEG_FFSERVER),y)
FFMPEG_DEPENDENCIES += libv4l FFMPEG_CONF_OPTS += --enable-ffserver
FFMPEG_CONF_OPTS += --enable-libv4l2
else else
FFMPEG_CONF_OPTS += --disable-libv4l2 FFMPEG_CONF_OPTS += --disable-ffserver
endif endif
ifeq ($(BR2_PACKAGE_FFMPEG_AVRESAMPLE),y) ifeq ($(BR2_PACKAGE_FFMPEG_AVRESAMPLE),y)
@@ -105,17 +105,6 @@ else
FFMPEG_CONF_OPTS += --disable-ffprobe FFMPEG_CONF_OPTS += --disable-ffprobe
endif endif
ifeq ($(BR2_PACKAGE_FFMPEG_XCBGRAB),y)
FFMPEG_CONF_OPTS += \
--enable-libxcb \
--enable-libxcb-shape \
--enable-libxcb-shm \
--enable-libxcb-xfixes
FFMPEG_DEPENDENCIES += libxcb
else
FFMPEG_CONF_OPTS += --disable-libxcb
endif
ifeq ($(BR2_PACKAGE_FFMPEG_POSTPROC),y) ifeq ($(BR2_PACKAGE_FFMPEG_POSTPROC),y)
FFMPEG_CONF_OPTS += --enable-postproc FFMPEG_CONF_OPTS += --enable-postproc
else else
@@ -155,7 +144,7 @@ endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),all) ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),all)
FFMPEG_CONF_OPTS += --disable-bsfs \ FFMPEG_CONF_OPTS += --disable-bsfs \
$(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),--enable-bsf=$(x)) $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),--enable-bsfs=$(x))
endif endif
ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),all) ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),all)
@@ -170,21 +159,12 @@ endif
ifeq ($(BR2_PACKAGE_FFMPEG_INDEVS),y) ifeq ($(BR2_PACKAGE_FFMPEG_INDEVS),y)
FFMPEG_CONF_OPTS += --enable-indevs FFMPEG_CONF_OPTS += --enable-indevs
ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
FFMPEG_CONF_OPTS += --enable-alsa
FFMPEG_DEPENDENCIES += alsa-lib
else
FFMPEG_CONF_OPTS += --disable-alsa
endif
else else
FFMPEG_CONF_OPTS += --disable-indevs FFMPEG_CONF_OPTS += --disable-indevs
endif endif
ifeq ($(BR2_PACKAGE_FFMPEG_OUTDEVS),y) ifeq ($(BR2_PACKAGE_FFMPEG_OUTDEVS),y)
FFMPEG_CONF_OPTS += --enable-outdevs FFMPEG_CONF_OPTS += --enable-outdevs
ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
FFMPEG_DEPENDENCIES += alsa-lib
endif
else else
FFMPEG_CONF_OPTS += --disable-outdevs FFMPEG_CONF_OPTS += --disable-outdevs
endif endif
@@ -216,13 +196,6 @@ else
FFMPEG_CONF_OPTS += --disable-libfdk-aac FFMPEG_CONF_OPTS += --disable-libfdk-aac
endif endif
ifeq ($(BR2_PACKAGE_FFMPEG_GPL)$(BR2_PACKAGE_LIBCDIO_PARANOIA),yy)
FFMPEG_CONF_OPTS += --enable-libcdio
FFMPEG_DEPENDENCIES += libcdio-paranoia
else
FFMPEG_CONF_OPTS += --disable-libcdio
endif
ifeq ($(BR2_PACKAGE_GNUTLS),y) ifeq ($(BR2_PACKAGE_GNUTLS),y)
FFMPEG_CONF_OPTS += --enable-gnutls --disable-openssl FFMPEG_CONF_OPTS += --enable-gnutls --disable-openssl
FFMPEG_DEPENDENCIES += gnutls FFMPEG_DEPENDENCIES += gnutls
@@ -245,13 +218,6 @@ ifeq ($(BR2_PACKAGE_FFMPEG_GPL)$(BR2_PACKAGE_LIBEBUR128),yy)
FFMPEG_DEPENDENCIES += libebur128 FFMPEG_DEPENDENCIES += libebur128
endif endif
ifeq ($(BR2_PACKAGE_LIBDRM),y)
FFMPEG_CONF_OPTS += --enable-libdrm
FFMPEG_DEPENDENCIES += libdrm
else
FFMPEG_CONF_OPTS += --disable-libdrm
endif
ifeq ($(BR2_PACKAGE_LIBOPENH264),y) ifeq ($(BR2_PACKAGE_LIBOPENH264),y)
FFMPEG_CONF_OPTS += --enable-libopenh264 FFMPEG_CONF_OPTS += --enable-libopenh264
FFMPEG_DEPENDENCIES += libopenh264 FFMPEG_DEPENDENCIES += libopenh264
@@ -281,14 +247,6 @@ else
FFMPEG_CONF_OPTS += --disable-vdpau FFMPEG_CONF_OPTS += --disable-vdpau
endif endif
ifeq ($(BR2_PACKAGE_RPI_USERLAND),y)
FFMPEG_CONF_OPTS += --enable-mmal --enable-omx --enable-omx-rpi \
--extra-cflags=-I$(STAGING_DIR)/usr/include/IL
FFMPEG_DEPENDENCIES += rpi-userland
else
FFMPEG_CONF_OPTS += --disable-mmal --disable-omx --disable-omx-rpi
endif
# To avoid a circular dependency only use opencv if opencv itself does # To avoid a circular dependency only use opencv if opencv itself does
# not depend on ffmpeg. # not depend on ffmpeg.
ifeq ($(BR2_PACKAGE_OPENCV3_LIB_IMGPROC)x$(BR2_PACKAGE_OPENCV3_WITH_FFMPEG),yx) ifeq ($(BR2_PACKAGE_OPENCV3_LIB_IMGPROC)x$(BR2_PACKAGE_OPENCV3_WITH_FFMPEG),yx)
@@ -326,13 +284,6 @@ else
FFMPEG_CONF_OPTS += --disable-libbluray FFMPEG_CONF_OPTS += --disable-libbluray
endif endif
ifeq ($(BR2_PACKAGE_INTEL_MEDIASDK),y)
FFMPEG_CONF_OPTS += --enable-libmfx
FFMPEG_DEPENDENCIES += intel-mediasdk
else
FFMPEG_CONF_OPTS += --disable-libmfx
endif
ifeq ($(BR2_PACKAGE_RTMPDUMP),y) ifeq ($(BR2_PACKAGE_RTMPDUMP),y)
FFMPEG_CONF_OPTS += --enable-librtmp FFMPEG_CONF_OPTS += --enable-librtmp
FFMPEG_DEPENDENCIES += rtmpdump FFMPEG_DEPENDENCIES += rtmpdump
@@ -368,11 +319,11 @@ else
FFMPEG_CONF_OPTS += --disable-libtheora FFMPEG_CONF_OPTS += --disable-libtheora
endif endif
ifeq ($(BR2_PACKAGE_LIBICONV),y) ifeq ($(BR2_PACKAGE_WAVPACK),y)
FFMPEG_CONF_OPTS += --enable-iconv FFMPEG_CONF_OPTS += --enable-libwavpack
FFMPEG_DEPENDENCIES += libiconv FFMPEG_DEPENDENCIES += wavpack
else else
FFMPEG_CONF_OPTS += --disable-iconv FFMPEG_CONF_OPTS += --disable-libwavpack
endif endif
# ffmpeg freetype support require fenv.h which is only # ffmpeg freetype support require fenv.h which is only
@@ -392,13 +343,6 @@ else
FFMPEG_CONF_OPTS += --disable-fontconfig FFMPEG_CONF_OPTS += --disable-fontconfig
endif endif
ifeq ($(BR2_PACKAGE_OPENJPEG),y)
FFMPEG_CONF_OPTS += --enable-libopenjpeg
FFMPEG_DEPENDENCIES += openjpeg
else
FFMPEG_CONF_OPTS += --disable-libopenjpeg
endif
ifeq ($(BR2_PACKAGE_X264)$(BR2_PACKAGE_FFMPEG_GPL),yy) ifeq ($(BR2_PACKAGE_X264)$(BR2_PACKAGE_FFMPEG_GPL),yy)
FFMPEG_CONF_OPTS += --enable-libx264 FFMPEG_CONF_OPTS += --enable-libx264
FFMPEG_DEPENDENCIES += x264 FFMPEG_DEPENDENCIES += x264
@@ -413,18 +357,16 @@ else
FFMPEG_CONF_OPTS += --disable-libx265 FFMPEG_CONF_OPTS += --disable-libx265
endif endif
ifeq ($(BR2_PACKAGE_DAV1D),y)
FFMPEG_CONF_OPTS += --enable-libdav1d
FFMPEG_DEPENDENCIES += dav1d
else
FFMPEG_CONF_OPTS += --disable-libdav1d
endif
ifeq ($(BR2_X86_CPU_HAS_MMX),y) ifeq ($(BR2_X86_CPU_HAS_MMX),y)
FFMPEG_CONF_OPTS += --enable-x86asm FFMPEG_CONF_OPTS += --enable-yasm
FFMPEG_DEPENDENCIES += host-nasm FFMPEG_DEPENDENCIES += host-yasm
else else
FFMPEG_CONF_OPTS += --disable-x86asm ifeq ($(BR2_x86_i586),y)
# Needed to work around a bug with gcc 5.x:
# error: 'asm' operand has impossible constraints
FFMPEG_CONF_OPTS += --disable-inline-asm
endif
FFMPEG_CONF_OPTS += --disable-yasm
FFMPEG_CONF_OPTS += --disable-mmx FFMPEG_CONF_OPTS += --disable-mmx
endif endif
@@ -494,8 +436,6 @@ FFMPEG_CONF_OPTS += --disable-vfp
endif endif
ifeq ($(BR2_ARM_CPU_HAS_NEON),y) ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
FFMPEG_CONF_OPTS += --enable-neon FFMPEG_CONF_OPTS += --enable-neon
else ifeq ($(BR2_aarch64),y)
FFMPEG_CONF_OPTS += --enable-neon
else else
FFMPEG_CONF_OPTS += --disable-neon FFMPEG_CONF_OPTS += --disable-neon
endif endif
@@ -506,26 +446,14 @@ FFMPEG_CONF_OPTS += --disable-mipsfpu
else else
FFMPEG_CONF_OPTS += --enable-mipsfpu FFMPEG_CONF_OPTS += --enable-mipsfpu
endif endif
# Fix build failure on several missing assembly instructions
FFMPEG_CONF_OPTS += --disable-asm
endif # MIPS endif # MIPS
ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC):$(BR2_powerpc64le),y:) ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
FFMPEG_CONF_OPTS += --enable-altivec
else ifeq ($(BR2_POWERPC_CPU_HAS_VSX):$(BR2_powerpc64le),y:y)
# On LE, ffmpeg AltiVec support needs VSX intrinsics, and VSX
# is an extension to AltiVec.
FFMPEG_CONF_OPTS += --enable-altivec FFMPEG_CONF_OPTS += --enable-altivec
else else
FFMPEG_CONF_OPTS += --disable-altivec FFMPEG_CONF_OPTS += --disable-altivec
endif endif
# Uses __atomic_fetch_add_4
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
FFMPEG_CONF_OPTS += --extra-libs=-latomic
endif
ifeq ($(BR2_STATIC_LIBS),) ifeq ($(BR2_STATIC_LIBS),)
FFMPEG_CONF_OPTS += --enable-pic FFMPEG_CONF_OPTS += --enable-pic
else else
@@ -542,14 +470,6 @@ else ifneq ($(GCC_TARGET_ARCH),)
FFMPEG_CONF_OPTS += --cpu="$(GCC_TARGET_ARCH)" FFMPEG_CONF_OPTS += --cpu="$(GCC_TARGET_ARCH)"
endif endif
FFMPEG_CFLAGS = $(TARGET_CFLAGS)
ifeq ($(BR2_TOOLCHAIN_HAS_GCC_BUG_85180),y)
FFMPEG_CONF_OPTS += --disable-optimizations
FFMPEG_CFLAGS += -O0
endif
FFMPEG_CONF_ENV += CFLAGS="$(FFMPEG_CFLAGS)"
FFMPEG_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_FFMPEG_EXTRACONF)) FFMPEG_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_FFMPEG_EXTRACONF))
# Override FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others # Override FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others
@@ -572,9 +492,4 @@ define FFMPEG_CONFIGURE_CMDS
) )
endef endef
define FFMPEG_REMOVE_EXAMPLE_SRC_FILES
rm -rf $(TARGET_DIR)/usr/share/ffmpeg/examples
endef
FFMPEG_POST_INSTALL_TARGET_HOOKS += FFMPEG_REMOVE_EXAMPLE_SRC_FILES
$(eval $(autotools-package)) $(eval $(autotools-package))

View File

@@ -1,3 +1,2 @@
# Locally computed # Locally computed
sha256 58f39bf23a4e38ac3dd841a3f9ccf2aa16d2b0c35df9aecd9f3b5062780e5d74 x264-35417dcd65a57321fbadf98c9a4cff1cb741db4b.tar.gz sha256 a3a304da9eb1d5e6b19102e3c4156e17a9e7142d6dc1336e1001ff214c986843 x264-72d53ab2ac7af24597a824e868f2ef363a22f5d4.tar.gz
sha256 32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670 COPYING

View File

@@ -4,18 +4,18 @@
# #
################################################################################ ################################################################################
X264_VERSION = 35417dcd65a57321fbadf98c9a4cff1cb741db4b X264_VERSION = 72d53ab2ac7af24597a824e868f2ef363a22f5d4
X264_SITE = https://code.videolan.org/videolan/x264/-/archive/$(VERSION)/x264-$(VERSION).tar.gz X264_SITE = http://sources.buildroot.net
X264_LICENSE = GPL-2.0+ X264_LICENSE = GPLv2+
X264_DEPENDENCIES = host-pkgconf X264_DEPENDENCIES = host-pkgconf
X264_LICENSE_FILES = COPYING X264_LICENSE_FILES = COPYING
X264_INSTALL_STAGING = YES X264_INSTALL_STAGING = YES
X264_CONF_OPTS = --disable-avs --disable-lavf --disable-swscale X264_CONF_OPTS = --disable-avs
ifeq ($(BR2_i386)$(BR2_x86_64),y) ifeq ($(BR2_i386)$(BR2_x86_64),y)
# nasm needed for assembly files # yasm needed for assembly files
X264_DEPENDENCIES += host-nasm X264_DEPENDENCIES += host-yasm
X264_CONF_ENV += AS="$(HOST_DIR)/bin/nasm" X264_CONF_ENV += AS="$(HOST_DIR)/usr/bin/yasm"
else ifeq ($(BR2_ARM_CPU_ARMV7A)$(BR2_aarch64),y) else ifeq ($(BR2_ARM_CPU_ARMV7A)$(BR2_aarch64),y)
# We need to pass gcc as AS, because the ARM assembly files have to be # We need to pass gcc as AS, because the ARM assembly files have to be
# preprocessed # preprocessed
@@ -36,11 +36,6 @@ ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
X264_CONF_OPTS += --disable-thread X264_CONF_OPTS += --disable-thread
endif endif
# Even though the configure script is not generated by autoconf, x264
# uses config.sub/config.guess, so we want up-to-date versions of
# them.
X264_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK
# the configure script is not generated by autoconf # the configure script is not generated by autoconf
define X264_CONFIGURE_CMDS define X264_CONFIGURE_CMDS
(cd $(@D); $(TARGET_CONFIGURE_OPTS) $(X264_CONF_ENV) ./configure \ (cd $(@D); $(TARGET_CONFIGURE_OPTS) $(X264_CONF_ENV) ./configure \