Seungha Yang
c8469644dd
mediafoundation: Add util function to dump IMFAttributes values
...
It would be useful for debugging.
Reference: https://docs.microsoft.com/en-us/windows/win32/medfound/media-type-debugging-code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1280 >
2020-05-27 10:34:47 +00:00
Seungha Yang
8ce4980273
mfsourceobject: Remove useless null check for string
...
We can pass null for the value of string type property.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Seungha Yang
50b36ce257
mediafoundation: Use G_BEGIN_DECLS/G_END_DECLS pair everywhere
...
... instead of extern "c" {} block.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Seungha Yang
c4cb51c63d
mediafoundation: Add support video capture on UWP app
...
New video capture implementation using WinRT Media APIs for UWP app.
Due to the strict permission policy of UWP, device enumeration and
open should be done via new WinRT APIs and to get permission from users,
it will invoke permission dialog on UI.
Strictly saying, this implementation is not a part of MediaFoundation
but structurally it's very similar to MediaFoundation API.
So we can avoid some code duplication by adding this implementation
into MediaFoundation plugin.
This implementation requires UniversalApiContract version >= 6.0
which is part of Windows 10 version 1803 (Redstone 4)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Seungha Yang
e580676747
mfsourceobject: Move device name, path, and index to public struct
...
... so that subclass can access each value and update them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Seungha Yang
6ae478946c
mediafoundation: Fix typo in source object impl.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1241 >
2020-05-25 15:09:20 +00:00
Seungha Yang
3efc8f5de9
mftransform: Clear unused output IMediaSample
...
If MFT doesn't produce encoded output, need to free allocated
output sample and buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1297 >
2020-05-25 10:25:37 +00:00
Seungha Yang
b93fbdd3cd
mfvideoenc: Fix huge memory leak
...
Subclass must unref passed GstVideoCodecFrame on GstVideoEncoder::handle_frame()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1294 >
2020-05-24 19:12:28 +09:00
Seungha Yang
dac36cb98f
mediafoundation: Add device provider implementation
...
Only static device probing is supported for now
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1236 >
2020-05-20 11:06:09 +00:00
Seungha Yang
ba45e3f82b
mfsourceobject: Store selected device path, name and index
...
Update path, name and index with selected device so that checked by
get_property() after constructed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1236 >
2020-05-20 11:06:09 +00:00
Seungha Yang
8afc283b51
mediafoundation: Refactor GstMFSourceObject implementation
...
* Move CoInitializeEx/CoUninitialize pair into thread function in order to
ensure MTA COM thread
* Move common code to baseclass
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1269 >
2020-05-15 09:03:13 +00:00
Seungha Yang
c29c71ae9d
mediafoundation: Remove COM thread constraints from GstMFTransform object
...
Move CoInitializeEx/CoUninitialize pair into our dedicated thread so that
we can ensure COM thread is MTA. This will remove thread constraints
around plugin init.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1269 >
2020-05-15 09:03:13 +00:00
Joshua M. Doe
bfc605a666
mfvideosrc: add GRAY16_LE format support
...
FOURCC "Y16 " is used by FLIR Boson USB Video Class (UVC) camera
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1222 >
2020-04-28 15:14:50 -04:00
Seungha Yang
912b2d7af9
mediafoundation: Disable querying supprted maximum resolution
...
Initializing MFT for checking supported maximum resolution is too
slow.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/760 >
2020-04-28 14:37:31 +00:00
Seungha Yang
565817abd8
mediafoundation: Add h265 encoder
...
Add Media Foundation HEVC encoder
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/760 >
2020-04-28 14:37:31 +00:00
Seungha Yang
9625d19279
mediafoundation: Add h264 encoder
...
Add Media Foundation h264 encoder. If hardware encoders are available
on system, they will have higher rank than software encoder.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/760 >
2020-04-28 14:37:31 +00:00
Seungha Yang
eece89042a
mediafoundation: Introduce Microsoft Media Foundation plugin
...
The Microsoft Media Foundation (MF) is the successor of DirectShow.
This commit includes two kinds of video capture implementation,
one uses IMFSourceReader interface which is available since Windows Vista
and the other is based on IMFCaptureEngine interface which is available
since Windows 8.
Note that this new video source element cannot be used in UWP app
for now, since device activation using those APIs are not allowed by MS.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/760 >
2020-04-28 14:37:31 +00:00