Víctor Manuel Jáquez Leal
9ed141734e
va: utils: use GstObject for GstVaDisplay in context
...
Thus application could fetch the GstVaDisplay through the sync bus
without knowning the specific implementation, and sharing it or
extract properties.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1586 >
2020-09-21 17:07:51 +00:00
Víctor Manuel Jáquez Leal
ed80aa5d6b
va: utils: fix code style and wrong log message
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1586 >
2020-09-21 17:07:51 +00:00
Víctor Manuel Jáquez Leal
9e9e5c72d5
va: h264dec: add documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1585 >
2020-09-20 09:21:08 +02:00
Haihao Xiang
9443bf7a22
msdk: enable GPUCopy
...
Note it works for system memory only
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/910 >
2020-09-20 01:40:08 +00:00
Haihao Xiang
1d082baf18
msdk: call MFXInitEx instead of MFXInit
...
MFXInitEx has more control than MFXInit. The current setting in this
commit is identical to MFXInit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/910 >
2020-09-20 01:40:08 +00:00
Víctor Manuel Jáquez Leal
467618f8ac
va: decoder: render picture only if data
...
Call vaRenderPicture() only if buffer or slice data is available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1584 >
2020-09-19 14:32:13 +02:00
Víctor Manuel Jáquez Leal
ad019a1d01
va: decoder: warn if decode fails on a surface
...
Instead of logging error if a step fails, it logs a warning message
reducing the noise and obeying the rule for errors since the program
doesn't end
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1584 >
2020-09-19 14:32:13 +02:00
Víctor Manuel Jáquez Leal
ad839ada5b
va: h264dec: check is pad has fixed caps at caps query
...
Otherwise it will always reply with the possible driver caps, which
generates problems with Web MSE players.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1583 >
2020-09-19 13:00:49 +02:00
Seungha Yang
2fe1afeafa
va: h264dec: Don't need to set pts/dts/duration on outputting frame
...
It will be handled by videodecoder baseclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1582 >
2020-09-18 23:50:54 +00:00
Nicolas Dufresne
671d9fed3a
kmssink: Do not source using padded width/height
...
The width/height from the video meta can be padded width, height. But when
sourcing from padded buffer, we only want to use the valid pixels. This
rectangle is from the crop meta, orther it is deduces from the caps. The width
and height from the caps is save in the parent class, use these instead of the
GstVideoInfo when settting the src rectangle.
This fixes an issue with 1080p video displaying repeated or green at the
padded bottom 8 lines (seen with v4l2codecs).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1580 >
2020-09-18 16:26:23 +00:00
Seungha Yang
ea24a2e527
d3d11: Add support for packed 8bits 4:2:2 YUV formats
...
Note that newly added formats (YUY2, UYVY, and VYUY) are not supported
render target view formats. So such formats can be only input of d3d11convert
or d3d11videosink. Another note is that YUY2 format is a very common
format for hardware en/decoders on Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1581 >
2020-09-18 14:47:21 +00:00
Randy Li (ayaka)
2f5904c20d
msdk: vpp: fixup passthrough checking for DMA
...
I think it is just a typo from e1a90f1ec9
msdkvpp: Disable passthrough if memory capsfeature changes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1559 >
2020-09-16 03:02:31 +00:00
Seungha Yang
08119ea515
d3d11vp9dec: Don't need to consider output_picture() call without GstVideoCodecFrame
...
Baseclass will be updated in order to ensure GstVideoCodecFrame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567 >
2020-09-15 15:54:53 +00:00
Seungha Yang
b73a223dc5
d3d11vp9dec: Specify profile and alignment on sink template
...
Set supported profile(s) on sink template caps, so that decodebin
can filter out this element if profile of given vp9 stream is not
supported by hardware decoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567 >
2020-09-15 15:54:53 +00:00
Seungha Yang
bb5ef4fd5b
d3d11decoder: Cleanup code
...
* Don't need to set pts/dts/duration on output buffer of frame.
it's handled by baseclass
* Remove meaningless debug output
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1567 >
2020-09-15 15:54:53 +00:00
Víctor Manuel Jáquez Leal
261d6e463a
Revert "va: h264dec: set latency"
...
This reverts commit 3aedef4c86
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1531 >
2020-09-14 16:48:31 +00:00
Nicolas Dufresne
20785e775e
v4l2slh264dec: Minor cleanup
...
Move few variables in their respective scope.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1563 >
2020-09-10 15:21:57 +00:00
Nicolas Dufresne
cc8e1ca2ac
v4l2slh264dec: Fix B-Frame weight table
...
We where not setting the luma l1 weight table.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1563 >
2020-09-10 15:21:57 +00:00
Seungha Yang
47bbc997f8
mfvideosrc: Set timestamp on buffer when it's captured
...
Capture the timestamp immediately when new frame is arrived,
instead of doing that on ::create() method. There would be
time gap between captured time and outputting time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1351 >
2020-09-10 10:21:00 +00:00
Seungha Yang
d1d2acead1
mfvideoenc: Add support for zero-copy encoding
...
Add custom IMFMediaBuffer and IMF2DBuffer implementation in order to
keep track of lifecycle of Media Foundation memory object.
By this new implementation, we can pass raw memory of upstream buffer
to Media Foundation without copy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1518 >
2020-09-09 07:25:52 +00:00
Sebastian Dröge
64039cdf84
gst: Update for gst_video_transfer_function_*() function renaming
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1557 >
2020-09-07 12:14:47 +03:00
Haihao Xiang
cc3057e4ea
msdkvp9dec: change the include header order
...
This fixes the compiler error when MFX_VERSION_USE_LATEST is defined in
the SDK.
/usr/include/mfx/mfxvp9.h:48:5: error: unknown type name ‘mfxExtBuffer’
mfxExtBuffer Header;
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1549 >
2020-09-01 13:57:13 +08:00
Jérôme Laheurte
ccfb799d83
dshowsrcwrapper: Update build instructions. Add _builddir to include search path.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1537 >
2020-08-28 23:00:53 +00:00
Jérôme Laheurte
02666d929f
dshowsrcwrapper: fix typo in variable name
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1538 >
2020-08-25 10:49:11 +02:00
Seungha Yang
95e007ac49
d3d11videosink: Fix crash caused by missing null termination
...
gst_caps_features_new() must be null terminated.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1524 >
2020-08-24 20:03:05 +00:00
Víctor Manuel Jáquez Leal
7c696b67be
va: allocator: remove parameter from _create_buffer_surface()
...
Don't the allocator to _create_buffer_surface() since it's not used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Víctor Manuel Jáquez Leal
80de32b017
va: utils: free allocated string
...
and fix a memleak
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Víctor Manuel Jáquez Leal
69a00541dd
va: utils: fix log category initialization
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Víctor Manuel Jáquez Leal
c905f6131d
va: h264dec: check va allocator at decide allocation
...
And some code cleanups
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Víctor Manuel Jáquez Leal
f755730b20
va: decoder: improve locks for member variable access
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1516 >
2020-08-24 19:35:57 +00:00
Seungha Yang
5d4ab18ced
mediafoundation: Correct wrong raw video format mapping
...
Was a shameful mistake
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1517 >
2020-08-17 21:39:13 +09:00
Víctor Manuel Jáquez Leal
3aedef4c86
va: h264dec: set latency
...
The min latency is calculated with the maximum number of frames that
precede any frame, if available, and it is lower than the maximum
number of frames in DBP.
The max latency is calculated with the maxium size of frames in DBP.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1500 >
2020-08-17 09:32:41 +00:00
Seungha Yang
5ffd2c64a0
mediafoundation: Call MFShutdown when destroying plugin
...
MFStartup and MFShutdown should be paired as documented in
https://docs.microsoft.com/en-us/windows/win32/api/mfapi/nf-mfapi-mfstartup#remarks
Otherwise valgrind-like tools would report false positive memory leak.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1512 >
2020-08-13 07:05:36 +00:00
Xu Guangxin
9123b9ba39
msdkvpp: do not hold too many input buffers in locked list
...
If the surface is locked before vpp, upstream takes the reference.
We do not need to take a reference for msdk in vpp.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1490 >
2020-08-13 01:43:19 +00:00
Xu Guangxin
ea0aac4c19
msdkvpp: refact, put input and output surface in diffrent list
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1490 >
2020-08-13 01:43:19 +00:00
Seungha Yang
185d2f56a3
d3d11: Handle newly added GST_VIDEO_TRANSFER_BT601
...
Use the value for mapping between DXGI_COLOR_SPACE_TYPE and GstVideoColorimetry.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1410 >
2020-08-12 15:18:56 +00:00
Seungha Yang
205ad89802
d3d11: Store more device information in context structure
...
It would be more informative for debugging
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1507 >
2020-08-12 14:04:55 +00:00
Seungha Yang
ff9157eef4
d3d11: Selected adapter index should be unsigned integer
...
If d3d11device was created successfully, the index of adapter
must not be negative value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1507 >
2020-08-12 14:04:55 +00:00
Víctor Manuel Jáquez Leal
122a3cc40c
va: h264dec: remove spurious comment
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1499 >
2020-08-10 15:36:47 +00:00
Víctor Manuel Jáquez Leal
159562faf7
va: h264dec: check return value of gst_va_handle_set_context()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1499 >
2020-08-10 15:36:47 +00:00
Matthew Waters
d1667da0c3
build: update for gl pkg-config file split
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1462 >
2020-08-07 20:22:41 +10:00
Sebastian Dröge
309f6187fe
decklink: Re-order modes enum for backwards compatibility with 1.16
...
The PAL/NTSC widescreen modes were added after 1.16 but inserted before
the HD modes, which changed the integer values of the enums.
Move them to the very end instead to keep backwards compatibility.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1048
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1492 >
2020-08-06 12:22:04 +03:00
Andrew Branson
8a51fdbc2c
androidmedia: ignore additional camera effects if not present
...
Fixes https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/283
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1470 >
2020-08-04 11:07:33 +00:00
Víctor Manuel Jáquez Leal
6cf03b21f6
va: h264dec: log if upstream pool is kept
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1489 >
2020-08-04 10:39:05 +02:00
Víctor Manuel Jáquez Leal
f332c35ec0
va: utils: fix precondition check for handle_context_query()
...
display paramater can be NULL, but if it's not, it has to be a
GstVaDisplay.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1489 >
2020-08-04 10:39:05 +02:00
Víctor Manuel Jáquez Leal
62dacfd89a
va: allocator: support for GST_MAP_VA map flag
...
This flag will return the VASurface value at mapping
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
f7cfb422f1
va: context: instanciate VA display through GstContext
...
Add all the machinery to instanciate VA display through GstContext,
thus all va elements can share the same display and the user can set
a custom one.
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
0cc1dccd84
va: h264dec: don't copy frames if VAMemory capsfeature is negotiated
...
Otherwise the VASurfaceID is lost.
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
aa664a4eca
va: h264dec: copy render_device_path in klass
...
It it's not copied both cdata and klass, the string is lost. Thus
also it's freed from cdata when freeing it.
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
040c799cd8
va: display: wrapped: Fix property name
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
585295e82b
va: decoder: remove unused argument
...
And that changes function's namespace
2020-08-03 19:33:01 +02:00
Víctor Manuel Jáquez Leal
5154ee7f4c
va: caps: bail raw caps if driver doesn't report surface formats
...
This is a bug in Gallium RadeonSI driver for Polaris10, which doesn't
report sufrace formats for reported chroma.
If one chroma doesn't report surface formats, skip the generated caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1483 >
2020-08-03 15:54:45 +00:00
Víctor Manuel Jáquez Leal
d3ef3d562a
va: allocator: get a surface format from a image format
...
For the allocator to create surfaces with the correct chroma an
fourcc, it should use a surface format, not necessarily the negotiated
format.
Instead of the previous arbitrary extra formats list, the decoder
extracts the valid pixel formats from the given VA config, and pass
that list to the allocator which stores it (full transfer).
Then, when the allocator allocates a new surface, it looks for a
surface color format chroma-compatible with the negotiated image color
format.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1483 >
2020-08-03 15:54:45 +00:00
Víctor Manuel Jáquez Leal
2327ac4a13
va: caps: add raw caps image formats with same chroma of surfaces
...
Instead of adding a list of ad-hoc formats for raw caps (I420 and
YV12), the display queries the available image formats and we assume
that driver can download frames in that available format with same
chroma of the config surfaces chroma.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1483 >
2020-08-03 15:54:45 +00:00
Víctor Manuel Jáquez Leal
9db747e4d0
va: display: add gst_va_display_get_image_formats()
...
For this it was also added gst_va_video_format_from_va_image_format()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1483 >
2020-08-03 15:54:45 +00:00
Víctor Manuel Jáquez Leal
39e55129d5
va: decoder: initialize rt_formas to zero
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1483 >
2020-08-03 15:54:45 +00:00
Seungha Yang
9b72b04dad
d3d11download: Allow linking with downstream d3d11 elements
...
It will make pipeline configuration easier since d3d11download
element can be placed unconditionally. This behavior is similar
to that of gldownload element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1485 >
2020-08-03 13:10:07 +00:00
Seungha Yang
4986b0dd34
mfvideosrc: Select common formats if both VideoPreview and VideoRecord are available
...
Some devices (e.g., Surface Book 2, Surface Pro X) will expose
both MediaStreamType_VideoPreview and MediaStreamType_VideoRecord types
for a logical device. And for some reason, MediaStreamType_VideoPreview
seems to be selected between them while initiailzing device.
But I cannot find any documentation for the decision rule.
To be safe, we will select common formats between them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1478 >
2020-08-01 15:17:05 +00:00
Seungha Yang
479a67c1b7
mfvideosrc: Check framerate for target IMediaFrameFormat selection
...
Not only resolution and format, but framerate needs to be checked
for proper target IMediaFrameFormat selection.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1478 >
2020-08-01 15:17:05 +00:00
Seungha Yang
3fb8caf635
mfvideosrc: Handle I420/IYUV subtypes for UWP cases
...
Microsoft defines two I420 formats, one is I420, and the other is
IYUV (but both are same, just names are different).
Since both will be converted to GST_VIDEO_FORMAT_I420,
we should check both I420 and IYUV subtypes during
GstVideoFormat to Microsoft's format conversion.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1478 >
2020-08-01 15:17:05 +00:00
Seungha Yang
2303ad7bf4
mfvideosrc: Add more debug log
...
It would be useful for finding the error reason.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1478 >
2020-08-01 15:17:05 +00:00
Seungha Yang
fc49886c61
wasapi2, mfvideosrc: Update "dispatcher" property to be only writable
...
Disallow getting dispatcher pointer, since it doesn't seem to be useful
and might not be safe.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1480 >
2020-07-31 21:50:16 +09:00
Seungha Yang
ed14e0d5a6
wasapi2device: Allow empty caps for UWP use case
...
If the device has not been activated yet, caps might not be available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1466 >
2020-07-26 12:52:15 +00:00
Seungha Yang
9e56d20279
wasapi2: Activate device asynchronously if required
...
In case of UWP, documentation from MS is saying that
ActivateAudioInterfaceAsync() method should be called from UI thread.
And the resulting callback might not happen until user interaction
has been made.
So we cannot wait the activation result on constructed() method.
and therefore we should return gst_wasapi2_client_new()
immediately without waiting the result if wasapi2 elements are
running on UWP application.
In addition to async operation fix, this commit includes COM object
reference counting issue around ActivateAudioInterfaceAsync() call.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1466 >
2020-07-26 12:52:15 +00:00
Seungha Yang
b10afc574e
wasapi2: Add a new property for ICoreDispatcher setting
...
... so that ensure device activation on UI thread.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1466 >
2020-07-26 12:52:15 +00:00
Seungha Yang
6d960781fc
mfvideosrc: Only device activation needs to be running on UI thread
...
... and the other operations does not have the thread constraint.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1466 >
2020-07-26 12:52:15 +00:00
Seungha Yang
502aea3969
mfvideosrc: Add a new property for ICoreDispatcher setting
...
Since the commit c29c71ae9d
,
device activation method will be called from an internal thread.
A problem is that, CoreApplication::GetCurrentView()
method will return nullptr if it was called from non-UI thread,
and as a result, currently implemented method for accessing ICoreDispatcher
will not work in any case. There seems to be no robust way for
accessing ICoreDispatcher other then setting it by user.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1466 >
2020-07-26 12:52:15 +00:00
Seungha Yang
42de98fd42
mfvideosrc: Suppress more spammy debug messages
...
The failure on compressed format (e.g., MJPG, H264 subtypes) is expected.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1468 >
2020-07-26 05:48:48 +09:00
Seungha Yang
d03e959f54
d3d11window: Remove timeout and wait a task if possible
...
If the run_async() method is expected to be called from streaming
thread and not from application thread, use INFINITE as timeout value
so that d3d11window can wait UI dispatcher thread in any case.
There is no way to get a robust timeout value from library side.
So the fixed timeout value might not be optimal and therefore
we should avoid it as much as possible.
Rule whether a timeout value can be INFINITE or not is,
* If the waiting can be cancelled by GstBaseSink:unlock(), use INFINITE.
GstD3D11Window:on_resize() is one case for example.
* Otherwise, use timeout value
Some details are, GstBaseSink:start() and GstBaseSink:stop() will be called
when NULL to READY or READY to NULL state change, so there will be no
chance for GstBaseSink:unlock() and GstBaseSink:unlock_stop()
to be called around them. So there is no other way then timeout way.
GstD3D11Window:consturcted() and GstD3D11Window:unprepare() are the case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1461 >
2020-07-24 04:53:44 +00:00
Seungha Yang
6ede4a99a7
d3d11window: Increase timeout to 10 sec for WinRT window implementations
...
No strong reason for this number, but we can follow other well known
UWP implementation ANGLE.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1461 >
2020-07-24 04:53:44 +00:00
Seungha Yang
deaa29bd96
codecs: vp8decoder: Sync up with h264decoder implementation
...
Pass GstVideoCodecFrame with GstVp8Picture to new_picture() and
output_picture() methods for subclass to be able to reference
it directly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1458 >
2020-07-23 15:48:05 -04:00
Seungha Yang
c78fe6bfb0
v4l2codecs: vp8dec: Remove white space
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1458 >
2020-07-23 18:57:02 +00:00
Seungha Yang
e754d5a5b2
codecs: vp9decoder: Sync up with h264decoder implementation
...
* Pass GstVideoCodecFrame to new_picture() and output_picture()
* Pass the last reference of GstVp9Picture to subclass if possible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1455 >
2020-07-23 15:41:39 +00:00
Seungha Yang
8821165648
wasapi2: Fix broken debug log
...
I hope that MSVC is smart enought to warn this at build time
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1459 >
2020-07-23 14:37:52 +00:00
Seungha Yang
87b150c42a
v4l2codecs: h264dec: Remove outdated comment
...
... and unnecessary user data clear on GstVideoCodecFrame
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1457 >
2020-07-23 18:07:58 +09:00
Seungha Yang
96b9000289
v4l2codecs: h264dec: Fix leak on decoding failure
...
Given GstVideoCodecFrame and GstH264Picture should be cleared,
and the return must be GST_FLOW_ERROR, not boolean value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1457 >
2020-07-23 18:07:11 +09:00
Seungha Yang
128e533a6e
d3d11decoder: Disable array-of-texture
...
Some 4K VP9 + super frame enabled streams would be broken with
array-of-texture configuration (i.e., allowing runtime texture registration
for DPB).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1456 >
2020-07-22 16:06:47 +00:00
Seungha Yang
3422868c59
mfutils: Suppress spammy debug print
...
Remove FIXME debug print. It seems to be spammy.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1452 >
2020-07-22 18:11:18 +09:00
Seungha Yang
6c52008413
mfvideosrc: Expose sorted caps
...
Sort the list of supported caps for downstream to be able to select
the best image in terms of quality (resolution and framerate) by default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1452 >
2020-07-22 18:11:18 +09:00
Seungha Yang
c3ecea0aa4
mfvideosrc: Don't expose unsupported formats
...
Some UVC cameras support H.264 stream but we don't support it yet.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1452 >
2020-07-22 18:10:57 +09:00
Víctor Manuel Jáquez Leal
820bbc1bce
va: documentation since tag
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1387 >
2020-07-21 16:15:47 +00:00
Víctor Manuel Jáquez Leal
1ca39b571d
vah264dec: add documentation caps for pad templates
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1387 >
2020-07-21 16:15:47 +00:00
Seungha Yang
2a0de96015
d3d11window: Disable d3d11 video processor for HDR10 stream.
...
d3d11 video processor is showing buggy behaviors in various cases.
And this HDR10 is one case of them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1454 >
2020-07-21 15:41:20 +00:00
Nicolas Dufresne
bb9fbf0626
v4l2codecs: h264dec: Use the new picture lookup
...
This will avoid having to create a reference chain from CodecFrame
to GstH264Picture to GstV4l2Request.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1449 >
2020-07-21 17:18:42 +09:00
Seungha Yang
e921a07715
codecs: h264decoder: Pass GstVideoCodecFrame to output_picture()
...
All subclasses are retrieving list to get target output frame, which
can be done by baseclass. And pass the ownership of the GstH264Picture
to subclass so that subclass can clear implementation dependent resources
before finishing the frame.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1449 >
2020-07-21 17:18:42 +09:00
Seungha Yang
7a024a740f
codecs: h264decoder: Don't attach extra ref of GstH264Picture to GstVideoCodecFrame
...
The lifecycle of GstH264Picture is being managed by our DPB
implementation. If it's still required, subclass can do that
by itself in the new_picture() method.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1449 >
2020-07-21 17:18:42 +09:00
Seungha Yang
37aeb91d54
mfvideosrc: Don't error out when if we've found supported format
...
While retrieving supported formats by device, the last return might
not be S_OK in case that it's not supported one by us (e.g., H264, JPEG or so).
But if we've found at least one supported raw video format,
we can keep going on.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1451 >
2020-07-20 16:13:37 +00:00
Seungha Yang
c1093e3481
plugins: Use g_win32_error_message for HRESULT to string conversion
...
We don't need to duplicate a method for HRESULT error code to string
conversion. This patch is intended to
* Remove duplicated code
* Ensure FormatMessageW (Unicode version) and avoid FormatMessageA
(ANSI version), as the ANSI format is not portable at all.
Note that if "UNICODE" is not defined, FormatMessageA will be aliased
as FormatMessage by default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1442 >
2020-07-18 11:05:52 +09:00
Seungha Yang
f68c8d853b
wasapi2util: Fix wrong use of debug category
...
Haven't noticed so far since there is no debug statement in the source file.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1445 >
2020-07-17 15:58:16 +09:00
Silvio Lazzeretti
3803fa29b2
wasapi: added missing lock release in case of error in gst_wasapi_xxx_reset
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1440 >
2020-07-15 20:11:48 +00:00
Nicolas Dufresne
7b3c101ced
v4l2codecs: Enable 32x32 tiled NV12 support
...
This is used by Cedrus driver to support Allwinner VPU, also known as the
sunxi platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1437 >
2020-07-15 13:24:13 +00:00
Haihao Xiang
e7160a97cf
msdkh265enc: add the missing comma
...
Otherwise main-444 and main-444-10 are concatenated
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1436 >
2020-07-15 08:38:07 +08:00
Seungha Yang
a43d6f6cd9
mfvideosrc: Enable WinRT capture impl. for desktop target
...
... if target OS version was specified as Windows 10.
When enabled, desktop application can select target capture
implementation between WinRT and Win32
via GST_USE_MF_WINRT_CAPTURE environment
(e,g., GST_USE_MF_WINRT_CAPTURE=1 for WinRT impl.).
Default is Win32 implementation in case of desktop target.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1434 >
2020-07-14 16:59:06 +00:00
Seungha Yang
495ed45d05
d3d11decoder: Disable zero-copy for Qualcomm devices
...
Qualcomm driver looks buggy in zero-copy scenario. Even if we disable
zero-copy, device-to-device memory copy will be used with d3d11videosink
which should be fast enough.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1432 >
2020-07-12 01:40:45 +09:00
Haihao Xiang
c0e809d6b8
msdkh265enc: add support for screen content coding extension
...
Because the valid input formats for screen content coding extension is
a subset of input formats for range extension, user must specify the
profile for screen content coding extension in the caps filter
Example:
gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12 ! msdkh265enc
low-power=1 ! video/x-h265,profile=screen-extended-main ! fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1389 >
2020-07-11 23:42:52 +08:00
Haihao Xiang
e1d1cb07a6
msdkh265enc: allow user to choose profile
...
Example:
gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12 ! msdkh265enc !
video/x-h265,profile=main-444 ! fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1389 >
2020-07-11 23:42:52 +08:00
Haihao Xiang
55f3590317
msdkenc: support tune property in msdkh264enc and msdkh265enc
...
Introduce a new property for encoding mode selection, the default value
for this new property allows the SDK to decide what to do. In addition,
low-power is marked as deprecated since this fix
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1426 >
2020-07-11 13:57:52 +00:00
Haihao Xiang
3ecb2a82be
Revert "msdkh265enc: let MSDK select the encoding mode by default"
...
This reverts commit 9e977832c1
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1426 >
2020-07-11 13:57:52 +00:00
Seungha Yang
ad8529caf7
d3d11: Disable D3D11Debug and DXGIDebug layer for UWP build
...
WACK (Windows App Certification Kit) doesn't seem to be happy with
the DXGIGetDebugInterface1 symbol.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1421 >
2020-07-08 21:11:31 +00:00
Haihao Xiang
9e977832c1
msdkh265enc: let MSDK select the encoding mode by default
...
MSDK may support lowpower and non-lowpower modes, some features are
available only under one of the two modes, which is hard to know for
user, so let MSDK select the mode by default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1405 >
2020-07-06 14:43:31 +00:00
Matthew Waters
c94675f1d4
decklinkvideosink: write the cdp timecode data correctly
...
We were mixing up the tens part with the unit parts all over the place.
e.g. 12 seconds would be encoded as 0x21 instead of the correct 0x12
Aligns the code with the same change applied to ccconverter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1400 >
2020-07-03 06:54:46 +00:00
Nicolas Dufresne
1bef43f9d4
v4l2decoder: Track pending request
...
With the asynchronous slice decoding, we only queue up to 2 slices
per frames. That side effect is that now we are dequeuing bitstream
buffers in both decoding and presentation order. This would lead to
a bitstream buffer from a previous frame being dequeued instead of
the expected last slice buffer and lead to us trying to queue an
already queued bitstream buffer.
We now fix this by tracking pending requests. As request are executed
in decoding order, we marking a request done, we can effectively
dequeue bitstream buffer from all previous request, as they have been
executed already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
a88e63dd2f
v4l2decoder: Improve debug tracing
...
Add some missing traces and move per-slice operation to TRACE level to
reduce the noise level.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
d5a205cff4
v4l2decoder: Convert request pool to GstQueueArray
...
The decoder is not being access from multiple threads, instead it is
always protected by the streaming lock. For this reason, a
GstAtomicQueue for the request pool is overkill and may even introduce
unneeded overhead. Use a GstQueueArray in replacement, the
GstQueueArray is a good fit since the number of item is predictable and
unlikely to vary at run-time.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
a2eb1b57ff
v4l2slh264dec: Wait on previous pending request in slice mode
...
In slice mode, we'll do one request per slice. In order to recycle
bitstream buffer, and not run-out, wait for the last pending
request to complete and mark it done.
We only wait after having queued the current slice in order to reduce
that potential driver starvation and maintain performance (using dual
buffering).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
b20c6fe6c4
v4l2slh264dec: Renew bitstream buffer after submitting slice
...
Submitting a slice actually clears the bitstream buffer. Ensure we
have a newly allocated bitstream buffer for the next slice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
bc1a0323a9
v4l2slh264dec: Factor out bitstream allocation
...
No functional changes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
779f331bd4
v4l2slh264dec: Add a helper to ensure output buffer
...
In preparation of multi-slice decoding, we will decode multiple
slices into the same buffer. This will ensure we have a buffer to
decode to, queued into the driver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
d65f7de650
v4l2slh264dec: Factor out request wait
...
This will be reused to wait for previous slices to be complete
when dealing with following slices (in slice decoding mode).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
176a860169
v4l2slh264dec: Remove double return in submit_bitstream()
...
This is code cleanup, no functional changes.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Nicolas Dufresne
1f48e60bde
v4l2slh264dec: Fix typo in debug trace
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1395 >
2020-07-02 12:21:51 -04:00
Mathieu Duponchelle
b33f10e7e2
docs: remove gst prefix from plugin titles
2020-07-02 18:10:21 +02:00
Seungha Yang
8d0dc4fdd2
plugins: Update for documentation of Windows plugins
...
* Add Since marks
* Make use of GST_PARAM_CONDITIONALLY_AVAILABLE flag
2020-07-02 17:21:29 +02:00
Seungha Yang
76793ffabc
nvcodec: Update for documentation
...
* Add Since marks
* Make use of GST_PARAM_CONDITIONALLY_AVAILABLE flag
* Add documentation template caps
2020-07-02 17:21:24 +02:00
Seungha Yang
73ddf27898
dxgiscreencapsrc: Add missing debug category init
...
This should've been addressed in the commit 9042062072
but I was missed it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1383 >
2020-06-30 02:51:14 +09:00
Víctor Manuel Jáquez Leal
79d11c2022
va: VA-API H.264 decoder and infrastructure
...
New plugin with an element for H.264 decoding with VA-API. This novel
approach, different from gstreamer-vaapi, uses gstcodecs library for
state handling.
The code is expected to looks cleaner because it uses VA-API without
further layers or wrappers.
* It uses the first supported DRM device as default VA display (other
displays will be supported through user's GstContext)
* Requires libva >= 1.6
* No multiview/stereo profiles neither interlaced streams because
gstcodecs doesn't handle them yet
* It is incompatible with gstreamer-vaapi
* Even if memory:VAMemory is exposed, it is not handled yet by any
other element
* Caps templates are generated dynamically querying VAAPI, but YV12
and I420 are added for system memory caps because they seem to be
supported for all the drivers when downloading frames onto main
memory, as they are used by xvimagesink and others, avoiding color
conversion.
* Surfaces aren't bounded to context, so they can grow beyond the DBP
size, allowing smooth reverse playback.
* There isn't yet error handling and recovery.
* 10-bit H.264 streams aren't supported by libva.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1379 >
2020-06-28 11:47:35 +02:00
Seungha Yang
117f593cff
d3d11h265dec: Fix possible invalid memory access
...
The number of element to copy should be num_tile_columns_minus1
and num_tile_rows_minus1.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1374 >
2020-06-25 13:58:57 +00:00
Seungha Yang
48ca7c7e93
nvh265sldec: Fix possible invalid memory access
...
Fix Coverity issues.
CID 1464959, 1464960, 1464961, 1464962
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1374 >
2020-06-25 13:58:57 +00:00
Seungha Yang
82189d6859
d3d11videosink: Disable d3d11videosink depending on supported feature level
...
Current shader code is not compatible with HLSL profile "ps_4_0_level_9_3"
or lower. So d3dcompiler cannot compile our shader code in that case.
Note that VirtualBox is one known driver which doesn't support currently
implemented shader code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1343 >
2020-06-25 07:55:47 +00:00
Kevin King
eebfed0726
avfvideosrc: wait for permissions request dialog callback
...
otherwise gstreamer gives up on transitioning the pipeline before the
user has accepted
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1370 >
2020-06-24 18:56:53 +00:00
Seungha Yang
133b902044
nvh264sldec: Remove useless double space
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357 >
2020-06-24 16:25:58 +00:00
Seungha Yang
711e964572
nvcodec: Add H265 stateless codec implementation
...
Add a new GstCodecs based H265 decoder element
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357 >
2020-06-24 16:25:58 +00:00
Seungha Yang
1e544f741a
nvcodec: Move common methods to nvdecoder
...
... and remove all #ifdef from nvh264sldec implementation.
New helper methods will take care of OpenGL specific ones.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357 >
2020-06-24 16:25:58 +00:00
Seungha Yang
1f452c0577
nvh264sldec: Declare OpenGL related objects unconditionally
...
GstGLDisplay and GstGLContext are subclass of GstObject so we can
remove #ifdef for such object. This is prework for nvh265sldec.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357 >
2020-06-24 16:25:58 +00:00
Seungha Yang
82ddb0600b
nvh264sldec: Fix for possible wrong device selction
...
decoder should select assigned CUDA device id
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1357 >
2020-06-24 16:25:58 +00:00
Mathieu Duponchelle
ad49ae42f7
docs: mark more types as plugin API
2020-06-23 12:10:19 -04:00
Seungha Yang
863c663b1d
d3d11window_win32: Chain up mouse event to parent window
...
Unlike key event, mouse event will not be chained up to parent window
by DefWindowProc
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1361 >
2020-06-22 15:09:22 +00:00
Seungha Yang
9042062072
dxgiscreencapsrc: Load HLSL compiler library using g_module_open
...
Depending on OS version, available d3dcompiler library name is different.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355 >
2020-06-22 14:36:16 +00:00
Seungha Yang
96a5760751
dxgiscreencapsrc: Reorganize debug category usage
...
Use the same debug category in all dxgiscreencap related source code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355 >
2020-06-22 14:36:16 +00:00
Seungha Yang
4aa7d3d589
winscreencap: Remove trailing whitespaces
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355 >
2020-06-22 14:36:16 +00:00
Seungha Yang
3dd2b6f20b
d3d11device: Print supported DXGI format for debugging
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355 >
2020-06-22 14:36:16 +00:00
Seungha Yang
8fe1aae96c
d3d11: Load HLSL compiler library using g_module_open
...
Depending on OS version, available d3dcompiler library name is different.
But for UWP, we can still use the current way
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355 >
2020-06-22 14:36:16 +00:00
Seungha Yang
9b8eec39b6
d3d11shader: Add missing config.h include
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1355 >
2020-06-22 14:36:16 +00:00
Seungha Yang
4997cde699
mediafoundation: Add VP9 encoder element
...
Some Intel GPUs support hardware accelerated VP9 encoding and
Microsoft provides software VP9 encoding implementation as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1295 >
2020-06-22 07:58:03 +00:00
Seungha Yang
1a68da54b6
mfvideosrc: Add support for jpeg on Win32 application
...
Enable reading jpeg data from webcam if it's supported.
Note that this would be enabled only for Win32.
For UWP, we need to research more about how to support jpeg.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1342 >
2020-06-17 17:45:32 +09:00
Seungha Yang
f508c8b988
mfvideosrc: Fix wrong casting
...
Don't cast ISoftwareBitmap to IMFMediaBuffer
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1342 >
2020-06-17 17:37:05 +09:00
Seungha Yang
86e3df9493
mfvideosrc: Add support YUY2 format for UWP
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1342 >
2020-06-17 17:37:05 +09:00
Seungha Yang
8d7f537782
mediafoundation: Drop IMFCaptureEngine implementation
...
It was introduced for later use of its enhanced feature over IMFSourceReader
such as taking photo with video preview, audio/video capturing at
the same time, etc. But currently it's not our use case, and it would
be maintenance burden.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1342 >
2020-06-17 17:37:05 +09:00
Seungha Yang
f899728dd4
d3d11: Don't assume response of context query has valid d3d11 device context
...
Peer elements should return FALSE if d3d11 device context is unavailable
but it might happen for some reason (e.g., wrong implementation or so)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1347 >
2020-06-16 11:23:34 +00:00
Seungha Yang
bc99ea1e30
d3d11decoder: Disable zero-copy for blacklisted device
...
Should enable it for verified devices. For now, Xbox is blacklisted
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339 >
2020-06-16 10:49:02 +00:00
Seungha Yang
1144cdc63a
d3d11decoder: Adjust alignment constraint for Xbox device
...
XBox doesn't seem to support 128 bytes alignment for 4K HEVC
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339 >
2020-06-16 10:49:02 +00:00
Seungha Yang
fe361ecc25
d3d11window: Do not configure video processor for Xbox device
...
Disable video processor for Xbox until it's verified
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339 >
2020-06-16 10:49:02 +00:00
Seungha Yang
d12c0c4c7b
d3d11utils: Add a helper method for checking Xbox device
...
Required for some cases to work around device specific issue
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339 >
2020-06-16 10:49:02 +00:00
Seungha Yang
b5c8889d4f
d3d11videosink: Use GPU memory copy if possible
...
Even if fallback buffer is required (e.g., shader resource view is unavailable),
use direct GPU memory copy if possible. It must be much faster than
system memory copy approach.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339 >
2020-06-16 10:49:02 +00:00
Seungha Yang
73b39407a6
d3d11videosink: Ensure shader resource view of fallback buffer
...
SRV must be configured for color conversion
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339 >
2020-06-16 10:49:02 +00:00
Seungha Yang
4471788e4a
d3d11window: Fix typo "configureed"
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1339 >
2020-06-16 10:49:02 +00:00
Jun-ichi OKADA
d43c5b6485
winscreencap: Add dxgiscreencapsrc element.
...
This element uses the Desktop Duplication API to capture the desktop screen at high speed.
It supports Windows 8 or later.
It has the following features compared to other elements:
* Runs faster.
* It works in High DPI environment.
* Draws an accurate mouse cursor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/863 >
2020-06-16 10:30:13 +09:00
Xu Guangxin
610e477565
msdkdec: hold a reference for the surfaces locked by msdk
...
previous code releases GstBuffer too earlier. so we will see
ERROR default gstmsdkvideomemory.c:77:gst_msdk_video_allocator_get_surface: failed to get surface available
ERROR msdkbufferpool gstmsdkbufferpool.c:270:gst_msdk_buffer_pool_alloc_buffer:<msdkbufferpool0> failed to create new MSDK memory
We need to hold GstBuffer reference for msdk if the surfaced locked by msdk.
step to reproduce.
1. ffmpeg -f lavfi -i testsrc=duration=10:size=320x240:rate=30 -pix_fmt yuv420p -c:v libx265 test.265
2. GST_GL_PLATFORM=egl gst-launch-1.0 -v filesrc location=test.265 ! h265parse ! msdkh265dec ! queue ! glimagesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1277 >
2020-06-15 02:46:53 +00:00
Seungha Yang
2e1bec7ff6
wasapi2: Fallback to IAudioClient interface if IAudioClient3 API is unavailable
...
When default device is selected, IAudioClient3 API doesn't look like
available.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1332 >
2020-06-11 12:40:44 +00:00
Seungha Yang
7ab51e85ab
wasapi: Fix possible deadlock while downwards state change
...
IAudioClient::Stop() doesn't seem to wake up the event handle,
then read() or write() could be blocked forever by WaitForSingleObject.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1329 >
2020-06-11 11:40:26 +00:00