Browse Source

gst-plugins-bad: Enable nvcodec by default

We do not need to compile against any Nvidia SDKs now, so we can build
this by default and ship it out of the box in our binary releases.

It's still disabled on UWP, iOS, and Android since it's not usable on
those.

Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/587>
zrythm
Nirbheek Chauhan 3 years ago
parent
commit
3f26966e24
  1. 9
      README.md
  2. 2
      cerbero/config.py
  3. 8
      recipes/gst-plugins-bad-1.0.recipe

9
README.md

@ -248,12 +248,9 @@ options enabled if possible. @@ -248,12 +248,9 @@ options enabled if possible.
### Nvidia Hardware Codecs
For Nvidia, the [variant to enable](#enabling-optional-features-with-variants)
is `nvcodec` which will build the `nvcodec` plugin.
If CUDA is not installed into the system prefix, You need to set `CUDA_PATH` to
point to your [CUDA SDK](https://developer.nvidia.com/cuda-downloads) prefix.
On Windows, this is done automatically by the installer.
Since 1.17.1, the `nvcodec` plugin does not need access to the Nvidia Video SDK
or the CUDA SDK. It now loads everything at runtime. Hence, it is now enabled
by default on all platforms.
## Enabling Visual Studio Support

2
cerbero/config.py

@ -73,7 +73,7 @@ class Variants(object): @@ -73,7 +73,7 @@ class Variants(object):
# Variants that are booleans, and are unset when prefixed with 'no'
__disabled_variants = ['x11', 'alsa', 'pulse', 'cdparanoia', 'v4l2',
'gi', 'unwind', 'rpi', 'visualstudio', 'uwp', 'qt5',
'intelmsdk', 'nvcodec', 'python', 'werror', 'vaapi']
'intelmsdk', 'python', 'werror', 'vaapi']
__enabled_variants = ['debug', 'optimization', 'testspackage']
__bool_variants = __enabled_variants + __disabled_variants
# Variants that are `key: (values)`, with the first value in the tuple

8
recipes/gst-plugins-bad-1.0.recipe

@ -20,6 +20,7 @@ class Recipe(custom.GStreamer): @@ -20,6 +20,7 @@ class Recipe(custom.GStreamer):
'kate': 'enabled',
'ladspa': 'auto', # lrdf is optional
'libmms': 'enabled',
'nvcodec': 'enabled',
'openh264': 'enabled',
'openjpeg': 'enabled',
'opus': 'enabled',
@ -217,6 +218,7 @@ class Recipe(custom.GStreamer): @@ -217,6 +218,7 @@ class Recipe(custom.GStreamer):
'lib/gstreamer-1.0/libgstspandsp%(mext)s',
'lib/gstreamer-1.0/libgstsbc%(mext)s',
'lib/gstreamer-1.0/libgstzbar%(mext)s',
'lib/gstreamer-1.0/libgstnvcodec%(mext)s',
]
files_plugins_codecs_devel = [
@ -248,6 +250,7 @@ class Recipe(custom.GStreamer): @@ -248,6 +250,7 @@ class Recipe(custom.GStreamer):
'lib/gstreamer-1.0/libgstspandsp.a', 'lib/gstreamer-1.0/libgstspandsp.la',
'lib/gstreamer-1.0/libgstsbc.a', 'lib/gstreamer-1.0/libgstsbc.la',
'lib/gstreamer-1.0/libgstzbar.a', 'lib/gstreamer-1.0/libgstzbar.la',
'lib/gstreamer-1.0/libgstnvcodec.a', 'lib/gstreamer-1.0/libgstnvcodec.la',
]
platform_files_plugins_codecs = {
@ -454,8 +457,8 @@ class Recipe(custom.GStreamer): @@ -454,8 +457,8 @@ class Recipe(custom.GStreamer):
self.append_env('CFLAGS', '-DGSTREAMER_GLIB_COCOA_NSAPPLICATION=1')
self.append_env('OBJCFLAGS', '-DGSTREAMER_GLIB_COCOA_NSAPPLICATION=1')
# Enable hardware codecs if variants are enabled
self.enable_plugin('nvcodec', 'codecs', 'nvcodec')
# Enable hardware codecs if variants are enabled since they have
# external dependencies such as SDKs.
self.enable_plugin('msdk', 'codecs', 'intelmsdk')
self.enable_plugin('va', 'codecs', 'vaapi')
@ -495,6 +498,7 @@ class Recipe(custom.GStreamer): @@ -495,6 +498,7 @@ class Recipe(custom.GStreamer):
if self.using_uwp() or self.config.target_platform in (Platform.ANDROID, Platform.IOS):
self.disable_plugin('resindvd', 'dvd', dep='libdvdnav')
self.disable_plugin('nvcodec', 'codecs')
# dtls plugin needs openssl, and we pick up the system openssl if on
# Linux and not cross-compiling.

Loading…
Cancel
Save