Nicolas Dufresne
d16367f046
v4l2codecs: h264: Add missing break
...
There was a missing break for the 4:4:4 case which would break the sizeimage
calculation. We don't currently have hardware that supports 4:4:4, so this
code wasn't tested. This was detected by Coverity.
CID 1463592 1463591
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1283 >
2020-05-21 20:12:07 +00:00
Andrey Sazonov
9bb508c742
planaraudioadapter: fix possible NULL ptr dereference
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1288 >
2020-05-21 17:12:25 +00:00
Andrey Sazonov
5044967382
sdpdemux: fix klocwork issues
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1287 >
2020-05-21 15:14:32 +00:00
Matthew Waters
8403d97587
amc/videodec: only retrieve the stride/slice-height for raw output
...
When outputting to a surface, these values may not exist.
As found on a Google Pixel 3.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1284 >
2020-05-21 12:40:21 +00:00
Stéphane Cerveau
3f16353d64
meson: add libopenjp2 fallback for openjpeg
...
As a wrap is now available in gst-build, the fallback
can be used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1270 >
2020-05-21 08:36:59 +00:00
Ederson de Souza
a754c67c05
avtp: Add libavtp fallback dependence
...
So that libavtp can be found if added as subproject on gst-build.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1271 >
2020-05-21 00:14:08 +00: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
Edward Hervey
f3d6026ad2
rtmp2src: Answer scheduling query
...
Just like for rtmpsrc, we must inform downstream that we are a
sequential (i.e. don't do random access efficiently) and
bandwith-limited (i.e. might need buffering downstream) element
Fixes buffering issues with playbin3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1282 >
2020-05-20 10:55:55 +02:00
Nicolas Dufresne
2160239548
v4l2slh264dec: Request large enough bitstream buffer
...
The Cedrus driver would otherwise choose 1KB buffer, which is too small.
This follows what some drivers do, which is simply to use the size a
packed raw image would have. Specifications do not really guaranty any minimum
compression ratio.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Nicolas Dufresne
037730a787
v4l2slh264dec: Add slice based decoder support
...
This adds support for slice based decoder like the Allwinner/Cedrus driver. In
order to keep things efficient, we hold the sink buffer until we reach the end
of the picture. Note that as we don't know which one is last, we lazy queue the
slices. This effectively introduces one slice latency.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Nicolas Dufresne
661f0c161e
v4l2codecdec: Fix error handling
...
If none of the format the HW produce is supported, the fiter will be NULL,
which would lead to assertion when trying to release it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Nicolas Dufresne
26264163de
v4l2decoder: Add legacy non-multiplanar support
...
The Cedrus driver uses the lagacy buffer type (non-mplane). This automatically
detect and use the right v4l2_buf_type. This also affect code using
v4l2_buffer and v4l2_format structures.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Nicolas Dufresne
14b0b68354
v4l2codecs: Update kernel headers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268 >
2020-05-19 17:51:11 +00:00
Seungha Yang
24f30b2e6e
d3d11convert: Fix fallback texture setup when resolution is not even number
...
When texture format is semi-planar, resolution should be even number,
and add missing P016 format handling
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1275 >
2020-05-19 17:25:05 +00:00
Seungha Yang
a966cc20bc
d3d11convert: Fix fallback texture copy
...
Fix texture copy when input texture has non-zero subresource index
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1275 >
2020-05-19 17:25:05 +00:00
Seungha Yang
a24d4e654d
d3d11: Add support for video rescale and rename element to d3d11convert
...
GstD3D11ColorConverter implementation is able to rescale video as well.
By doing colorspace conversion and rescale at once, we can save
one cycle of shader pipeline which will can save GPU resource.
Since this element can support color space conversion and rescale,
it's renamed as d3d11convert
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1275 >
2020-05-19 17:25:05 +00:00
Seungha Yang
0e842c74b6
d3d11: Move scoring util method for colorspace conversion to colorconvert element
...
It's used only by colorconvert element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1275 >
2020-05-19 17:25:05 +00:00
Víctor Manuel Jáquez Leal
206d900573
codecs: h264decoder: chain finalize vmethod
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Nicolas Dufresne
540c287a73
codecparsers: h264: Only set relevant default weight values
...
This is minor optimization to avoid setting values we don't need. It also
makes debugging easier since only relevant values a non-zero now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Nicolas Dufresne
d062677b3f
codecparsers: h264: Fix default ref list size
...
The default in PPS was not applied properly. The default does not apply for
I-Slice and l1 default only applies for B-Slice. This fixes the slice values
for num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Nicolas Dufresne
28e30c8493
codecs: h264decoder: Use calculated values for max_pic_num/frame_num
...
The parser pre-calculate these already, just use them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Víctor Manuel Jáquez Leal
d2aae6bb96
codecs: h264decoder: ref pic lists as decode_slice parameters
...
Pass reference picture lists to decode_slice() vmethods
Change gstv4l2codech264dec and gstnvh264dec accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:09 +00:00
Víctor Manuel Jáquez Leal
990392d595
codecs: h264decoder: handle reference picture lists
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:08 +00:00
Nicolas Dufresne
7e63d1f5ad
codecs: h264decoder: Port from GList to GArray
...
Using glist requires a lot of small allocation at runtime and also
it comes with a slow sort algorithm. As we play with that for very
frame and slices, use GArray instead. Note that we cache some arrays
in the instance as there is no support for stack allocated arrays
in GArray.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:08 +00:00
Nicolas Dufresne
f8736626a9
codecs: h264decoder: Make get_long_ref_by_pic_num() transfer none
...
We don't use the extra reference, so let's just avoid the extra
ref/unref.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:08 +00:00
Nicolas Dufresne
a20147f255
codecs: h264decoder: Make get_short_ref_by_pic_num() transfer none
...
We don't use the extra reference, so let's just avoid the extra
ref/unref.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1238 >
2020-05-19 16:57:08 +00:00
Stéphane Cerveau
298e22e217
tests: fix nalutils file name
...
The filename was too long causing issues with ccache
Fix https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/97
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1281 >
2020-05-19 15:39:50 +02:00
Jan Alexander Steffens (heftig)
055de3cdff
mpegtsdemux: tests: Add simple tests for tsparse and tsdemux
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1274 >
2020-05-18 14:11:40 +00:00
Jan Alexander Steffens (heftig)
9b2ed3a3fc
mpegtsdemux: Close a buffer leak and simplify input_done
...
tsparse leaked input buffers quite badly:
GST_TRACERS=leaks GST_DEBUG=GST_TRACER:9 gst-launch-1.0 audiotestsrc num-buffers=3 ! avenc_aac ! mpegtsmux ! tsparse ! fakesink
The input_done vfunc was passed the input buffer, which it had to
consume. For this reason, the base class takes a reference on the buffer
if and only if input_done is not NULL.
Before 34af8ed66a
, input_done was used in
tsparse to pass on the input buffer on the "src" pad. That commit
changed the code to packetize for that pad as well and removed the use
of input_done.
Afterwards, 0d2e908523
set input_done
again in order to handle automatic alignment of the output buffers to
the input buffers. However, it ignored the provided buffer and did not
even unref it, causing a leak.
Since no code makes use of the buffer provided with input_done, just
remove the argument in order to simplify things a bit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1274 >
2020-05-18 14:11:40 +00:00
Mats Lindestam
bf004227ec
gstcurlhttpsink: Set 'Expect: 100-continue'-header
...
In the upgrade of libcurl from 7.64.1 to 7.69.1 the
EXPECT_100_THRESHOLD has been increased from 1 Kb to 1 Mb
(see https://curl.haxx.se/mail/lib-2020-01/0050.html ).
This caused the gstcurlhttpsink to not being able to rewind
and resend in the case, e.g. response '401 Unauthorized'.
Now the 'Expect: 100-continue'-header is explicitly set in
the gstcurlhttpsink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1276 >
2020-05-18 13:46:24 +02:00
Arun Raghavan
d0776faf47
opensles: Remove hard-coded buffer-/latency-time values
...
These were originally required in early Android versions, but are no
longer needed.
2020-05-16 19:23:06 +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
Matthew Waters
b3cbdb1d26
amcvideodec: fix sync meta copying not taking a reference
...
Fixup for
9b9e39be24
: amc: Fix crash when a sync_meta survives its sink
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/603
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1272 >
2020-05-15 13:54:56 +10:00
J. Kim
4ccaa1ebbb
srtobject: add streamid property
...
The stream id starts with '#!::' according to SRT Access Control[1],
but GstURI requires URI encoded string.This commit introduces additional
property to set the id by normal string.
[1] https://github.com/Haivision/srt/blob/master/docs/AccessControl.md
2020-05-13 14:13:48 +00:00
Nirbheek Chauhan
e3d5849225
meson: Pass native: false to add_languages()
...
This is needed for cross-compiling without a build machine compiler
available. The option was added in 0.54, but we only need this in
Cerbero and it doesn't affect older versions so it should be ok.
Will only cause a spurious warning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1266 >
2020-05-13 13:59:36 +05:30
Alex Hoenig
0a2e026985
mpegtsmux: detect and ignore gap buffers
...
Fixes #1291 . Without this, when a stream has gaps and then resumes, the next buffer PTS that is written to the TS is given the PTS of the first gap.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1263 >
2020-05-12 12:18:28 -04:00
Matthew Waters
6dae95d60f
ccconverter: check fraction multiply for overflow
...
It should not happen and if it does, something went very wrong earlier
CID 1463350
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1262 >
2020-05-12 16:06:32 +10:00
Matthew Waters
09cbe4cd03
ccconverter: tighten up a couple of NULL checks
...
CID 1463347
CID 1463346
CID 1463345
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1262 >
2020-05-12 16:06:32 +10:00
Matthew Waters
ebc19d19bb
ccconverter: fix unintialized read of mapped output info in error case
...
We only need to gst_buffer_unmap() if we have gst_buffer_map()ed. In
most cases we can shorten the lenght of time we need to map the output
buffer. Fix similar occurences elsewhere.
CID 1463349
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1262 >
2020-05-12 16:06:32 +10:00
Matthew Waters
f077189809
ccconverter: fix uninitialized read in error case
...
CID 1463351
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1262 >
2020-05-12 16:06:32 +10:00
Ting-Wei Lan
d10e2381c7
v4l2codecs: Fix compilation error on FreeBSD
...
This commit does the following things to fix compilation on FreeBSD:
1. Add required typedefs to linux/types-compat.h.
2. Remove unnecessary include linux/ioctl.h and replace linux/types.h
with linux/types-compat.h. Both files do not exist on FreeBSD.
3. Check the header including makedev macro. FreeBSD does not have
sys/sysmacros.h, and including it unconditionally causes error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1259 >
2020-05-11 15:17:31 +00:00
Matthew Waters
12edc0d9b8
ccconverter: implement discont handling
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
ba1558a7ab
ccconverter: use a better padding byte sequence for writing cdp
...
0xf8 can be interpreted as cea608 data at the beginning of a cdp packet
as the cc_valid bit is not checked when cc_valid in (0b00 or 0b01).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
7ed0bc539f
ccconverter: split temporary storage into 3
...
Instead of storing the raw cc_data, store the 2 cea608 fields individually
as well as the ccp data.
Simply copying the input cc_data to the output cc_data violates a number of
requirements in the cea708 specification. The most prominent being, that
cea608 triples must be placed at the beginning of each cdp.
We also need to comply with the framerate-dpendent limits for both the
cea608 and the ccp data which may involve splitting or merging some
cea608 data but not ccp data or vice versa.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
3417a1709c
ccconvert: compact input cc_data where possible
...
Skip over padding cc_data triples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
7d028af675
ccconverter: implement support for CDP framerate conversions
...
- Any format involving CDP is supported.
- Time codes (if present) are scaled as well.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
ddc7563ac9
tests/ccconverter: test the time codes are successfully passed through
...
Where time codes are not stored in the caption data themselves
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00
Matthew Waters
75503017c2
ccconverter: introduce define for max cdp packet length
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116 >
2020-05-11 12:30:31 +00:00