Skip to contentSkip to conversation

meta-intel: BSP updates for gst-ffmpeg LICENSE_FLAGS change

PATCH In review [email protected] 2 participants 6 messages Sep 14, 2012

lore
Share & tools
lore
#0 lore raw

cover meta-intel: BSP updates for gst-ffmpeg LICENSE_FLAGS change

From: Tom Zanussi <[email protected]>

This patchset updates the BSPs that enable video acceleration to make them able to handle the new LICENSE_FLAGS change to gst-ffmpeg.

There's no change to functionality if you add "commercial" to LICENSE_FLAGS_WHITELIST when building; if that's not done you'll simply get an image without video acceleration.

The following changes since commit 8f9963b46f0923b6efd076e365f17b4a3de065e1:

meta-crystalforest: Add Maintainer. (2012-09-11 13:55:10 -0500)

are available in the git repository at:

git://git.yoctoproject.org/meta-intel-contrib.git tzanussi/va-license-flags-commercial
http://git.yoctoproject.org/cgit/cgit.cgi/meta-intel-contrib/log/?h=tzanussi/va-license-flags-commercial

Tom Zanussi (1):
meta-intel: make video acceleration choice dependent on LICENSE_FLAGS

 meta-chiefriver/README                       | 15 +++++++++++++++
 meta-chiefriver/conf/machine/chiefriver.conf |  3 ++-
 meta-crownbay/README                         | 15 +++++++++++++++
 meta-crownbay/conf/machine/crownbay.conf     |  3 ++-
 meta-fri2/README                             | 15 +++++++++++++++
 meta-fri2/conf/machine/fri2.conf             |  3 ++-
 meta-sugarbay/README                         | 15 +++++++++++++++
 meta-sugarbay/conf/machine/sugarbay.conf     |  3 ++-
 meta-sys940x/README                          | 15 +++++++++++++++
 meta-sys940x/conf/machine/sys940x.conf       |  3 ++-
 10 files changed, 85 insertions(+), 5 deletions(-)
Signature · 1 line
1.7.11.4
#1 lore raw

PATCH 1/1 meta-intel: make video acceleration choice dependent on LICENSE_FLAGS

From: Tom Zanussi <[email protected]>

The gst-ffmpeg recipe in oe-core had LICENSE_FLAGS added to make it "commercial", so to avoid build errors the BSPs that use it (via the gst-va-intel VA_FEATURE) should only include it if the user has added "commercial" to LICENSE_FLAGS_WHITELIST when building.

This adds a conditional to detect that, along with a NOTE in the README to explain the need for the flag.

---
 meta-chiefriver/README                       | 15 +++++++++++++++
 meta-chiefriver/conf/machine/chiefriver.conf |  3 ++-
 meta-crownbay/README                         | 15 +++++++++++++++
 meta-crownbay/conf/machine/crownbay.conf     |  3 ++-
 meta-fri2/README                             | 15 +++++++++++++++
 meta-fri2/conf/machine/fri2.conf             |  3 ++-
 meta-sugarbay/README                         | 15 +++++++++++++++
 meta-sugarbay/conf/machine/sugarbay.conf     |  3 ++-
 meta-sys940x/README                          | 15 +++++++++++++++
 meta-sys940x/conf/machine/sys940x.conf       |  3 ++-
 10 files changed, 85 insertions(+), 5 deletions(-)
meta-chiefriver/README +15 -0
index 49e4461..438c293 100644
@@ -60,6 +60,21 @@ At the end of a successful build, you should have a live image that
 you can boot from a USB flash drive (see instructions on how to do
 that below, in the section 'Booting the images from /binary').
 
+NOTE: The 'chiefriver' machine will include support for hardware video
+acceleration via gstreamer if and only if the "commercial" string is
+added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf.
+
+For example:
+
+  LICENSE_FLAGS_WHITELIST = "commercial"
+
+The reason this is needed is to prevent the image from including
+anything that might violate the license terms of the packages used to
+implement the the video acceleration feature, such as gst-ffmpeg and
+ffmpeg.  As always, please consult the licenses included in the
+specific packages for details if you use packages that require
+particular LICENSE_FLAGS.
+
 As an alternative to downloading the BSP tarball, you can also work
 directly from the meta-intel git repository.  For each BSP in the
 'meta-intel' repository, there are multiple branches, one
