Commit graph

25 commits

Author SHA1 Message Date
Seungha Yang 845f5d4856 d3d11: Rework memory allocation params signalling
Hide GstD3D11AllocationParams detail from public header and
set setter methods.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5717>
2023-11-27 15:14:09 +00:00
Seungha Yang ac11ccd4ff dwrite: Protect entire draw operation with D3D11 lock
d2d runtime seems to execute pending GPU command list
when DXGI ID2D1RenderTarget is being released, and it will invoke
d3d11 immediate context APIs. Should protect all rendering operations
and DXGI resources with lock.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5659>
2023-11-15 19:25:46 +09:00
Seungha Yang ed29c23e86 d3d12, dwrite, va: Fix various msys2 build error/warning
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5454>
2023-10-12 10:53:58 +00:00
Seungha Yang bfdea297d2 d3d11converter: Set alpha-mode using config
... and disallow runtime alpha-mode update for now

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5457>
2023-10-11 18:40:46 +00:00
Seungha Yang 9a5f5304f8 dwrite: Add plugin docs
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5258>
2023-08-30 15:45:12 +00:00
Seungha Yang d9894da59d dwritetimeoverlay: Fix debug category name
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5179>
2023-08-14 10:24:53 +00:00
Seungha Yang 14ef86a66d dwrite: Re-add background geometry combine
If glyphrun unit is changed in a single line, there could be
overlapped background area which result in drawing background
twice. Adding geometry combine so that background geometry objects
with the same color can be merged and rendered at once

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5179>
2023-08-14 10:24:53 +00:00
Seungha Yang 15f0bd2461 dwrite: Move background-color and color-emoji options to effect object
... and simplify background rendering

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121>
2023-08-02 01:02:32 +09:00
Seungha Yang a1ad56ed5a dwrite: Add helper object for blending operation
For easy integration with a new text rendering baseclass

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121>
2023-08-02 01:02:28 +09:00
Seungha Yang f792884ae7 dwritebaseoverlay: Handle only d3d11 allocation query
... and passthrough allocation queries of the other types

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121>
2023-08-02 01:00:44 +09:00
Seungha Yang 8633b29fab dwritetextoverlay: Remove leading CRLF sequence from CC
The CRLF sequence is unnecessary

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121>
2023-08-02 01:00:44 +09:00
Seungha Yang f01fc727e3 dwrite: Remove some properties
Remove outline color and auto resize related properties
to be consistent with textoverlay elements

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5121>
2023-08-02 01:00:44 +09:00
Seungha Yang 1f18ceaf0f dwritesubtitlemux: Update object name
Add missing prefix `DWrite` so that this element can coexist with
subtitlemux proposed in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4938

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4949>
2023-06-30 23:41:36 +09:00
Seungha Yang 8650c7a42a dwrite: Add support for non-d3d11/system memory
Attach meta if downstream supports it whatever the negotiated memory type is,
or just silently passthrough when meta is not supported

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4945>
2023-06-30 11:14:17 +00:00
Seungha Yang 1c4de219e4 dwrite: Add dwritesubtitleoverlay element
Adding new subtitle overlay element. It's a bin which is wrapping
two internal elements dwritesubtitlemux and dwritetextoverlay.

* dwritesubtitlemux: A new internal element to aggregate subtitle
buffers and to attach the aggregated subtitle buffers on
video buffer as meta.
* dwritetextoverlay: Extracts/renders the subtitle meta and
discard the meta after rendering.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4934>
2023-06-28 20:15:31 +00:00
Seungha Yang a1ca42ad66 dwritebaseoverlay: Fix color-font property get/set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4934>
2023-06-28 20:15:31 +00:00
Seungha Yang 0091166a38 dwrite: Add dwritesubtitlemux element
dwrite plugin internal use and will be removed once it's added to -base

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4934>
2023-06-28 20:15:31 +00:00
Seungha Yang fce6edd0f1 dwrite: Add GstDWriteSubtitleMeta
dwrite plugin internal use and will be removed once it's added to -base

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4934>
2023-06-28 20:15:30 +00:00
Seungha Yang 43ee082189 dwritebaseoverlay: Forward downstream wanted min buffer size
Upstream element might want to know the min buffer size,
d3d11 decoders for example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4929>
2023-06-27 13:23:07 +00:00
Seungha Yang 8838a670e0 dwrite: Remove unused values
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4929>
2023-06-27 13:23:07 +00:00
Seungha Yang 6cb41569e6 dwrite: Add support for closed caption overlay
Adding closed caption rendering feature to dwritetextoverlay
element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4929>
2023-06-27 13:23:07 +00:00
Seungha Yang 713f74f4f9 dwrite: Import libcaption source code
Import the code from gst-plugins-rs
(origin is https://github.com/szatmary/libcaption)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4929>
2023-06-27 13:23:07 +00:00
Seungha Yang 37c7c92c03 dwritetimeoverlay: Fix member variable initialization
Use GstBaseTransform::start() instead

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4929>
2023-06-27 13:23:07 +00:00
Seungha Yang 93db77ea3a dwrite: Protect ID2D1Factory API with lock
ID2D1Factory::CreateDxgiSurfaceRenderTarget is not thread-safe

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4886>
2023-06-18 19:58:45 +00:00
Seungha Yang ba6800ce23 dwrite: Add DirectWrite text rendering plugin
Adding DirectWrite text rendering elements
* dwriteclockoverlay: Equivalent to clockoverlay
* dwritetimeoverlay: Equivalent to timeoverlay
* dwritetextoverlay: Similar to textoverlay but subtitle is not
  supported

Newly added elements support system memory and d3d11 memory

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4826>
2023-06-15 12:53:02 +00:00