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