meta-chiefriver/conf/machine/chiefriver.conf +2 -1
index 6d8d3a5..a9c8e5a 100644
@@ -15,6 +15,7 @@ XSERVER ?= "${XSERVER_IA32_BASE} \
            ${XSERVER_IA32_I965} \
            "
 
-VA_FEATURES ?= "gst-va-intel va-intel"
+VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \
+	    "commercial", "gst-va-intel va-intel", "", d)}"
 
 MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES} lms"
meta-crownbay/README +15 -0
index 2521432..f7aeffa 100644
@@ -92,6 +92,21 @@ At the end of a successful build, you should have a live image that
 you can boot from a USB flash drive (see instructions on how to do
 that below, in the section 'Booting the images from /binary').
 
+NOTE: The 'crownbay' machine will include support for hardware video
+acceleration via gstreamer if and only if the "commercial" string is
+added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf.
+
+For example:
+
+  LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin_1.14 commercial"
+
+The reason this is needed is to prevent the image from including
+anything that might violate the license terms of the packages used to
+implement the the video acceleration feature, such as gst-ffmpeg and
+ffmpeg.  As always, please consult the licenses included in the
+specific packages for details if you use packages that require
+particular LICENSE_FLAGS.
+
 As an alternative to downloading the BSP tarball, you can also work
 directly from the meta-intel git repository.  For each BSP in the
 'meta-intel' repository, there are multiple branches, one
meta-crownbay/conf/machine/crownbay.conf +2 -1
index c4b7682..2dda9e6 100644
@@ -23,6 +23,7 @@ PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0"
 
 APPEND += "video=vesafb vga=0x318"
 
-VA_FEATURES ?= "gst-va-intel va-intel"
+VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \
+	    "commercial", "gst-va-intel va-intel", "", d)}"
 
 MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES}"
meta-fri2/README +15 -0
index 2208392..a866174 100644
@@ -113,6 +113,21 @@ At the end of a successful build, you should have a live image that
 you can boot from a USB flash drive (see instructions on how to do
 that below, in the section 'Booting the images from /binary').
 
+NOTE: The 'fri2' machine will include support for hardware video
+acceleration via gstreamer if and only if the "commercial" string is
+added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf.
+
+For example:
+
+  LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin_1.10 commercial"
+
+The reason this is needed is to prevent the image from including
+anything that might violate the license terms of the packages used to
+implement the the video acceleration feature, such as gst-ffmpeg and
+ffmpeg.  As always, please consult the licenses included in the
+specific packages for details if you use packages that require
+particular LICENSE_FLAGS.
+
 As an alternative to downloading the BSP tarball, you can also work
 directly from the meta-intel git repository.  For each BSP in the
 'meta-intel' repository, there are multiple branches, one
meta-fri2/conf/machine/fri2.conf +2 -1
index 56408f7..31fdc80 100644
@@ -8,7 +8,8 @@ require conf/machine/include/tune-atom.inc
 require conf/machine/include/ia32-base.inc
 require conf/machine/include/meta-intel.inc
 
-VA_FEATURES ?= "gst-va-intel va-intel"
+VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \
+	    "commercial", "gst-va-intel va-intel", "", d)}"
 
 MACHINE_FEATURES += "wifi 3g pcbios efi va-impl-mixvideo"
 MACHINE_EXTRA_RRECOMMENDS += "linux-firmware-iwlwifi-6000g2a-5 ${VA_FEATURES}"
meta-sugarbay/README +15 -0
index 413b2ab..80833c1 100644
@@ -71,6 +71,21 @@ At the end of a successful build, you should have a live image that
 you can boot from a USB flash drive (see instructions on how to do
 that below, in the section 'Booting the images from /binary').
 
