Sebastian Dröge
5bc92375c9
svtav1enc: Fix indentation
2023-02-03 22:14:18 +02:00
Sebastian Dröge
7890a1f8c7
svtav1: Integrate into the build system properly
2023-02-03 22:14:18 +02:00
Sebastian Dröge
b15efacf84
svtav1: Merge SVT-AV1 encoder into gst-plugins-bad
...
This is based on d5e1e2a586020854733f6b0806064d0c900c88d2 from
https://gitlab.com/AOMediaCodec/SVT-AV1 .
2023-02-03 22:13:30 +02:00
Tim-Philipp Müller
d95d3e39af
cc708overlay: bump pango requirement and drop no longer required locking
...
Gets rid of GSlice allocation that's never freed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3784 >
2023-02-03 17:48:10 +00:00
Sebastian Dröge
8aa376d541
gstreamer: Decide rate-control-mode based on the bitrate/cqp/crf settings
...
And also keep the default encoder settings but simply override them with
our own values that we care about.
This mirrors the encoder configuration behaviour from ffmpeg.
2023-02-03 12:48:56 +02:00
Sebastian Dröge
70c83bc59c
gstreamer: Use GLib types instead of stdint.h types consistently
2023-02-03 12:48:56 +02:00
Sebastian Dröge
dd1db338df
gstreamer: Fix double unref
...
The ownership of the caps is passed to `gst_video_encoder_set_output_state()`.
2023-02-03 12:48:56 +02:00
Sebastian Dröge
df064c6cc2
gstreamer: Configure colorimetry and HDR metadata if present
...
This raises the minimum GStreamer requirement to 1.16 as used by the CI
and optionally makes use of 1.18 features, including HDR.
2023-02-03 12:48:25 +02:00
Sebastian Dröge
aeee6f5b6a
gstreamer: Set correct maximum width/height limits
2023-02-03 12:35:24 +02:00
Sebastian Dröge
65eb56e7ad
gstreamer: Use correct 10-bit format on big endian systems
2023-02-03 12:35:24 +02:00
Sebastian Dröge
90fd191392
gstreamer: Set force_key_frames=true
in CQP/CRF mode
...
Other modes don't support that so keyframes can't be requested at
arbitrary times.
2023-02-03 12:35:24 +02:00
Sebastian Dröge
f24643b48f
gstreamer: Add support for setting arbitrary parameters via parameters-string
property
2023-02-03 12:35:18 +02:00
Sebastian Dröge
d746164ba0
gstreamer: Fix naming of function name that was taken over from the SVT-HEVC encoder
2023-02-03 12:34:38 +02:00
Sebastian Dröge
ddb9a037e1
gstreamer: Don't overwrite application configuration on initialization and initialize with the default configuration
2023-02-03 12:34:38 +02:00
Sebastian Dröge
7b1b33aff2
gstreamer: Clean up property handling
...
Use more correct types, defaults and clean up property names a bit.
This now matches the configuration provided by ffmpeg.
2023-02-03 12:34:38 +02:00
Sebastian Dröge
78ee7e82d9
gstreamer: Mark all internal functions as static
2023-02-03 12:34:38 +02:00
Sebastian Dröge
10769e7fe6
gstreamer: Fix encoder and buffer state life cycle
...
Allocate/deallocate the encoder in `open()`/`close()` and its buffers in
`start()` / `stop()`.
Also fail correctly if configuring the encoder fails.
2023-02-03 12:34:38 +02:00
Sebastian Dröge
24d6027d2e
gstreamer: Remove unused frame_count
and dts_offset
2023-02-03 12:34:38 +02:00
Sebastian Dröge
2d250439f1
gstreamer: Fix debug category description
2023-02-03 12:34:38 +02:00
Adrian Fiergolski
79d2af5626
avtp: rvf: add missing since markers
...
Add missing markers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:46 +01:00
Adrian Fiergolski
9f880b37fc
avtp: rvf: add AVTP RVF de-payload support
...
Add AVTP Raw Video Format de-payload support. The element supports only
GRAY16_LE output format, so:
- active pixels (no vertical blanking),
- progressive mode,
- 8 and 16-bit pixel depth,
- mono pixel format,
- grayscale colorspace.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:42 +01:00
Adrian Fiergolski
d8f449ccda
avtp: cvf: extract AVTP VF depayload base class
...
Extract a part which could be common with the AVTP RVF depayload plugin to a separate class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:38 +01:00
Adrian Fiergolski
4f2fde0163
avtp: rvf: add AVTP RVF payload support
...
Add AVTP Raw Video Format payload support. The element supports only GRAY16_LE
input format, so:
- active pixels (no vertical blanking),
- progressive mode,
- 8 and 16-bit pixel depth,
- mono pixel format,
- grayscale colorspace.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:33 +01:00
Adrian Fiergolski
8702a1fa67
avtp: cvf: extract AVTP VF payload base class
...
Extract a part which could be common with the AVTP RVF payload plugin to a separate class.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1335 >
2023-02-02 19:15:29 +01:00
Sebastian Dröge
b12c66042b
aom: Include stream-format and alignment in the AV1 caps
...
The decoder does not work with arbitrary alignment and annexb stream
format and the encoder can give the information that it outputs
obu-stream/tu to downstream.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3862 >
2023-02-01 19:04:32 +00:00
Benjamin Gaignard
16ad80179b
codec2json: Add av12json element
...
This element convert AV1 frame header into human readable
json data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3734 >
2023-01-30 19:46:55 +00:00
Benjamin Gaignard
fd588a50e4
codec2json: Add vp82json element
...
This element convert vp8 frame header into human readable
json data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3734 >
2023-01-30 19:46:55 +00:00
Sebastian Dröge
aba0b0e90a
gstreamer: Use stream-format=obu-stream alignment=tu in the caps
...
There is no byte-stream/au format for AV1 but only for H264, and the
encoder actually outputs obu-stream/tu instead of the annexb
stream-format that is similar to H264 byte-stream format.
Without this the encoder can't be used with elements that require a
specific AV1 stream-format, e.g. the MP4 or Matroska/WebM muxer.
2023-01-26 01:46:46 +00:00
Nirbheek Chauhan
cc3078d819
meson: Add a wrap file for libsrt2p
...
And allow fallback to it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3708 >
2023-01-25 11:38:52 +00:00
Tim-Philipp Müller
82cd540d08
svthevcenc: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
93fc68c5ba
x265: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
bfc2fab9ea
wpe: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
664d83de99
ttml: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
c095a1d620
srtp: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
4994c730c8
resindvd: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
d1fe992f1f
kate: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Tim-Philipp Müller
c1759353c1
openjpeg: drop use of GSlice
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3695 >
2023-01-24 15:25:07 +00:00
Jonas Danielsson
8eeaeab6af
wpe: Add 'run-javascript' action signal
...
Introduce way of running a script in the context of the internal
webView.
Fixes #1722
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3753 >
2023-01-20 10:58:31 +00:00
Sebastian Dröge
80e364876b
gstreamer: Fix code style by running clang-format
2023-01-12 21:38:51 +02:00
Sebastian Dröge
7652026f0d
gstreamer: Don't leak all video frames
2023-01-12 21:38:51 +02:00
Sebastian Dröge
ff911c76c0
gstreamer: Don't explicitly drop frames on stop()
...
This is already handled by the base class.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
f56e8b2fad
gstreamer: Remove unused variable
2023-01-12 01:06:38 +00:00
Sebastian Dröge
040c92d8b0
gstreamer: Stop outputting frames if pushing one has caused an error
2023-01-12 01:06:38 +00:00
Sebastian Dröge
5f03d9c4d1
gstreamer: Don't set bogus LIVE flag on output buffers
2023-01-12 01:06:38 +00:00
Sebastian Dröge
85b9c8e103
gstreamer: Allocate output buffers via the encoder
...
This makes sure the correct allocator and configuration is used.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
30e0c1e4fd
gstreamer: Negotiate the encoder immediately after setting the format
2023-01-12 01:06:38 +00:00
Sebastian Dröge
d9efa54783
gstreamer: Fix output state reference leak
2023-01-12 01:06:38 +00:00
Sebastian Dröge
b498bdb765
gstreamer: Add missing property setter/getter for lookahead property
2023-01-12 01:06:38 +00:00
Sebastian Dröge
13fa6d387d
gstreamer: Fix reference leak of the input state if the caps are changing
...
Also remove misleading comment: reconfiguration was already handled by
the following code.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
9128978042
gstreamer: The encoder has no maximum latency
...
It will buffer as much as it needs to.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
785ba05bca
gstreamer: Announce support for video meta on the input side
...
This allows handling input buffers with non-default strides, which was
already handled fine by the element code.
Without this, potentially expensive conversion was needed.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
c5b166491c
gstreamer: Don't override various virtual methods unnecessarily
...
There was no custom behaviour in there.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
158c1f6602
gstreamer: Don't unnecessarily override decide_allocation()
...
This avoids more optimal output buffer allocation.
2023-01-12 01:06:38 +00:00
Sebastian Dröge
3b3e862580
gstreamer: Don't set a DTS and remove non-working DTS hack
...
The previous hack would create bogus DTS that confused other elements.
Fixes https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/1915
2023-01-12 01:06:38 +00:00
Sebastian Dröge
a8c6eb0606
gstreamer: Don't use private data but simply always get the oldest frame
...
The private data is not copied over for SVT AV1 encoder so this code
path would've never worked.
Instead of relying on the PTS, which is not required to be unique or
existing at all, we always take the oldest frame as AV1 has no frame
reordering / B frames.
2023-01-12 01:06:38 +00:00
Philippe Normand
f532ea6627
av1enc: Add property for controlling max distance between 2 keyframes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:55 +00:00
Yatin Mann
59529ae918
aom: av1enc: Expose more properties
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:54 +00:00
yatinmaan
5cb04de96a
aom: av1enc: Remove redundant enum variants from header
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:54 +00:00
Yatin Mann
cbc7334d93
aom: av1enc: Ensure that input pts is strictly increasing
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:54 +00:00
Yatin Mann
cfcd2aac67
aom: av1enc: Fix pts unit
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2743 >
2023-01-08 18:51:54 +00:00
ekwange
beccaf31ef
dfbvideosink: Fix compile error
...
Fix some compile errors
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3670 >
2023-01-08 03:49:03 +00:00
Olivier Crête
f45cfe0d53
srt: Avoid crash on unknown option
...
Use the correct field that is null instead of the struct value which
never is.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3672 >
2023-01-04 02:45:51 +00:00
Xavier Claessens
5ff5f9fd5b
qroverlay: Add qrcode-case-sensitive property
...
This allows to encode case sensitive strings, like wifi SSID/password.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3662 >
2023-01-03 19:40:20 +00:00
مهدي شينون (Mehdi Chinoune)
8d5ac30955
meson: Accept latest version of opencv 4.x
...
We've been bumping along the maximum opencv 4.x version for years,
just accept all opencv versions till someone reports breakage.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1680
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3664 >
2022-12-30 17:10:12 +00:00
Philippe Normand
72884f141c
webrtcbin: Support for setting kind attribute on RTCRtpStreamStats
...
The attribute maps the `kind` property of the associated transceiver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3630 >
2022-12-22 21:35:51 +00:00
Thibault Saunier
f7b342f1dd
base:navigation: Cleanup navigation key modifiers enum
...
We were exposing the 'ALT' modifier as if we were guaranteeing its
accuracy but truth is we were only exposing configuration dependent
values.
Make the API simpler for now, the same way as Gtk3 was exposing it, and
when we have time to guarantee more values by making them take backends
configuration into account, we will expose those values in a accurate
way.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1402
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3565 >
2022-12-15 16:47:13 +00:00
Matthew Waters
993bc8fc01
webrtc: implement support for msid values
...
Local msid values are taken from sink pad property, or fallback to the
previously used cname.
The remote msid values are exposed on the relevant src pads.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3106 >
2022-12-14 12:23:32 +11:00
Stéphane Cerveau
7cfc3130a7
zxing: update to 1.4.0 tag
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3450 >
2022-12-11 15:52:08 +00:00
Daniel Morin
855f84c558
onnx: Update to OnnxRT >= 1.13.1 API
...
- Replace deprecated methods
- Add a check on ORT version we are compatible with.
- Add clarification to the example given.
- Add the url to retrieve the model mentioned in the example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3388 >
2022-11-22 22:36:34 +00:00
Seungha Yang
6c007b8936
av1dec: Demote rank to secondary
...
cerbero does not build this plugin for now, and there's altanative
dav1ddec
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3287 >
2022-11-22 17:48:25 +00:00
Jan Schmidt
dfb5e3365e
webrtcbin: Remove queue after rtpfunnel
...
The original BUNDLE support commit placed a queue after the
rtpfunnel that combines streams, but I don't see a good reason for
it. It has default settings, so if network output is slow might
accidentally store up to 1 second of pending data, increasing
latency.
Remove it in favour of doing any necessary buffering before
webrtcbin. If it turns out that there is a reason for it to
exist, the limits should probably be configurable and small.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3437 >
2022-11-19 10:31:50 +00:00
Jan Schmidt
5fa4f0562c
webrtcbin: Fix a typo in debug log
...
transceiever -> transceiver
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3434 >
2022-11-19 13:12:58 +11:00
Johan Sternerup
e708543039
webrtcbin: Add settings for HTTP proxy
...
Pass this to libnice which has a simple HTTP 1.0 proxy with basic
authentication only.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2867 >
2022-11-18 15:00:58 +00:00
Enrique Ocaña González
a2990020b2
hlsdemux: Expose EXT-X-PROGRAM-DATE-TIME as tags.
...
This allows an application to use timestamps associated
with fragments.
Patch by: Thomas Bluemel <tbluemel@control4.com>
See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/195
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1417 >
2022-11-17 22:11:12 +00:00
Rafał Dzięgiel
30c2bdad61
mpdparser: Fix missing baseURL query
...
When no initializationURL or mediaURL, return baseURL that also
contains original URI query if available. This fixes a problem
where URI query was being omitted in the HTTP requests.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147 >
2022-11-14 23:45:53 +00:00
Rafał Dzięgiel
548bbc3147
mpdparser: Be consistent about returning duplicated URL
...
Instead of returning a "const gchar" or a "gchar" that should not be freed, always
return a duplicated string as those functions were used together with g_strdup anyway.
This is needed to prepare support for returning modified strings in next commit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147 >
2022-11-14 23:45:53 +00:00
Rafał Dzięgiel
0d79dbedf3
mpdparser: Return correct mediaURL value
...
This fixes a problem where get_mediaURL was returning NULL when segmentURL
was unavailable instead of baseURL as a fallback.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1147 >
2022-11-14 23:45:53 +00:00
Jan Schmidt
452890093d
aesdec: Fix padding removal for per-buffer-padding=FALSE
...
When per-buffer-padding is FALSE, the OpenSSL context needs
to be told to remove any padding at the end of the ciphertext
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1243
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3406 >
2022-11-15 00:13:15 +11:00
Matthew Waters
5ca3988420
webrtc/datachannel: handle error messages from appsrc/sink
...
Fixes a possible race where closing a data channel may produce e.g.
not-linked errors.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381 >
2022-11-11 10:13:27 +00:00
Matthew Waters
a34e380e2e
sctpdec: fix stream reset (src pad removal) if no data is ever received
...
If we don't receive any data from usrsctp, then there will be no src pad
for the stream id and the stream reset will fail to remove the relevant
src pad. Workaround by first attempting to add the relevant src pad, then
almost immediately removing it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381 >
2022-11-11 10:13:27 +00:00
Guillaume Desmottes
9eee5adb24
gssink: add 'content-type' property
...
Useful when one wants to upload a video as `video/mp4` instead of
'video/quicktime` for example.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3371 >
2022-11-10 09:53:29 +00:00
Matthew Waters
e2ff6b61ce
cccombiner: initial implementation of using CCBuffer helper
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
088597b430
closedcaption: move CC buffering to helper object
...
Move most of the interesting code from ccconverter to this new helper
object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
06a20f9243
closedcaption: move cdp->cc_data into shared location
...
So it can be used by both ccconverter and cccombiner
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
fde92ec43f
closedcaption: move cc_data->cdp to shared file
...
Used by both ccconverter and cccombiner
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
9f1b54f6ee
ccconverter: avoid different indent versions indenting !! differently.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
067185e7da
closedcaption: move cdp framerate table to common file
...
shared by both cccombiner and ccconverter
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
5dd199f7e8
cccombiner: don't assume a single cea608 data packet per buffer
...
e.g. 24fps can have up to 3 and would include either two field0 or
field1 cea608 data.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
741cfd18b5
ccconverter: drop data when overflow on extracting cea608 from cc_data
...
If the buffer overflows, then drop rather than causing a failure and
fropping the output buffer indefinitely. This may have caused downstream to
be waiting for data the will never arrive.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Matthew Waters
542060fea7
ccconverter: fix framerate passthrough with malformed input
...
If an input is malformed (only produces cea608 field 1 cc_data) then
when in passthrough we would effectively be dropping every second cea608
on output as we would not store any unused cea608 data.
Fix by having all code paths go through the framerate conversion code
which will store and retrieve any relevant data across buffers.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211 >
2022-11-10 00:52:14 +00:00
Jan Alexander Steffens (heftig)
28628a67e5
srt: Add a property to disable automatic reconnect
...
This adds a new boolean property `auto-reconnect`, defaulting to `true`.
Setting it to `false` makes the elements (in caller mode) immediately
report an error to the application instead of trying to reconnect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3326 >
2022-11-07 22:23:02 +00:00
Edward Hervey
a100f36b69
webrtcbin: Don't duplicate enum string values
...
Some were leaked when debugging was enabled. Instead just directly use the
static strings as-is.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3347 >
2022-11-07 11:21:00 +00:00
Edward Hervey
f4d0537b3e
lv2: Don't leak plugin information on registration
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319 >
2022-11-04 17:59:21 +00:00
Edward Hervey
685a4aaaa7
ladspa: Don't leak plugin information on registration
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319 >
2022-11-04 17:59:21 +00:00
Edward Hervey
8ca2a2a230
fdkaacenc: Properly terminate GEnumValue table
...
It should be terminated with a NULL entry, otherwise we just stray into the
realms of cryptographic libraries^W^W random memory usage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319 >
2022-11-04 17:59:21 +00:00
Jan Alexander Steffens (heftig)
424b331afc
srt: Remove callers for which srt_bstats fails
...
This keeps them from accumulating in the element and in the stats while
the sink is not being fed, as long as we at least periodically grab
stats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
d575a41145
srt: Use simpler list operations for callers
...
Avoid `g_list_append` and `g_list_remove` (which have to scan the list)
and replace them with `g_list_prepend` and `g_list_delete_link`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
3c23c16f40
srt: Clean up poll/sock lifecycle
...
Make sure `srtobject->poll_id` is never invalid as long as `srtobject`
exists. Only remove our caller socket from it when the socket becomes
invalid.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
4e05100e8c
srt: Clean up error handling
...
- Make the srt_epoll_wait loops more uniform.
- Error only via GError when possible; let the element send the error
message. Avoids a second error message.
- Return 0 when cancelled. Avoids an error message from the element.
- Don't send an error message from send_headers when we're a server
sink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
a3cc5cf257
srt: Simplify socket stats
...
Don't hide stats depending on whether we're a sending or receiving
socket. While we're here, add some more debug logs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
b6974b6afc
srt: Replace stats accumulation with naive byte counting
...
srt_bstats cannot be used to get the stats of closed connections, so the
best we can do is keep the running count ourselves.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Guillaume Desmottes
a92f41e0c7
wpe: fix wpevideosrc gst-play example
...
wpe:// no longer works since 1.20, see wpesrc examples.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3306 >
2022-11-02 00:21:21 +00:00
Sanchayan Maity
da52bedbff
fdkaacenc: Update documentation to clarify bitrate and peak-bitrate
...
bitrate property is only applicable for constant bitrate and
peak-bitrate is only applicable for variable bitrate. Clarify
the same.
2022-10-30 16:54:51 +05:30
Sanchayan Maity
f0ceb9ea4f
fdkaacenc: Add support for setting bitrate mode
2022-10-30 16:54:51 +05:30
Sanchayan Maity
595dd7a1ed
fdkaacenc: Add support for setting peak bitrate
2022-10-29 16:04:42 +05:30
Sanchayan Maity
734593ccab
fdkaacenc: Add support for enabling afterburner
...
This is an additional quality parameter. In the default configuration this
quality switch is deactivated because it would cause a workload increase
which might be significant. If workload is not an issue in the application
it can be recommended to activate this feature.
2022-10-29 15:57:52 +05:30
Sanchayan Maity
a63d8ee720
fdkaacdec: Do not report decoding error for flush request
...
A flush request is done when set_format is called to empty internal bit
buffer maintained by fdk-aac. When this happens, during the explicit
call to handle_buffer, decodeFrame does not return a AAC_DEC_OK. This
gets reported as a decoding error while no decoding error in fact took
place. Since this can be confusing, just return a GST_FLOW_OK and log
that an explicit flush was requested.
2022-10-29 10:47:16 +05:30
Thibault Saunier
4f991a55af
adaptivedemux: Minor typo fix
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159 >
2022-10-27 19:45:44 +00:00
Thibault Saunier
8a9821e805
dash: Fix computing repeat_index
when seeking in stream with a start !=0 on the first fragment
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3159 >
2022-10-27 19:45:44 +00:00
Tim-Philipp Müller
d7e2aff994
fdkaacenc: fix output caps in case of implicit signaling and HE-AAC
...
Need to put the actual profile in the output caps otherwise any
capsfilter after the encoder that was used to force the output
profile will fail, such as
fdkaacenc ! audio/mpeg,stream-format=adts,profile=he-aac-v1 ! ..
because we put profile=lc in there to match the profile signaled
in the ADTS header. This is expressed through the base-profile=lc
in the GStreamer caps though, the profile needs to carry the
'real' profile.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785 >
2022-10-25 00:13:04 +00:00
Tim-Philipp Müller
24645e35c5
fdkaacenc: don't set base-profile=lc for non-backwards compatible output
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785 >
2022-10-25 00:13:04 +00:00
Tim-Philipp Müller
31c04f87e3
fdkaacenc: rename profile=sbr|ps to profile=he-aac-v1|he-aac-v2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785 >
2022-10-25 00:13:04 +00:00
Piotrek Brzeziński
d8b1ff4668
fdkaacenc: add support for AAC-LD
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785 >
2022-10-25 00:13:04 +00:00
Piotrek Brzeziński
8cda666cb0
fdkaacenc: add support for HE-AACv1 and HE-AACv2
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1785 >
2022-10-25 00:13:04 +00:00
Matthew Waters
0077d13304
webrtcbin: configure rtpulpfecdec passthrough property
...
This allows downstream (payloaders mostly) to be able to correctly
detect actual packet loss from rtp sequence numbers.
See
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/581
for background.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1407
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3212 >
2022-10-23 23:44:07 +00:00
Matthew Waters
a633f5d287
webrtcbin: also add rtcp-fb ccm fir for video mlines by default
...
In addition to the 'nack pli' already added. Both are supported by
rtpbin/rtpsession by default already.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3235 >
2022-10-21 01:02:34 +00:00
Sangchul Lee
0f05be382b
webrtcbin: Improve documentation of 'turn-server' property
...
Description about how to set time-limited credentials is added.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3229 >
2022-10-20 15:30:07 +00:00
Fabian Orccon
50c6c54675
srtp: Fix test skipping when plugin option is disabled
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3200 >
2022-10-18 22:12:41 +00:00
Johan Sternerup
44eea7bd8a
sctpenc: Prohibit sending of interleaved message parts
...
Apparently we cannot start sending messages from another datachannel
before the previous message was completely sent. usrsctplib will
complain about being locked on another stream id and set
errno=EINVAL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2454 >
2022-10-11 09:36:13 +00:00
Xavier Claessens
56eb44c502
Meson: Fix libxml2 fallback
...
The variable xml2lib_dep does not exist. The correct name is already in
the wrap file.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3136 >
2022-10-07 07:56:21 -04:00
Sangchul Lee
93b896eb4e
webrtcbin: Fix pointer dereference before null check
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3129 >
2022-10-06 16:46:33 +00:00
Johan Sternerup
212c09a70e
webrtc: return error when sending on non-open datachannel
...
According to W3C
specification (https://w3c.github.io/webrtc-pc/#datachannel-send ) we
should return InvalidStateError exception when trying to send when the
channel is not open. In the world of C/glib/gstreamer we don't have
exceptions but have to rely on gboolean/GError instead. Introducing
these calls for a change in function signature of the action signals
used to send data on the datachannel. Changing the signature of the
existing "send-string" and "send-data" signals would mean an immediate
breaking change so instead we deprecate them. Furthermore, there is no
way to express GError** as an argument to an action signal in a way
that fits language bindings (pointer-to-pointer simply does not work)
and we have to use regular functions instead.
Therefore we introduce gst_webrtc_data_channel_send_data_full() and
gst_webrtc_data_channel_send_string_full() while deprecating the old
functions and corresponding signals.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1958 >
2022-10-05 11:08:30 +00:00
Devin Anderson
31831eb47e
voamrwbenc: Fix truncation of audio data at end-of-stream when audio data
...
doesn't align on 20 millisecond frame size.
The AMR-WB codec imposes a fixed 20 millisecond frame size. In its current
form, the `voamrwbenc` plugin deals with this limitation by discarding any
audio at the end of the stream that falls short of 20 milliseconds. This patch
keeps the audio data, and appends silence to the end to preserve frame size
alignment.
The patch also adds tests to check for the updated behavior. I noticed that
tests weren't being built, so I changed the build to allow for building the
tests when the `tests` and `voamrwbenc` options are set.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3027 >
2022-09-16 00:14:58 +00:00
Mathieu Duponchelle
b454ec972f
webrtcbin: fix picking available payload types
...
When picking an available payload type, we need to pick one that is
available across all media.
The previous code, when multiple media were present, looked at the first one,
noticed it had pt 96 as the media pt, then simply looked at the next media,
noticed it didn't, and decided 96 was available.
Instead, check if the pt is used by any of the media, if it is, decide
it is not available and go to the next pt. I'm fairly sure that was the
original intent.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2984 >
2022-09-07 03:22:34 +00:00
Jordan Petridis
a7f9c97454
fluidsynth: correctly version guard methods
...
We bumped the minimum version to 2.1 but the api we used
wasn't introduced till version 2.2 of fluidsynth
Follow-up to gstreamer/gstreamer!2718
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2835 >
2022-09-05 17:48:27 +00:00
Jan Schmidt
4e25c519de
dashdemux: Preserve current representation on live manifest updates
...
When updating a manifest during live playback, preserve the current
representation for each stream.
During update_fragment_info, if the current representation changed
because it couldn't be matched, trigger a caps change and new
header download.
This reverts commit e0e1db212f
and reapplies "dashdemux: Fix issue when manifest update sets slow start
without passing necessary header & caps changes downstream" with
changes.
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/507
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1729
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2920 >
2022-09-05 16:07:00 +00:00
Olivier Crête
4b3b234f72
webrtcbin: Allow locked mlines with no caps, as the last ones
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2439 >
2022-09-02 11:52:58 +02:00
Olivier Crête
0930c467d4
webrtcbin: Reject creating an offer if a locked mline has no caps
...
This avoids getting in a bunch of corner cases. We'd have to insert
a "rejected" line from the start as a place-holder to get around this,
but the rest of the code just becomes more complicated, so just
disallow it for now.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2439 >
2022-09-02 11:52:58 +02:00
Olivier Crête
3503599e0a
webrtcbin: Store pending mid to make create-offer idempotent
...
If the mid is not stored in the transceiver, but it is stored in
last_offer, then a further create-offer call will just ignore that
transceiver.
Also include unit test for ensure it doesn't regress.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2439 >
2022-09-02 11:52:58 +02:00
Thibault Saunier
6a4425e46a
meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
...
Removing some copy pasted code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
Robert Rosengren
ab9ce0500a
curlbasesink: gst_curl_base_sink_transfer_thread_close is internal
...
gst_curl_base_sink_transfer_thread_close is moved from external header
to be static function, as it has no users.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2732 >
2022-08-29 09:40:23 +00:00
Robert Rosengren
8677d573b7
curlhttpsink: Only set MIME as content-type if not set by property
...
Setting the content-type property shall override internally detected MIME
types, to make it possible to do as following example (where audio/basic to be
used prior to audio/x-mulaw):
gst-launch-1.0 ... ! mulawenc ! audio/x-mulaw,rate=8000,channels=1 !
curlhttpsink location=<url> content-type=audio/basic
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2732 >
2022-08-29 09:40:23 +00:00
Philippe Normand
0151d621af
openh264: Register debug categories earlier
...
Otherwise the GST_ERROR message logged in case of ABI mismatch would be done on
an uninitialized category.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2918 >
2022-08-22 13:34:33 +00:00
Philippe Normand
cfd3bd4850
openh264enc: Fix constrained-high encoding
...
constrained-high is high without B-frames, there is no EProfileIdc for this, so
assume high instead of hitting an assert down the line.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2919 >
2022-08-20 16:57:27 +01:00
Philippe Normand
90d46c1748
wpesrc: Switch URI handler to web+... protocols
...
The web://http:// URIs were not compliant with RFC 3986. Using web+http://
allows us to use the GstUri parser to pass down a valid URI to `wpevideosrc`.
Corresponding change for the CEF source element:
8d499495dd
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2856 >
2022-08-10 15:10:26 +00:00
Robert Mader
e93773bda7
waylandsink: Logging code style updates
...
For better readability of debug messages and to keep similar code
in sync with `GstGtkWaylandsink`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2694 >
2022-08-03 14:25:17 +00:00
Robert Mader
062638a639
waylandsink: Rename occurrences of GstWaylandSink to 'self'
...
Rename all occurrences to `self`, making it consintent with `GstWl*`
and `GstGtkWaylandsink`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2694 >
2022-08-03 14:25:17 +00:00
George Kiagiadakis
7e18fc1b1f
Add new gtkwaylandsink element
...
This is based on gtksink, but similar to waylandsink uses Wayland APIs
directly instead of rendering with Gtk/Cairo primitives.
Note that the long term plan is to move this into the existing extension
in `-good`, which requires the Wayland library to move the as well.
For this reason several files like `gstgtkutils.*` and `gtkgstbasewidget.*`
are straight copies and should be kept in sync.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1515 >
2022-08-02 16:34:13 +00:00
Philippe Normand
10eaae1243
dtls: Properly name encoder/decoder logging categories
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2820 >
2022-08-01 09:02:03 +00:00
Philippe Normand
7c3f73ec2e
dtls: Make agent and connection GstObjects
...
Facilitates debug logs interpretation of GST_DEBUG_OBJECT() calls.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2820 >
2022-08-01 09:02:03 +00:00
Nirbheek Chauhan
b2d22c0f00
meson: Don't pass -Werror to vendored code
...
Do it the correct way with libusrsctp -- override the option so that
it's done in a compiler-agnostic and future-proof way.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494 >
2022-07-30 11:27:12 +00:00
Nirbheek Chauhan
11ecda9d73
dtls: Disable OpenSSL 3.0 deprecation warnings for now
...
Fedora 36 ships with OpenSSL 3.0, which deprecates all low-level APIs,
so this code needs to be rewritten. There is no easy fix in the
porting guide, and it recommends disabling the warnings if you can't
use the high-level API.
https://wiki.openssl.org/index.php/OpenSSL_3.0#Upgrading_to_OpenSSL_3.0_from_OpenSSL_1.1.1
Here's the replacement API:
https://www.openssl.org/docs/man3.0/man7/migration_guide.html#Deprecated-low-level-object-creation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2494 >
2022-07-30 11:27:12 +00:00
U. Artie Eoff
e3e98da727
meson: webrtc: ensure definition of libgstwebrtcnice_dep
...
... and skip if it's disabled.
Fixes #1344
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2797 >
2022-07-26 17:39:52 -04:00
yatinmaan
2c1e61ea16
webrtc: Split WebRTCICE into base classes and implementation.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2398 >
2022-07-26 13:51:11 +00:00
Jordan Petridis
3a20a4564f
openmpt: update from now deprecated api
...
https://lib.openmpt.org/doc/classopenmpt_1_1module.html#ab2695af0baa274054f5687741fa7c05b
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2721 >
2022-07-21 07:52:37 +00:00
Thibault Saunier
073df3d820
webrtcbin: Add a signal to plug bandwidth estimator elements
...
We need GStreamer elements to do the bandwidth estimation as this way
they can also control the pacing of the transmission flow as specified
in the [GCC] algorithm for example.
Bandwidth estimator element are placed right before the "RTPSession" as
an "rtp-aux-sender" element. This way they can use the "Transport-wide
Congestion Control" RTCP feedback messages through the "RTPTwcc" custom
events that are sent by the rtpsession.
Applications are responsible to react to the bandwidth estimator element
and set the encoder target bitrate etc... which means that we can not
pass an estimator as an element factory, so a signal as been chosen
instead.
[GCC]: https://datatracker.ietf.org/doc/html/draft-ietf-rmcat-gcc-02
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2562 >
2022-07-12 20:40:55 +00:00
Christopher Degawa
8478600596
gst: init metadata to null
...
Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
2022-07-09 15:19:11 -05:00
Jordan Petridis
3385ea3481
fluiddec: Remove workaround for version 1.1.9
...
We require >= 2.1 version since the previous commit
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718 >
2022-07-09 14:19:11 +00:00
Jordan Petridis
2fa6ec8733
fluidsynth: update from now deprecated api
...
fluid_synth_set_chorus_on and fluid_synth_set_reverb_on were
deprecated in favor of new funtions where you can also specify
the fx_group the effect would apply.
The behavior of the set_* variants was to apply to all groups
so we pass -1 to the new functions as per documentation.
https://www.fluidsynth.org/api/group__chorus__effect.html#ga3c48310eecdca9cd338799d19f19c32d
and
https://www.fluidsynth.org/api/group__reverb__effect.html#gacb7917564c988cf54f2e35189b509c8e
and the introduction of the change:
https://github.com/FluidSynth/fluidsynth/pull/673
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2718 >
2022-07-09 14:19:11 +00:00
Matthew Waters
6066e913ee
webrtc: implement support for asynchronous host resolution
...
Doesn't block anymore if a mdns host resolution takes multiple seconds
to complete in e.g. stun/turn/ice candidate usage.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1961 >
2022-07-05 03:20:57 +00:00