* [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg
@ 2014-01-15 18:44 Bernd Kuhls
2014-01-15 20:02 ` Peter Korsgaard
0 siblings, 1 reply; 10+ messages in thread
From: Bernd Kuhls @ 2014-01-15 18:44 UTC (permalink / raw)
To: buildroot
External ffmpeg 1.2.4 is incompatible, gst-ffmpeg suggests
to always use internal libav.
Adding two patches:
Allow uClibc compilation: gst-ffmpeg-uclibc.patch
Fixes compiling with gcc-4.7: gst-ffmpeg-0.10.13_gcc47.patch (taken from Slackware)
Fixes
http://autobuild.buildroot.net/results/ab8/ab8ec4904020ceb848a1e50f1865f594f46b8295//
http://autobuild.buildroot.net/results/f0a/f0a420015a92ebb8868c41c0dbf82cf27b2bdd0f//
Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
---
package/gstreamer/gst-ffmpeg/Config.in | 4 --
.../gst-ffmpeg/gst-ffmpeg-0.10.13_gcc47.patch | 65 ++++++++++++++++++++
.../gstreamer/gst-ffmpeg/gst-ffmpeg-uclibc.patch | 16 +++++
package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk | 9 ++-
4 files changed, 88 insertions(+), 6 deletions(-)
create mode 100644 package/gstreamer/gst-ffmpeg/gst-ffmpeg-0.10.13_gcc47.patch
create mode 100644 package/gstreamer/gst-ffmpeg/gst-ffmpeg-uclibc.patch
diff --git a/package/gstreamer/gst-ffmpeg/Config.in b/package/gstreamer/gst-ffmpeg/Config.in
index da254ef..d879f5e 100644
--- a/package/gstreamer/gst-ffmpeg/Config.in
+++ b/package/gstreamer/gst-ffmpeg/Config.in
@@ -1,10 +1,6 @@
config BR2_PACKAGE_GST_FFMPEG
bool "gst-ffmpeg"
select BR2_PACKAGE_GST_PLUGINS_BASE
- select BR2_PACKAGE_FFMPEG
- select BR2_PACKAGE_FFMPEG_GPL
- select BR2_PACKAGE_FFMPEG_POSTPROC
- select BR2_PACKAGE_FFMPEG_SWSCALE
depends on BR2_LARGEFILE
depends on BR2_INET_IPV6
help
diff --git a/package/gstreamer/gst-ffmpeg/gst-ffmpeg-0.10.13_gcc47.patch b/package/gstreamer/gst-ffmpeg/gst-ffmpeg-0.10.13_gcc47.patch
new file mode 100644
index 0000000..16744ab
--- /dev/null
+++ b/package/gstreamer/gst-ffmpeg/gst-ffmpeg-0.10.13_gcc47.patch
@@ -0,0 +1,65 @@
+gst-ffmpeg libav: Fixes compiling gst-ffmpeg with gcc-4.7
+
+Fetch from: http://www.slackware.com/~alien/slackbuilds/gst-plugins-ffmpeg/build/gst-ffmpeg-0.10.13_gcc47.patch
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+---
+Submitted By: Andrew Benton <andy@benton.eu.com>
+Date: 2012-06-15
+Initial Package Version: 0.10.13
+Upstream Status: From upstream
+Origin:
+http://git.videolan.org/?p=ffmpeg.git;a=patch;h=5f654897e325349dacf2546674e0510bb72ecb50
+
+Description: Fixes compiling gst-ffmpeg with gcc-4.7
+
+libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
+libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
+make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
+
+Index: gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c
+===================================================================
+--- gst-ffmpeg-0.10.13.orig/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700
++++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700
+@@ -398,7 +398,7 @@
+ "2: \n\t"\
+ \
+ : "+a"(src), "+c"(dst)\
+- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
++ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
+ : "memory"\
+ );\
+ src += 4-(h+5)*srcStride;\
+@@ -446,7 +446,7 @@
+ QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
+ "2: \n\t"\
+ : "+a"(src)\
+- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\
++ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\
+ : "memory"\
+ );\
+ tmp += 4;\
+@@ -823,7 +823,7 @@
+ "2: \n\t"\
+ \
+ : "+a"(src), "+c"(dst)\
+- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
++ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
+ : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",)\
+ "memory"\
+@@ -878,7 +878,7 @@
+ QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
+ "2: \n\t"
+ : "+a"(src)
+- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)
++ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)
+ : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
+ "%xmm4", "%xmm5", "%xmm6", "%xmm7",)
+ "memory"
diff --git a/package/gstreamer/gst-ffmpeg/gst-ffmpeg-uclibc.patch b/package/gstreamer/gst-ffmpeg/gst-ffmpeg-uclibc.patch
new file mode 100644
index 0000000..82a7ffb
--- /dev/null
+++ b/package/gstreamer/gst-ffmpeg/gst-ffmpeg-uclibc.patch
@@ -0,0 +1,16 @@
+libav configure: Allow uClibc compilation
+
+Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
+
+diff -uNr gst-ffmpeg-0.10.13.org/gst-libs/ext/libav/configure gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure
+--- gst-ffmpeg-0.10.13.org/gst-libs/ext/libav/configure 2011-11-02 16:16:24.000000000 +0100
++++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2014-01-14 21:03:07.496887791 +0100
+@@ -2471,7 +2471,7 @@
+ enable dos_paths
+ add_cppflags -U__STRICT_ANSI__
+ ;;
+- linux)
++ linux|linux-uclibc)
+ add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600
+ enable dv1394
+ ;;
diff --git a/package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk b/package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk
index fc59c30..c57a8c8 100644
--- a/package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk
+++ b/package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk
@@ -8,11 +8,16 @@ GST_FFMPEG_VERSION = 0.10.13
GST_FFMPEG_SOURCE = gst-ffmpeg-$(GST_FFMPEG_VERSION).tar.bz2
GST_FFMPEG_SITE = http://gstreamer.freedesktop.org/src/gst-ffmpeg
GST_FFMPEG_INSTALL_STAGING = YES
-GST_FFMPEG_DEPENDENCIES = host-pkgconf gstreamer gst-plugins-base ffmpeg
-GST_FFMPEG_CONF_OPT = --with-system-ffmpeg
+GST_FFMPEG_DEPENDENCIES = host-pkgconf gstreamer gst-plugins-base
+
+ifeq ($(BR2_X86_CPU_HAS_MMX),y)
+GST_FFMPEG_DEPENDENCIES += host-yasm
+endif
ifeq ($(BR2_PACKAGE_BZIP2),y)
GST_FFMPEG_DEPENDENCIES += bzip2
endif
+GST_FFMPEG_CONF_OPT = --with-ffmpeg-extra-configure="--cross-prefix=$(TARGET_CROSS)"
+
$(eval $(autotools-package))
--
1.7.9.5
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg
2014-01-15 18:44 [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg Bernd Kuhls
@ 2014-01-15 20:02 ` Peter Korsgaard
2014-01-15 20:08 ` Gustavo Zacarias
2014-01-29 8:00 ` Thomas Petazzoni
0 siblings, 2 replies; 10+ messages in thread
From: Peter Korsgaard @ 2014-01-15 20:02 UTC (permalink / raw)
To: buildroot
>>>>> "Bernd" == Bernd Kuhls <berndkuhls@hotmail.com> writes:
> External ffmpeg 1.2.4 is incompatible, gst-ffmpeg suggests
> to always use internal libav.
> Adding two patches:
> Allow uClibc compilation: gst-ffmpeg-uclibc.patch
> Fixes compiling with gcc-4.7: gst-ffmpeg-0.10.13_gcc47.patch (taken from Slackware)
> Fixes
> http://autobuild.buildroot.net/results/ab8/ab8ec4904020ceb848a1e50f1865f594f46b8295//
> http://autobuild.buildroot.net/results/f0a/f0a420015a92ebb8868c41c0dbf82cf27b2bdd0f//
> Signed-off-by: Bernd Kuhls <berndkuhls@hotmail.com>
> +GST_FFMPEG_CONF_OPT = --with-ffmpeg-extra-configure="--cross-prefix=$(TARGET_CROSS)"
It seems like we atleast also need to pass --target-os=linux, otherwise
configure fails:
Configuring included Libav instance with args --prefix=/usr
--disable-ffserver --disable-ffplay --disable-ffmpeg --disable-ffprobe
--enable-static --enable-pic --disable-encoder=flac
--disable-decoder=cavs --disable-protocols --disable-devices
--disable-network --disable-hwaccels --disable-filters --disable-doc
--enable-optimizations --enable-postproc --enable-gpl
--enable-cross-compile --target-os=linux-uclibcgnueabi --arch=arm
--cross-prefix=arm-buildroot-linux-uclibcgnueabi-
--cross-prefix=/home/peko/source/buildroot/output/host/usr/bin/arm-linux-
Unknown OS 'linux-uclibcgnueabi'.
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
libav-user at libav.org mailing list or IRC #libav on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solving the problem.
config.status: error: Failed to configure embedded Libav tree
But what about all the CPU optimization flags we have in ffmpeg? Don't
we need to reproduce those as well here?
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg
2014-01-15 20:02 ` Peter Korsgaard
@ 2014-01-15 20:08 ` Gustavo Zacarias
2014-01-15 20:14 ` Peter Korsgaard
2014-01-29 8:00 ` Thomas Petazzoni
1 sibling, 1 reply; 10+ messages in thread
From: Gustavo Zacarias @ 2014-01-15 20:08 UTC (permalink / raw)
To: buildroot
On 01/15/2014 05:02 PM, Peter Korsgaard wrote:
> But what about all the CPU optimization flags we have in ffmpeg? Don't
> we need to reproduce those as well here?
I'm a bit wary about using the builtin ffmpeg support at all, all of the
security fixes from newer versions of the unbundled library will be gone.
And i also think the bump was fine, it was time to move along (and mpd's
support for ffmpeg needed it for example, it won't work with oldish
ffmpeg versions).
Maybe it's a bit harsh but we should consider deprecating gst-ffmpeg?
Regards.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg
2014-01-15 20:08 ` Gustavo Zacarias
@ 2014-01-15 20:14 ` Peter Korsgaard
2014-01-16 13:05 ` Sven Neumann
0 siblings, 1 reply; 10+ messages in thread
From: Peter Korsgaard @ 2014-01-15 20:14 UTC (permalink / raw)
To: buildroot
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
> On 01/15/2014 05:02 PM, Peter Korsgaard wrote:
>> But what about all the CPU optimization flags we have in ffmpeg? Don't
>> we need to reproduce those as well here?
> I'm a bit wary about using the builtin ffmpeg support at all, all of the
> security fixes from newer versions of the unbundled library will be gone.
> And i also think the bump was fine, it was time to move along (and mpd's
> support for ffmpeg needed it for example, it won't work with oldish
> ffmpeg versions).
> Maybe it's a bit harsh but we should consider deprecating gst-ffmpeg?
s/gst-ffmpeg/gstreamer 0.10/, but yeah. Upstream officially announced
that almost a year ago:
http://lists.freedesktop.org/archives/gstreamer-announce/2013-March/000273.html
I do think moving to the internal libav copy for gst-ffmpeg until we can
completely remove it is OK though. If people really need it, then the
(outdated) bundled library is still better than no gst-ffmpeg.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg
2014-01-15 20:14 ` Peter Korsgaard
@ 2014-01-16 13:05 ` Sven Neumann
2014-01-16 13:13 ` Peter Korsgaard
0 siblings, 1 reply; 10+ messages in thread
From: Sven Neumann @ 2014-01-16 13:05 UTC (permalink / raw)
To: buildroot
Hi,
On Mi, 2014-01-15 at 21:14 +0100, Peter Korsgaard wrote:
> >>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:
>
> > On 01/15/2014 05:02 PM, Peter Korsgaard wrote:
> >> But what about all the CPU optimization flags we have in ffmpeg? Don't
> >> we need to reproduce those as well here?
>
> > I'm a bit wary about using the builtin ffmpeg support at all, all of the
> > security fixes from newer versions of the unbundled library will be gone.
> > And i also think the bump was fine, it was time to move along (and mpd's
> > support for ffmpeg needed it for example, it won't work with oldish
> > ffmpeg versions).
> > Maybe it's a bit harsh but we should consider deprecating gst-ffmpeg?
>
> s/gst-ffmpeg/gstreamer 0.10/, but yeah. Upstream officially announced
> that almost a year ago:
>
> http://lists.freedesktop.org/archives/gstreamer-announce/2013-March/000273.html
>
> I do think moving to the internal libav copy for gst-ffmpeg until we can
> completely remove it is OK though. If people really need it, then the
> (outdated) bundled library is still better than no gst-ffmpeg.
Are you interested in a patch that adds gst1-libav (version 1.2.x) ? We
are using this for a while now. Our package uses the internally bundled
library though.
Regards,
Sven
--
Sven Neumann
Senior System Architect
Lautsprecher Teufel GmbH
Gewerbehof B?lowbogen, Aufgang D1
B?lowstr. 66
10783 Berlin
Germany
Direkt +49 (0) 30 / 300 930-153
Telefon +49 (0) 30 / 300 930-0
neumann at teufel.de
Registernummer HRB 20271 beim Amtsgericht Berlin-Charlottenburg
Gesch?ftsf?hrer: J?rgen Schneider, Edgar van Velzen
Umsatzsteuer-ID: DE136745959
www.teufel.de - www.teufelaudio.com - www.raumfeld.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg
2014-01-16 13:05 ` Sven Neumann
@ 2014-01-16 13:13 ` Peter Korsgaard
2014-01-16 13:57 ` Sven Neumann
0 siblings, 1 reply; 10+ messages in thread
From: Peter Korsgaard @ 2014-01-16 13:13 UTC (permalink / raw)
To: buildroot
>>>>> "Sven" == Sven Neumann <neumann@teufel.de> writes:
Hi,
> I do think moving to the internal libav copy for gst-ffmpeg until we can
>> completely remove it is OK though. If people really need it, then the
>> (outdated) bundled library is still better than no gst-ffmpeg.
> Are you interested in a patch that adds gst1-libav (version 1.2.x) ? We
> are using this for a while now. Our package uses the internally bundled
> library though.
Sure!
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg
2014-01-16 13:13 ` Peter Korsgaard
@ 2014-01-16 13:57 ` Sven Neumann
0 siblings, 0 replies; 10+ messages in thread
From: Sven Neumann @ 2014-01-16 13:57 UTC (permalink / raw)
To: buildroot
Hi,
On Do, 2014-01-16 at 14:13 +0100, Peter Korsgaard wrote:
> >>>>> "Sven" == Sven Neumann <neumann@teufel.de> writes:
>
> Hi,
>
> > I do think moving to the internal libav copy for gst-ffmpeg until we can
> >> completely remove it is OK though. If people really need it, then the
> >> (outdated) bundled library is still better than no gst-ffmpeg.
>
> > Are you interested in a patch that adds gst1-libav (version 1.2.x) ? We
> > are using this for a while now. Our package uses the internally bundled
> > library though.
>
> Sure!
To be honest, our version of the gst1-libav package disables almost
everything and just builds a handful of audio decoder plug-ins. But I'll
remove these hacks and submit a full version. I can not guarantee that
it will build cleanly though.
Regards,
Sven
--
Sven Neumann
Senior System Architect
Lautsprecher Teufel GmbH
Gewerbehof B?lowbogen, Aufgang D1
B?lowstr. 66
10783 Berlin
Germany
Direkt +49 (0) 30 / 300 930-153
Telefon +49 (0) 30 / 300 930-0
neumann at teufel.de
Registernummer HRB 20271 beim Amtsgericht Berlin-Charlottenburg
Gesch?ftsf?hrer: J?rgen Schneider, Edgar van Velzen
Umsatzsteuer-ID: DE136745959
www.teufel.de - www.teufelaudio.com - www.raumfeld.com
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg
2014-01-15 20:02 ` Peter Korsgaard
2014-01-15 20:08 ` Gustavo Zacarias
@ 2014-01-29 8:00 ` Thomas Petazzoni
2014-01-29 18:33 ` Bernd Kuhls
1 sibling, 1 reply; 10+ messages in thread
From: Thomas Petazzoni @ 2014-01-29 8:00 UTC (permalink / raw)
To: buildroot
Dear Peter Korsgaard,
On Wed, 15 Jan 2014 21:02:30 +0100, Peter Korsgaard wrote:
> > +GST_FFMPEG_CONF_OPT = --with-ffmpeg-extra-configure="--cross-prefix=$(TARGET_CROSS)"
>
> It seems like we atleast also need to pass --target-os=linux, otherwise
> configure fails:
Then if you pass --target-os=linux, probably the
gst-ffmpeg-uclibc.patch added by Bernd is no longer necessary?
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-01-30 19:20 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-15 18:44 [Buildroot] [PATCH 1/1] gst-ffmpeg: Use internal libav instead of external ffmpeg Bernd Kuhls
2014-01-15 20:02 ` Peter Korsgaard
2014-01-15 20:08 ` Gustavo Zacarias
2014-01-15 20:14 ` Peter Korsgaard
2014-01-16 13:05 ` Sven Neumann
2014-01-16 13:13 ` Peter Korsgaard
2014-01-16 13:57 ` Sven Neumann
2014-01-29 8:00 ` Thomas Petazzoni
2014-01-29 18:33 ` Bernd Kuhls
2014-01-30 19:20 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox