meta-intel: BSP updates for gst-ffmpeg LICENSE_FLAGS change
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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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_FLAGSadded to make it "commercial", so to avoid build errors the BSPs that use it (via the gst-va-intelVA_FEATURE) should only include it if the user has added "commercial" toLICENSE_FLAGS_WHITELISTwhen 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
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_FLAGSadded to make it "commercial", so to avoid build errors the BSPs that use it (via the gst-va-intelVA_FEATURE) should only include it if the user has added "commercial" toLICENSE_FLAGS_WHITELISTwhen 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
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
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