+NOTE: The 'sugarbay' machine will include support for hardware video
+acceleration via gstreamer if and only if the "commercial" string is
+added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf.
+
+For example:
+
+  LICENSE_FLAGS_WHITELIST = "commercial"
+
+The reason this is needed is to prevent the image from including
+anything that might violate the license terms of the packages used to
+implement the the video acceleration feature, such as gst-ffmpeg and
+ffmpeg.  As always, please consult the licenses included in the
+specific packages for details if you use packages that require
+particular LICENSE_FLAGS.
+
 As an alternative to downloading the BSP tarball, you can also work
 directly from the meta-intel git repository.  For each BSP in the
 'meta-intel' repository, there are multiple branches, one
meta-sugarbay/conf/machine/sugarbay.conf +2 -1
index 616c2c5..17cc15c 100644
@@ -16,6 +16,7 @@ XSERVER ?= "${XSERVER_IA32_BASE} \
            ${XSERVER_IA32_I965} \
            "
 
-VA_FEATURES ?= "gst-va-intel va-intel"
+VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \
+	    "commercial", "gst-va-intel va-intel", "", d)}"
 
 MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES}"
meta-sys940x/README +15 -0
index b030faf..9058937 100644
@@ -96,6 +96,21 @@ At the end of a successful build, you should have a live image that
 you can boot from a USB flash drive (see instructions on how to do
 that below, in the section 'Booting the images from /binary').
 
+NOTE: The 'sys940x' machine will include support for hardware video
+acceleration via gstreamer if and only if the "commercial" string is
+added to the the LICENSE_FLAGS_WHITELIST variable in your local.conf.
+
+For example:
+
+  LICENSE_FLAGS_WHITELIST = "license_emgd-driver-bin_1.10 commercial"
+
+The reason this is needed is to prevent the image from including
+anything that might violate the license terms of the packages used to
+implement the the video acceleration feature, such as gst-ffmpeg and
+ffmpeg.  As always, please consult the licenses included in the
+specific packages for details if you use packages that require
+particular LICENSE_FLAGS.
+
 As an alternative to downloading the BSP tarball, you can also work
 directly from the meta-intel git repository.  For each BSP in the
 'meta-intel' repository, there are multiple branches, one
meta-sys940x/conf/machine/sys940x.conf +2 -1
index 9db2b2a..21d3980 100644
@@ -25,6 +25,7 @@ PREFERRED_VERSION_xf86-input-evdev ?= "2.6.0"
 SERIAL_CONSOLE = "115200 ttyS0"
 APPEND += "console=ttyS0,115200 console=tty0"
 
-VA_FEATURES ?= "gst-va-intel va-intel"
+VA_FEATURES = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", \
+	    "commercial", "gst-va-intel va-intel", "", d)}"
 
 MACHINE_EXTRA_RRECOMMENDS += "${VA_FEATURES}"
Signature · 1 line
1.7.11.4
#2 lore raw

Re: [PATCH 1/1] meta-intel: make video acceleration choice dependent on LICENSE_FLAGS

Quoted 4 lines · On 14 September 2012 20:27, <[email protected]> wrote:

The gst-ffmpeg recipe in oe-core had LICENSE_FLAGS added to make it "commercial", so to avoid build errors the BSPs that use it (via the gst-va-intel VA_FEATURE) should only include it if the user has added "commercial" to LICENSE_FLAGS_WHITELIST when building.

It's entirely possible to use gst-vaapi without commercial plugins, the problem is the (mysterious to me) dependency on gst-ffmpeg.

How about making gst-ffmpeg a recommends instead of rdepends, so that if it's blacklisted due to license flags there isn't a build failure. gst-vaapi doesn't have license issues to making it disappear when avoiding commercial licenses doesn't make sense.

