Shi Yan
f769758e9a
Increase nvenc's encoding height to 4096
...
According to https://developer.nvidia.com/nvidia-video-codec-sdk
the minimum resolution nvenc supports should be 4096x4096
2019-04-04 20:19:42 +00:00
Seungha Yang
aaee282051
nvenc: Don't leak CUDA device memory
...
Allocated device memory should be freed with cuMemFree
2019-03-26 11:54:16 +00:00
Seungha Yang
d0f2f262aa
nvenc: Ensure unmap resources before finalizing them
...
Mapped resource via NvEncMapInputResource() will result to unregister fail.
It can happen when paused to ready state change without EOS event.
2019-03-26 11:54:16 +00:00
Seungha Yang
60983fcea9
nvenc: Don't release stream lock on GstVideoEncoder::stop()
...
baseclass didn't take the stream lock during stop. It's valid only for
GstVideoEncoder::finish()
Closes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/912
2019-03-25 22:26:35 +09:00
Nirbheek Chauhan
48d897f65f
nvenc: Fix build when cuda is found but nvenc is disabled
...
tests\check\meson.build:21:5: ERROR: Unknown variable "use_nvenc_gl".
Also do the same change in nvdec, just to be defensive about future
issues.
2019-03-11 14:45:14 +05:30
Seungha Yang
01a402e4ec
nvenc: More clean up on stop for encoder to be reusable
...
Encoder will not configure internal pool again if input_state exist
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/912
2019-03-10 13:58:42 +09:00
Seungha Yang
74848770a5
nvenc: Ensure drain all frames on finish
...
To drain all queued encoding items, encoder should gracefully
wait the encoding thread without stealing queued items.
Otherwise, some input frames can be dropped.
2019-03-10 13:58:42 +09:00
Yeongjin Jeong
8e860fffd9
nvenc: Fix GValue leaks
...
GValue should be freed with g_value_unset()
2019-03-09 15:17:30 +00:00
Tim-Philipp Müller
d5b03bfed8
nvenc, nvdec: add Hardware tag to element metadata
2019-02-19 23:44:42 +00:00
Nirbheek Chauhan
7ffcab3478
build: Don't forget to add windows files to EXTRA_DIST
2019-01-18 13:13:09 +05:30
Seungha Yang
d3a6eb7977
nvh265enc: Fix email address typo
2018-11-25 23:31:37 +00:00
Seungha Yang
c75907d23c
nvenc: Fix undefined reference build error on MSVC and CUDA 9.1
2018-11-25 23:31:37 +00:00
Seungha Yang
3cd1d0c7bc
nvenc: Fix MSVC build error C2121
2018-11-25 23:31:37 +00:00
Seungha Yang
6bf5ba993d
nvenc: Add meson build with Windows support
...
Note that, since Nvidia does not provide nvEncodeAPI.lib file,
find_library() couldn't be used for build on Windows.
This patch changes to load nvEncodeAPI(64).dll or libnvidia-encode.so
in runtime
2018-11-25 23:31:37 +00:00
Seungha Yang
67a84254ae
nvdec/nvenc: Shipping NVIDA Codec SDK headers
...
Add cuvidec.h, nvcuvid.h and nvEncodeAPI.h of NVIDIA Codec SDK 8.2.16
2018-11-25 23:31:37 +00:00
Seungha Yang
535adfee37
nvenc: Fix build warning error
...
'cuDeviceComputeCapability' was deprecated as of CUDA 5.0
gstnvenc.c: In function ‘gst_nvenc_create_cuda_context’:
gstnvenc.c:290:9: error: ‘cuDeviceComputeCapability’ is deprecated [-Werror=deprecated-declarations]
&& cuDeviceComputeCapability (&maj, &min, cdev) == CUDA_SUCCESS) {
^
https://bugzilla.gnome.org/show_bug.cgi?id=796203
2018-05-18 10:43:39 +01:00
Jan Schmidt
e496f398ec
nvenc: Remove GST_USE_UNSTABLE_API defines
...
GstGL is no longer unstable API since moving to -base
2018-04-25 02:44:14 +10:00
Jan Schmidt
02c2b0b275
nvenc: Use the HAVE_NVENC_GST_GL define instead of HAVE_GST_GL
...
Fix compiling against the GL interop by gating includes
on the right header
2018-04-25 02:44:14 +10:00
Seungha Yang
3f318ecb96
nvh265enc: Add Nvidia GPU based HEVC encoder
...
https://bugzilla.gnome.org/show_bug.cgi?id=795037
2018-04-25 01:59:30 +10:00
Seungha Yang
5f95094f39
nvencbase: Define sinkpad template in subclass
...
https://bugzilla.gnome.org/show_bug.cgi?id=795037
2018-04-25 01:59:30 +10:00
Seungha Yang
6242dae832
nvenc: Add debug catagory for nvh264enc
...
https://bugzilla.gnome.org/show_bug.cgi?id=795037
2018-04-25 01:59:30 +10:00
Daeseok Youn
faa892fb48
nvbaseenc: fix build warnings with HAVE_NVENC_GST_GL
...
fix following error:
gstnvbaseenc.c: In function ‘gst_nv_base_enc_set_context’:
gstnvbaseenc.c:451:17: error: unused variable ‘nvenc’ [-Werror=unused-variable]
GstNvBaseEnc *nvenc = GST_NV_BASE_ENC (element);
^
https://bugzilla.gnome.org/show_bug.cgi?id=794896
2018-04-02 19:42:15 +01:00
Tim-Philipp Müller
07c8417799
nvenc: add "gop-size" property
...
This also changes the default gop size from 30 to 75 frames.
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2018-01-24 10:39:40 +00:00
Tim-Philipp Müller
bea0ea66be
nvenc: mark properties that can be changed at runtime accordingly
...
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2018-01-24 10:21:48 +00:00
Ole André Vadla Ravnås
59365e3d7b
nvenc: Add support for dynamic bitrate/preset reconfiguration
...
Useful for dynamically updating bitrate in live scenarios.
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2018-01-24 10:17:58 +00:00
Ole André Vadla Ravnås
bc92b10164
nvenc: Add support for I420
...
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2018-01-24 09:30:49 +00:00
Tim-Philipp Müller
06e4403fdb
gl: update plugins to use GstGL from -base
2017-12-19 12:02:31 +00:00
Ponnam Srinivas
53ea2f82ae
nvbaseenc: Fix Memory leak in error case
...
https://bugzilla.gnome.org/show_bug.cgi?id=788243
2017-10-13 18:43:01 +03:00
Nicolas Dufresne
4261692187
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Ole André Vadla Ravnås
cb28314013
nvenc: Stop bitstream thread in ::stop()
...
Otherwise we are likely to crash if EOS didn't happen yet.
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2017-04-19 11:51:57 +01:00
Ole André Vadla Ravnås
70ac63a97c
nvenc: Update to the current gstreamer-gl API
...
https://bugzilla.gnome.org/show_bug.cgi?id=781410
2017-04-19 11:51:55 +01:00
Matthew Waters
dc1a326090
nvenc: add some rate control modes/properties
...
Supported modes are constant quantizer, cbr, vbr and vbr with a minimum quantizer.
2016-04-08 15:24:20 +10:00
Matthew Waters
065f4dceb1
nvenc: move codec config initialization from the implementation to the base class
...
Supports a better separation of configuration parameters
2016-04-08 15:08:18 +10:00
Matthew Waters
c45fc2ef53
nvenc: add preset selection
...
Some presets are not always supported on all devices and will cause an error if
used. Specifically, the LOSSLESS presets are known to not work everywhere.
2016-04-08 15:08:18 +10:00
Matthew Waters
d6f7ea88bb
nvenc: add support for building against version 6 of the SDK
...
While mostly API compatible, the ABI has changed so binaries will not work
across header versions (and ultimately nvidia driver releases).
https://bugzilla.gnome.org/show_bug.cgi?id=763324
2016-03-31 17:26:47 +11:00
Vineeth TM
8cdfb13658
bad: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Matthew Waters
b48049a171
nvenc: release the frames and list when searching for an output buffer
...
Fixes a massive leak in:
videotestsrc ! nvh264enc ! fakesink
2016-02-25 00:07:14 +11:00
Matthew Waters
ffba31b7b2
nvenc: update for recent GL api changes
...
Specifically the GstGLMemoryPBO addition (which was the unadorned GstGLMemory).
2016-01-12 23:36:54 +11:00
Matthew Marsh
0e34c02dd6
nvenc: fix high CPU use on initialization of multiple encoders at the same time
...
We need a static lock to protect various NVENC methods in _set_format(). Without
this the CPU use increases dramatically on initialisation of the element when
there are multiple elements being initialised at the same time.
https://bugzilla.gnome.org/show_bug.cgi?id=759742
2015-12-22 13:27:51 +00:00
Matthew Waters
63a7cbf8f1
nvenc: call the parent class on GstElement::set_context
2015-09-29 16:17:22 +10:00
Matthew Waters
b1d13e10af
Add Nvidia based hardware encoder element
...
Currently only h264 is supported
https://bugzilla.gnome.org/show_bug.cgi?id=753405
2015-09-29 15:32:17 +10:00