Seungha Yang
41d8a12649
d3d12: Remove unused methods
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
5ce2a7f64f
d3d12bufferpool: Don't pre-allocate memory for size calculation
...
Unlike d3d11, we can know CPU accessible memory layout without
allocation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
d316356bf2
d3d12memory: Add alloc_wrapped() method
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
3308a976bd
d3d12: Add upload element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
e4f794cbdd
d3d12bufferpool: Wait fence before reusing buffer
...
Buffer can be released without waiting fence for previous commands
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:39:00 +00:00
Seungha Yang
1c5bba4b6b
d3d12decoder: Remove ID3D12Device4 interface requirement
...
Old OS may not support the interface. And allow 11_0 feature level
hardware.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:38:59 +00:00
Seungha Yang
4e5d4a45a3
d3d12decoder: Reduce the number of resource barriers
...
Single barrier per texture is sufficient in case of array-of-textures.
Avoid unnecessary decay barriers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:38:59 +00:00
Seungha Yang
e6bdb0458c
d3d12decoder: Use flexible task queue
...
Instead of using fixed size command allocator array, make it
resizable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:38:59 +00:00
Seungha Yang
efc023e76e
d3d12: Rework command scheduling
...
* Use single fence object per queue and remove GstD3D12Fence
implementation
* Add a helper method for texture copy
* Run background thread and release unused resource from the thread
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:38:59 +00:00
Seungha Yang
6d7d9291c3
d3d12: Add resource pool objects
...
Adding pool objects for command list, command allocator, and descriptor
heap
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:38:59 +00:00
Seungha Yang
93458c0155
d3d12memory: Add more SRV/RTV getter methods
...
Adding a method so that memory object can create SRV/RTV
on external descriptor heap. And remove unused methods
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:38:59 +00:00
Seungha Yang
2578f234dd
d3d12: Remove d3d11 dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5870 >
2023-12-29 14:38:59 +00:00
Sebastian Dröge
43fdc9e9f9
orc: Track main branch again
...
It's one of the projects we maintain and we should track the main branch
to make sure any regressions are caught as early as possible.
For GStreamer releases / release branches this should be pointed back to the
latest orc release tag.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5867 >
2023-12-29 13:16:03 +00:00
Sebastian Dröge
5630294ce6
ptp-helper: Allow unused Stderr
export
...
It's not used when building tests and would otherwise cause a warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5872 >
2023-12-29 10:18:52 +02:00
Sebastian Dröge
c292da7044
rtpsession: Only warn once if configured latency needs to be known but isn't yet
...
Otherwise we would warn about this once for every single packet until
the LATENCY event is received.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5854 >
2023-12-27 11:00:44 +00:00
Thibault Saunier
04ae39f25b
validate: scenario: Add a 'forward-eos' parameter to forward-appsink-to-appsrc
...
There might be cases where the user doesn't want to forward it
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
80e44ac344
validate: scenario: Handle the case where execute_next_action is called with an action that is OK
...
It is now a valid case when running subaction in foreign scenarios
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
93f1ffe715
validate: doc: Enhance the way we render action type parameters
...
And update gst-validate-action-types.md
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
f1e34de800
validate: scenario: Do not print position on sub pipelines
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
a4a97c7568
validate: doc: Enhance documentation about testfile and meta
fields
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:19 +00:00
Thibault Saunier
a5a65b74ff
validate: scenario: Ensure all pipelines with scenarios are stopped when exiting runner
...
Otherwise we end up with "dangling" sub pipelines on SIGINT
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
805641fe70
validate: doc: Update action types documentation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
6abc36ad34
validate: scenario: Cleanup the 'switch-track' action implementation
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
fbf478b3f5
validate: scenario: Add a way to set pipeline base-time, start-time and force using the system clock
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
aad06b091e
validate: scenario: Add an action type to forward stream from an appsink to an appsrc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Thibault Saunier
fd4cd3d85f
validate:scenario: Add a 'create-sub-pipeline' action type
...
And allow running parallel pipelines, scenarios, and pass data from
one to the other using appsrc/appsink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5803 >
2023-12-27 02:14:18 +00:00
Tim-Philipp Müller
d415816cb1
rtpvrawdepay: only announce supported formats in sink template
...
For most video formats we currently just assume that they
have a depth of 8 bits, whilst advertising that we can
handle 8/10/12/16 bit depth.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5866 >
2023-12-25 19:00:18 +01:00
Tim-Philipp Müller
888e5905d8
docs: contributing: add merging section to developer workflows
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5847 >
2023-12-24 13:06:30 +00:00
Olivier Crête
e19428a802
onnx: Update build instructions to use onnx-runtime 0.16.3
...
This synchronizes it with the meson.build file
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5861 >
2023-12-22 14:43:23 -05:00
Michael Tretter
57a4d521fd
videorate: keep pool if max_buffers is unlimited
...
The value 0 for max_buffers means unlimited. If the max_buffers are unlimited,
the videorate element shouldn't throw away the bufferpool, but just increase the
min_buffers value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5857 >
2023-12-22 17:46:50 +00:00
Víctor Manuel Jáquez Leal
fdfd51397b
vajpegdec: only support progressive mjpeg streams
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Víctor Manuel Jáquez Leal
ec4054e637
jpegparse: always forward pixel-aspect-ratio
...
And by default it's 1/1
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Víctor Manuel Jáquez Leal
ae55ebfdf2
jpegparse: fix endianness
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Víctor Manuel Jáquez Leal
470b90a14a
jpegparse: on app0 use fourcc rather than strings
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Víctor Manuel Jáquez Leal
367deef132
jpegparse: dump whole failed app marker
...
Instead of just log the parsed string. It's better for debugging.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Víctor Manuel Jáquez Leal
658b5b4399
jpegparse: don't trigger message for failed com marker
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Víctor Manuel Jáquez Leal
497890f678
jpegparse: refactor renegotation
...
Instead of comparing caps, just signal when renegotation is needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Víctor Manuel Jáquez Leal
03d51244c0
jpegparse: pass colorimetry in caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Víctor Manuel Jáquez Leal
20b636ee9a
jpegparse: add support interlaced mjpeg
...
Interlaced MJPEG is a big hack. Most of the streams we've found are from old
AVID tools. There are two methods to detect interlaced stream: the container
offers a height bigger (or double) than the image's height in SOF. The other
is from a APP0 marker.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5838 >
2023-12-22 04:38:06 +00:00
Jordan Petridis
b39b178dd7
subprojects: update glib wrap to 2.78.3
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5849 >
2023-12-21 19:22:25 +02:00
Sebastian Dröge
c9c26eab26
rtpvp8pay: Also set partition IDs in the packets if meta exists but without temporal_scalability
...
Encoders will add the meta to every single buffer, but we only cannot set
partition IDs properly when the meta has temporal_scalability set
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5814 >
2023-12-21 11:26:49 +00:00
Aaron Boxer
e2ee207367
onnx: add README outlining install and test instructions
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5816 >
2023-12-20 14:48:41 -05:00
Marek Vasut
5f3d4215a0
v4l2codecs: Switch gst_codec_picture_ts_ns() to gst_util_uint64_scale_int()
...
Instead of plain multiplication, use gst_util_uint64_scale_int()
to achieve the same effect with additional checks.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791 >
2023-12-20 18:47:39 +00:00
Marek Vasut
3335af0efe
v4l2codecs: Deduplicate picture frame number to timestamp in ns
...
Add macro which converts picture frame number to suitable timestamp in
nanoseconds for use in V4L2 VB2 buffer lookup. Since multiple codecs do
the same operation and almost all got it wrong, do it in one place so it
can be fixed in one place again, if needed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791 >
2023-12-20 18:47:39 +00:00
Marek Vasut
552a171671
vp9decoder: Simplify gst_v4l2_codecs_vp9_dec_fill_refs()
...
In case reference_frames is NULL, return outright. Remove the
duplicate check from subsequent conditionals. No functional change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791 >
2023-12-20 18:47:39 +00:00
Marek Vasut
4560cdff5c
h265decoder: Align wraparound fix
...
Instead of casting GST_CODEC_PICTURE_FRAME_NUMBER (ref_pic) to u64,
use 1000ULL which is also u64 . This only aligns the behavior here
with '*decoder: Fix multiplication wraparound' commits.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791 >
2023-12-20 18:47:39 +00:00
Marek Vasut
7725aa7d77
h264decoder: Align wraparound fix
...
Instead of casting GST_CODEC_PICTURE_FRAME_NUMBER (ref_pic) to u64,
use 1000ULL which is also u64 . This only aligns the behavior here
with '*decoder: Fix multiplication wraparound' commits.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791 >
2023-12-20 18:47:39 +00:00
Marek Vasut
3cbf09d0c9
mpeg2decoder: Fix multiplication wraparound
...
The GstMpeg2Picture system_frame_number is guint32, constant 1000 is guint32,
GstV4l2CodecMpeg2Dec *_ref_ts multiplication result is u64 .
```
u64 result = (u32)((u32)system_frame_number * (u32)1000);
```
behaves the same as
```
u64 result = (u32)(((u32)system_frame_number * (u32)1000) & 0xffffffff);
```
so in case `system_frame_number > 4294967295 / 1000`, the `result` will
wrap around. Since the `result` is really used as a cookie used to look
up V4L2 buffers related to the currently decoded frame, this wraparound
leads to visible corruption during MPEG2 decoding. At 30 FPS this occurs
after cca. 40 hours of playback .
Fix this by changing the 1000 from u32 to u64, i.e.:
```
u64 result = (u64)((u32)system_frame_number * (u64)1000ULL);
```
this way, the wraparound is prevented and the correct cookie is used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791 >
2023-12-20 18:47:39 +00:00
Marek Vasut
50fb6f8c02
av1decoder: Fix multiplication wraparound
...
The GstAV1Picture system_frame_number is guint32, constant 1000 is guint32,
GstV4l2CodecAV1Dec v4l2_av1_frame.*_frame_ts multiplication result is u64 .
```
u64 result = (u32)((u32)system_frame_number * (u32)1000);
```
behaves the same as
```
u64 result = (u32)(((u32)system_frame_number * (u32)1000) & 0xffffffff);
```
so in case `system_frame_number > 4294967295 / 1000`, the `result` will
wrap around. Since the `result` is really used as a cookie used to look
up V4L2 buffers related to the currently decoded frame, this wraparound
leads to visible corruption during AV1 decoding. At 30 FPS this occurs
after cca. 40 hours of playback .
Fix this by changing the 1000 from u32 to u64, i.e.:
```
u64 result = (u64)((u32)system_frame_number * (u64)1000ULL);
```
this way, the wraparound is prevented and the correct cookie is used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791 >
2023-12-20 18:47:39 +00:00
Marek Vasut
6f74818a07
vp9decoder: Fix multiplication wraparound
...
The GstVp9Picture system_frame_number is guint32, constant 1000 is guint32,
GstV4l2CodecVp9Dec v4l2_vp9_frame.*_frame_ts multiplication result is u64 .
```
u64 result = (u32)((u32)system_frame_number * (u32)1000);
```
behaves the same as
```
u64 result = (u32)(((u32)system_frame_number * (u32)1000) & 0xffffffff);
```
so in case `system_frame_number > 4294967295 / 1000`, the `result` will
wrap around. Since the `result` is really used as a cookie used to look
up V4L2 buffers related to the currently decoded frame, this wraparound
leads to visible corruption during VP9 decoding. At 30 FPS this occurs
after cca. 40 hours of playback .
Fix this by changing the 1000 from u32 to u64, i.e.:
```
u64 result = (u64)((u32)system_frame_number * (u64)1000ULL);
```
this way, the wraparound is prevented and the correct cookie is used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5791 >
2023-12-20 18:47:39 +00:00