(I'd also like to understand why gst-ffmpeg is a rdepends at all)

Ross

#3 lore raw

Re: [PATCH 1/1] meta-intel: make video acceleration choice dependent on LICENSE_FLAGS

Quoted 9 lines · Ross
Quoted 4 lines · On 14 September 2012 20:27, <[email protected]> wrote:

The gst-ffmpeg recipe in oe-core had LICENSE_FLAGS added to make it "commercial", so to avoid build errors the BSPs that use it (via the gst-va-intel VA_FEATURE) should only include it if the user has added "commercial" to LICENSE_FLAGS_WHITELIST when building.

It's entirely possible to use gst-vaapi without commercial plugins, the problem is the (mysterious to me) dependency on gst-ffmpeg.

From the gstreamer-vaapi README:

"vaapidecoder currently relies on FFmpeg"

Quoted 2 lines

How about making gst-ffmpeg a recommends instead of rdepends, so that if it's blacklisted due to license flags there isn't a build failure.

I can try that and see what happens.

Quoted 5 lines

gst-vaapi doesn't have license issues to making it disappear when avoiding commercial licenses doesn't make sense.

(I'd also like to understand why gst-ffmpeg is a rdepends at all)

The only avenue I was able to find (that worked, an important point) to get gstreamer to use video acceleration was via ffmpeg (via gst-ffmpeg, needed for making ffmpeg available to the gstreamer pipeline) with the --with-vaapi option.

Believe me, I went through a bunch of iterations of different versions and combinations of all these components before hitting on something that didn't always segfault and gave more than 1/2 a frame a second (literally), and that was after using code that supposedly worked for an ELC demo...

Anyway, it would be nice if someone who had a better understanding of this 'stack' could suggest better ways of doing things - at this point it works for 3 different video acceleration implementations (emgd, pvr and standard intel va) and I'm not looking forward to going through that exercise again - for now I'll just be trying to fix the build problems introduced by the new licensing restrictions.

Tom

Quoted 1 line

Ross

#4 lore raw

Re: [PATCH 1/1] meta-intel: make video acceleration choice dependent on LICENSE_FLAGS

Quoted 3 lines · Tom Zanussi

From the gstreamer-vaapi README:

"vaapidecoder currently relies on FFmpeg"

Ha, fair enough.

Quoted 6 lines

Anyway, it would be nice if someone who had a better understanding of this 'stack' could suggest better ways of doing things - at this point it works for 3 different video acceleration implementations (emgd, pvr and standard intel va) and I'm not looking forward to going through that exercise again - for now I'll just be trying to fix the build problems introduced by the new licensing restrictions.

I'm off to the London office on Monday, there's bound to be a few Cedar Trail netbooks hanging around there still. I know they play h264 through vaapi (albeit fluendo-va) in MeeGo because that was the most frustrating/rewarding week I've had for along time, so I'll build an image with meta-intel and see what I can do.

I'd also like to see anything MIX related in meta-intel die, that's an abomination now that gst-va actually works.

Ross

#5 lore raw

Re: [PATCH 1/1] meta-intel: make video acceleration choice dependent on LICENSE_FLAGS

Quoted 14 lines · Ross
Quoted 3 lines · Tom Zanussi

From the gstreamer-vaapi README:

"vaapidecoder currently relies on FFmpeg"

Ha, fair enough.

Quoted 6 lines

Anyway, it would be nice if someone who had a better understanding of this 'stack' could suggest better ways of doing things - at this point it works for 3 different video acceleration implementations (emgd, pvr and standard intel va) and I'm not looking forward to going through that exercise again - for now I'll just be trying to fix the build problems introduced by the new licensing restrictions.

Quoted 6 lines

I'm off to the London office on Monday, there's bound to be a few Cedar Trail netbooks hanging around there still. I know they play h264 through vaapi (albeit fluendo-va) in MeeGo because that was the most frustrating/rewarding week I've had for along time, so I'll build an image with meta-intel and see what I can do.

That would be great - any knowledge you could apply from what worked in Meego would be welcome - feel free to rip the whole thing apart and replace it if you have to...

Quoted 3 lines

I'd also like to see anything MIX related in meta-intel die, that's an abomination now that gst-va actually works.

The mixvideo stuff is actually what comes bundled with emgd so I'm not sure we're any further ahead replacing it unless we can also replace emgd...

Tom

Quoted 1 line

Ross