Sebastian Dröge
ffa4d84e54
h2645parser: Catch overflows in AVC/HEVC NAL unit length calculations
...
Offset and size are stored as 32 bit guint and might overflow when
adding the nal_length_size, so let's avoid that.
For the size this would happen if the AVC/HEVC NAL unit size happens to
be stored in 4 bytes and is 4294967292 or higher, which is likely
corrupted data anyway.
For the offset this is something for the caller of these functions to
take care of but is unlikely to happen as it would require parsing on a
>4GB buffer.
Allowing these overflows causes all kinds of follow-up bugs in the
h2645parse elements, ranging from infinite loops and memory leaks to
potential memory corruptions.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2103 >
2021-03-24 09:22:48 +00:00
Matthew Waters
640a65bf96
gst: don't use volatile to mean atomic
...
volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead. GCC 11 has started warning about using volatile
with atomic operations.
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2098 >
2021-03-22 14:34:36 +11:00
Philippe Normand
fae7c8dd7e
play: tests: Switch user-agent test to a real HTTP server
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061 >
2021-03-09 18:03:48 +00:00
Philippe Normand
3eec2f4be8
play: tests: Refactor to use new Message bus API
...
Instead of relying on an extra GMainLoop, the messages are poped from the player
bus and handled synchronously. This should avoid flaky behaviors.
Fixes #608
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2061 >
2021-03-09 18:03:48 +00:00
He Junyan
12af439c58
test: av1parser: update the test result because of bug fixing.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1464 >
2020-11-17 19:31:09 +00:00
Haihao Xiang
4a93f6e651
h265parse: recognize more HEVC extension streams
...
There are streams which have the right general_profile_idc and
general_profile_compatibility_flag, but don't have the right extension
flags. We may try to use chroma_format_idc and bit_depth to
recognize these streams.
e.g.
https://www.itu.int/wftp3/av-arch/jctvc-site/bitstream_exchange/draft_conformance/SCC/IBF_Disabled_A_MediaTek_2.zip
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1328 >
2020-09-16 16:51:45 +00:00
Haihao Xiang
626af12498
h265parser: select the right profile for high throughput SCC stream
...
Currently screen-extended-high-throughput-444 is recognized as
screen-extended-main-444, screen-extended-high-throughput-444-10 is
recognized as screen-extended-main-444-10 because they have the same
extension flags, so without this patch, it is possible that a decoder
which supports SCC but doesn't support throughput SCC will try to decode
a throughput SCC stream.
e.g.
https://www.itu.int/wftp3/av-arch/jctvc-site/bitstream_exchange/draft_conformance/SCC/HT_A_SCC_Apple_2.zip
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1328 >
2020-09-16 16:51:45 +00:00
Matthew Waters
0e72318515
vulkan/instance: expose extension/layer choices
...
Extensions and layers can be enabled before calling
gst_vulkan_instance_open() but after calling
gst_vulkan_instance_fill_info().
Use the list of available extensions to better choose a default display
implementation to use based on the available Vulkan extensions for surface
output.
Defaults are still the same.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341 >
2020-06-21 09:30:29 +00:00
Matthew Waters
aad7ed31e1
vulkan/instance: add vulkan API version selection and checking
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1341 >
2020-06-21 09:30:29 +00:00
He Junyan
4ccd59eb24
test: h265parser: Add a test case for SCC extension.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1146 >
2020-05-05 17:07:41 +00:00
He Junyan
3be186fe85
libs: parser: h265: Add SCC extension support.
...
Add support for screen content coding extensions profiles.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1146 >
2020-05-05 17:07:41 +00:00
Georg Ottinger
13d55627f0
libs: parser: Adds AV1 parser.
...
This is the first version of AV1 parser implementation in GStreamer.
A test file is also provied with several test cases. It contains a
test sequence taken from the aom testdata set, with one key and one
inter-frame. The same test sequence has been reencoded to annexb.
testdata is taken from aom testdata (and reencoded for annexb) as well
as handcrafted testcases. Once reference testdata is available, the
testing could be imporved aswell.
Co-author: He Junyan <junyan.he@hotmail.com>
Co-author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/785 >
2020-05-01 19:55:41 +00:00
He Junyan
9082f103a4
test: h265parser: Add check for high throughput scc.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1121 >
2020-04-28 13:54:11 +00:00
He Junyan
be1cdca760
test: h265parser: Add more check or h265 extensions.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1121 >
2020-04-28 13:54:11 +00:00
Seungha Yang
db1ea18276
h264parser: Add support for creating picture timing SEI
...
This new method can make it possible to inject timecode meta into
h264 bitstream
2020-04-08 15:39:12 +00:00
Seungha Yang
72854261bb
tests: h264parser: Fix picture timing SEI
...
The payloadSize don't need to include rbsp_trailing_bits()
2020-04-08 15:39:12 +00:00
Seungha Yang
ce09ceb106
h265parser: Add a helper method to create SEI nal unit
...
Add an API to create raw SEI nal unit. This would be useful in case
an user want to create SEI nal data and inject the SEI nal data
into bitstream.
2020-04-02 09:20:11 +00:00
Seungha Yang
a1e8109aa8
h264parser: Add a helper method to create and inject raw SEI data
...
Add an API to create raw SEI nal unit. This would be useful in case
an user want to create SEI nal data and inject the SEI nal data
into bitstream.
2020-03-30 07:59:10 +00:00
Seungha Yang
f94157c949
nalutils: Introduce NAL writer helper methods
...
Add helper methods for writing h264 and h265 NAL
2020-03-30 07:59:10 +00:00
Seungha Yang
5ac018e949
tests: h265parser: Add test for registered user data SEI
2020-03-23 15:21:42 +00:00
Seungha Yang
959320264a
h265parser: Add helper macro for nal type classification
...
Add some macros to remove code duplication and to make it more readable
2020-03-05 23:22:34 +09:00
Yeongjin Jeong
c8df00a423
tests: vp9parser: Add test parsing superframe
2020-03-02 01:55:33 +09:00
Stéphane Cerveau
5881c1ad2d
tests: add picture timing SEI parsing
2020-02-25 09:33:47 +00:00
Matthew Waters
81d1e16b6b
vulkan: move fullscreenquad object to library
...
It's useful and extensible enough to be used by us and other elements
2019-12-04 07:20:27 +00:00
Matthew Waters
a7c2aa473f
vulkan/image: don't rely on weak-ref notifies for views
...
Weak refs don't quite work here correctly as there is always a race with
taking the lock between find_view() and remove_view(). If find_view()
returns a view that is going to removed by remove_view() then we have an
interesting situation.
In theory, the number and type of views for an image are relatively
constant and should not change one they've been set up which means that
it is actually practical to perform pool-like reference counting here
where the image holds a pool of different views that it can give out
as necessary.
2019-11-28 23:27:21 +00:00
Aaron Boxer
6d3429af34
documentation: fixed a heap o' typos
2019-11-05 09:11:25 -05:00
Edward Hervey
6a9108884c
mpegts: Add support for SCTE-35 sections
...
Not all commands are supported, but the most common ones are.
Both parsing and packetizing is supported
2019-10-31 12:31:27 +00:00
Tim-Philipp Müller
f218ec2794
Remove autotools build system
2019-10-14 13:54:27 +01:00
Matthew Waters
452bb72292
vkbuffer: remove buffer view from the memory
...
It's only really useful for texture buffers which we currently do not
use.
2019-09-25 11:11:02 +00:00
Matthew Waters
82e86573b8
vulkan: implement command buffer reuse
...
Using a similar design for reference counting as
GstBuffer/GstBufferPool.
2019-09-19 02:01:35 +00:00
Matthew Waters
5f76c84feb
vulkan: split physical device from logical device
2019-09-17 13:02:44 +10:00
Wangfei
5f63f59837
tests: h265parser: Add test parsing range extension in PPS
2019-08-31 23:22:44 +00:00
Matthew Waters
8bad9d5d8a
tests/vulkan: fix copyright name
2019-07-05 16:20:29 +10:00
Matthew Waters
58f203844d
vulkan/window: add property for the parent display
2019-07-05 16:20:05 +10:00
Matthew Waters
fda9b57dbe
vulkan/device: add property for the parent instance
2019-07-05 16:13:13 +10:00
Jan Schmidt
15f149a990
tests: Add h264parser SEI checks
...
Add some tests around SEI parsing.
2019-07-05 00:17:59 +10:00
Seungha Yang
4e6e6ad0f9
tests: insertbin: Don't use duplicated variable name
...
../subprojects/gst-plugins-bad/tests/check/libs/insertbin.c(46): warning C4273:
'mutex': ...
The "mutex" was declared in gstcheck.h already
2019-06-18 06:32:14 +00:00
Matthew Waters
e2eea3b3ee
tests/vulkan: allow instance creation failures
...
Usually means that there is no vulkan implementation available.
We skip tests in that case
2019-06-04 09:03:44 +00:00
Matthew Waters
32bde87551
test/vulkan: add simple memory test
2019-06-04 09:03:44 +00:00
Jordan Petridis
1f562870ee
Run gst-indent through the files
...
This is required before we enabled an indent test in the CI.
https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
2018-11-28 14:18:26 +00:00
Seungha Yang
4e5894fa3d
tests: h265parser: Add test parsing nonzero vps_max_layer_id in VPS
2018-11-07 16:13:44 +09:00
Nicolas Dufresne
95c99aa0a7
h265parser: Add same parsing test as for H264
...
This adds the same test as found in H264 test.
2018-11-06 07:26:03 +00:00
Nicolas Dufresne
1df4562077
h264parser: Add unit test parsing 5 valid bytes of a NAL
...
In the case 5 valid bytes of a slice NAL, the parser should return
NO_NAL_END.
2018-11-06 07:26:03 +00:00
Edward Hervey
2f7d87a7d1
tests: Disable most gstplayer tests for now
...
https://bugzilla.gnome.org/show_bug.cgi?id=787374
2018-10-27 13:37:38 +02:00
Víctor Manuel Jáquez Leal
b2d5c1ed3c
check: update gitignore
2018-08-14 13:53:00 +02:00
George Kiagiadakis
9cf58eb3e4
libs: audio: add new GstPlanarAudioAdapter class
...
This is a GstAdapter, but for planar audio buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=793605
2018-08-03 13:20:02 +03:00
Edward Hervey
58070fa12c
gitignore: Add h265parser test
2018-06-01 08:20:21 +02:00
Tim-Philipp Müller
fd3bb44031
tests: player: disable broken test_play_media_info test
...
Until someone can be bothered to debug + fix it.
https://bugzilla.gnome.org/show_bug.cgi?id=787372
https://bugzilla.gnome.org/show_bug.cgi?id=787374
2018-03-05 19:37:52 +00:00
Guillaume Desmottes
6dd997541c
h265parser: allow partial matching on range extension profile
...
Best to return a valid profiles rather than no profile if bitstream uses
a not standard profile.
https://bugzilla.gnome.org/show_bug.cgi?id=793876
2018-03-05 13:22:12 -05:00
Guillaume Desmottes
9f25fcdfc9
h265parse: add support for 'Format range extensions profiles'
...
Those profiles have been introduced in version 2 of the HEVC spec
(A.3.5).
https://bugzilla.gnome.org/show_bug.cgi?id=793876
2018-03-05 13:22:12 -05:00