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
Sebastian Dröge
a54eddad3a
webrtcbin: Reject caps that are not valid for creating an SDP media.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2689 >
2022-06-30 09:28:27 +00:00
Tim-Philipp Müller
afc94046ba
dv, opusparse: fix duplicate symbols in static build
...
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1262
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2670 >
2022-06-28 01:29:06 +01:00
Robert Mader
6aa0b0cae2
gstwaylandsink: Add rotate-method property
...
Similar to and inspired by glimagesink and gtkglsink.
Using the Wayland buffer transform API allows to offload
rotate operations to the Wayland compositor. This can have
several advantages:
- The Wayland compositor may be able to use hardware plane
capabilities to do the rotation.
- In case of pre-rotated content on rotated outputs the
rotations may equal out, potentially allowing the
compositor to use hardware planes even if they don't
support rotate operations.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2543 >
2022-06-20 18:30:56 +00:00
Mathieu Duponchelle
f10e2eb88f
cccombiner: expose output-padding property
...
When schedule=true and output-padding=false, cccombiner will not
inject padding in the output closed caption meta stream.
The property has no effect when schedule=false.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1621 >
2022-06-17 14:11:46 +00:00
Olivier Crête
c4971a456e
webrtcbin: Limit sink query to sink pads
...
This allows the reception of streams that don't exactly match
the codec preferences. In particular, the ssrc in the codec preferences
is local sender SSRC, the other side is expected to send a different SSRC.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2615 >
2022-06-17 08:08:43 +00:00
Stéphane Cerveau
19972b8153
srtsrc: add "keep-listening" property to avoid EOS on disconnect
...
The property 'keep-listening' avoids EOS
when the remote client disconnects.
It can be useful to a keep a pipeline alive
when the srt connection drops remotely.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/967 >
2022-06-15 20:35:14 +00:00
Stéphane Cerveau
eb1f21b484
srtsrc: remove dead code
...
Remove code useless since
132e3a1af9
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/967 >
2022-06-15 20:35:14 +00:00
Matthew Waters
9df7a21ec9
vulkan: add vulkan overlay compositor element
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470 >
2022-06-14 03:34:06 +00:00
Matthew Waters
81e601ccaa
vulkan: move element register definition to relevant element headers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2470 >
2022-06-14 03:34:05 +00:00
Tim-Philipp Müller
9d9e59622f
Bump GLib requirement to >= 2.62
...
Can't require 2.64 yet because of
https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2568 >
2022-06-10 06:01:41 +00:00
Philippe Normand
c287711418
webrtcbin: Add a prepare-data-channel GObject signal
...
This new signal allows data-channel consumers to configure signal handlers on a
newly created data-channel, before any data or state change has been notified.
The webrtcin unit-tests were refactored to make use of this new signal.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2427 >
2022-06-07 11:29:33 +00:00
Philippe Normand
779ca38229
webrtcdatachannel: Chain to parent class constructed
...
And add a debug log statement.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2427 >
2022-06-07 11:29:32 +00:00
Robert Mader
eb915b662a
gstwaylandsink: Add support for the "render-rectangle" property
...
We already implement the `set_render_rectangle` videooverlay interface,
thus install the videooverlay property accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2479 >
2022-06-06 14:36:39 +02:00
Robert Mader
8c3e33d494
gstwayland: Move reusable parts of the waylandsink into a library
...
In preparation for the new element `GstGtkWaylandSink`, move reusable
parts out of `GstWaylandSink` into the already exisiting but very
barebone library.
Notable changes include:
- the `GstWaylandVideo` interface was dropped
- support for `wl-shell` was dropped
- lots of renaming in order to match established naming patterns
- lots of code modernisations, reducing boilerplate
- members were made private wherever possible
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2479 >
2022-06-06 14:36:39 +02:00
Jan Alexander Steffens (heftig)
d86ad30be2
opencv: Allow building against 4.6.x
...
Replace the broken version checks with one modeled after
`GLIB_CHECK_VERSION`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2557 >
2022-06-06 00:30:15 +02:00
Olivier Crête
9fe2e1c5eb
webrtcbin: Reject answers that don't contain the same number of m-line as offer
...
Otherwise, it segfaults later. Also add test to validate this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2526 >
2022-06-03 20:28:19 +00:00
Cidana-Developers
e2a6d5f76d
refine reference scaling
...
1. modify codes by review suggestion
2. clean-up macros
2022-05-26 23:29:51 +00:00
Cidana-Developers
b223764832
add random access for reference scaling
...
1. add random access configuration for reference scaling fixed and random mode
2. add e2e tests for random access configuration of reference scaling
2022-05-26 23:29:51 +00:00
Tim-Philipp Müller
962dc37d4f
webrtc: fix build with older libnice versions
...
1) check for right macro name when checking for NICE_VERSION_CHECK
2) if libnice version is 0.1.18.1 this should not satisfy
a NICE_VERSION_CHECK(0,1,19).
Fixes build with libnice 0.1.18.1 subproject checkout.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2499 >
2022-05-26 18:17:49 +00:00
Philippe Normand
eefd793011
webrtc: Use new libnice API to get the candidate relay address
...
Corresponding libnice API added in:
https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/229 (0.1.19)
https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/232 (0.1.20)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998 >
2022-05-26 10:54:59 +00:00
Philippe Normand
08021caa73
webrtc: Ensure the NICE_CHECK_VERSION macro is available
...
This macro was introduced in libnice 0.1.19.1, so until we bump our libnice
dependency to 0.1.20 we have to vendor the macro.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998 >
2022-05-26 10:54:59 +00:00
Philippe Normand
c19319c777
webrtc: Refactor ICECandidateStats freeing logic to a dedicated function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998 >
2022-05-26 10:54:59 +00:00
Philippe Normand
dce8a7750d
webrtcbin: Document IceCandidateStats and RTCIceCandidatePairStats
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998 >
2022-05-26 10:54:59 +00:00
Sherrill Lin
3e7fb83393
webrtcstats: Improve selected candidate pair stats by adding ICE candidate info
...
The implementation follows w3.org specs:
* https://www.w3.org/TR/webrtc-stats/#icecandidate-dict *
* https://www.w3.org/TR/webrtc-stats/#candidatepair-dict *
Corresponding unit tests are also added.
Rebased and updated from
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1462
Fixes #1207
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1998 >
2022-05-26 10:54:59 +00:00
Matthew Waters
be2dfd0c36
webrtcbin: reuese the same fec/rtx/red payload types for the same media payload
...
WHen bundling, if multiple medias are used with the same media payload, then
each of the fec/rtx/red additions would add a distinct payload. This could
very easily overflow the available payload space.
Instead, track the relationship between the media payload value and
the relevant fec/rtx/red payload values and reuse them whenever
necessary, even when bundling.
e.g.
...
a=group:BUNDLE video0 video1
m=video 9 UDP/SAVPF 96 97
a=mid:video0
a=rtpmap:96 VP8/90000
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
...
m=video 9 UDP/SAVPF 96 97
a=mid:video1
a=rtpmap:96 VP8/90000
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2474 >
2022-05-24 10:21:11 +00:00
Philippe Normand
556ee45bfa
datachannel: Notify low buffered amount according to spec
...
Quoting
https://www.w3.org/TR/webrtc/#dom-rtcdatachannel-bufferedamountlowthreshold
The bufferedAmountLowThreshold attribute sets the threshold at which the
bufferedAmount is considered to be low. When the bufferedAmount decreases from
above this threshold to **equal** or below it, the bufferedamountlow event fires.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2448 >
2022-05-19 05:52:51 +00:00
Ludvig Rappe
26263c194e
webrtc: Fix memory leak in icestream
...
Since both g_value_set_object() and g_weak_ref_get() takes a reference
there will be two new references to the GstWebRTCICE object when there
should be only one. g_value_take_object() has the same functionality as
g_value_set_object() but does not take a reference.
Without this change, the GstWebRTCICE object will be leaked.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2333 >
2022-04-29 21:52:43 +00:00
Thibault Saunier
4fd3886f5d
qroverlay: Reset data_changed after we use the info
...
It was never reset so it was always TRUE once the data was changed!
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2299 >
2022-04-27 15:09:47 +00:00
Thibault Saunier
1b31a2af45
qroverlay: Add a GstQROverlay meta
...
See documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2299 >
2022-04-27 15:09:47 +00:00
Stéphane Cerveau
c77d07752a
srtpdec: add counts in stats
...
In order to count the buffers which have been received and dropped for
decryption reason, add a stats to track it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2027 >
2022-04-25 13:57:42 +00:00
Stéphane Cerveau
9d6a7dbdf3
rvsg: fix cairo include
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2276 >
2022-04-23 00:00:23 +00:00
Sangchul Lee
c5b1eecb69
webrtcbin: Avoid access of freed memory
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2256 >
2022-04-22 14:45:05 +00:00
Wonchul Lee
150db81287
dashsink: Unlock when failed to get content
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2242 >
2022-04-20 09:07:29 +00:00
Xavier Claessens
b99ecc78ca
Replace gst-i18n-*.h with gi18n-lib.h
...
GLib guarantees libintl is always present, using proxy-libintl as
last resort. There is no need to mock gettex API any more.
This fix static build on Windows because G_INTL_STATIC_COMPILATION must
be defined before including libintl.h, and glib does it for us as part
as including glib.h.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2028 >
2022-04-19 18:01:06 +00:00
Olivier Crête
2771490992
wpevideosrc: Give WebKit the keyboard, touch and pointer modifiers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2156 >
2022-04-12 11:52:34 +00:00
Olivier Crête
41967e503c
wpesrc: Convert from utf32 to support other keys
...
This makes all of the non-letter keys work.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2156 >
2022-04-12 11:52:34 +00:00
Olivier Crête
3ca61ae0d3
wpesrc: Initialize key event to 0
...
Otherwise, WebKit sees random modifiers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2156 >
2022-04-12 11:52:34 +00:00
Johan Sternerup
1842ffc906
webrtc: Improve robustness of nice agent signal handlers
...
NiceAgent and it's associated thread is alive for as long as
GstWebRTCICE is alive so make sure any signal handlers connected to
NiceAgent do not access data that is deleted earlier.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2073 >
2022-04-04 02:10:35 +00:00
anaghdin
02258ba529
- In lowdelay VBR is not supported: forces CBR, In RA, CBR is not supported, forces VBR
...
- Limit the max bit rate and target bitrate to 100,000 kbps
- Remove frame_rate from API. Inside library frame_rate is always in Q16 format
- Fix the seg fault with 2 PASS and max bit rate
- Remove frame_rate from CI and gstreamer
2022-04-01 23:47:38 +00:00
Xavier Claessens
b004464ac6
Remove glib and gobject dependencies everywhere
...
They are part of gst_dep already and we have to make sure to always have
gst_dep. The order in dependencies matters, because it is also the order
in which Meson will set -I args. We want gstreamer's config.h to take
precedence over glib's private config.h when it's a subproject.
While at it, remove useless fallback args for gmodule/gio dependencies,
only gstreamer core needs it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2031 >
2022-04-01 16:32:17 +00:00
Xavier Claessens
f270f9e974
Fix cross build with mingw32
...
At least on Ubuntu 20.04 the x86_64-w64-mingw32-gcc toolchain defaults
to WinXP. We require at least Vista for FILE_STANDARD_INFO.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2022 >
2022-04-01 15:52:28 +00:00
Sangchul Lee
a801d6dd63
webrtcstats: Unify 'packets-lost' data type to int64
...
Previously, 'packets-lost' member of RTCReceivedRtpStreamStats had
a value of G_TYPE_INT from rtpsource or a value of G_TYPE_UINT64
from rtpjitterbuffer.
Because of the negative value of estimated amount of packets lost
in rtpsource as well as the description in
https://www.w3.org/TR/webrtc-stats/#dom-rtcreceivedrtpstreamstats
it is fixed to set this value with G_TYPE_INT64.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2049 >
2022-03-31 05:37:39 +00:00
Matthew Waters
041eee6c2e
webrtc: produce stats for all relevant streams
...
Instead of only using the last ssrc that was pushed into a sink pad.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:41 +00:00
Matthew Waters
04de1a161f
webrtc: avoid different versions of gnu-indent always wanting to change !!
...
Add some sneaky parenthesis to avoid always having to use git commit -n
or revert out hunk of the change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:41 +00:00
Matthew Waters
5bfe36746a
webrtc: implement initial simulcast fec/rtx usage
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:41 +00:00
Matthew Waters
5741ee38e0
webrtc/datachannel: fix use-after-free in sctp state notification
...
g_signal_disconnect*() doesn't stop any existing callbacks from running
which means that if the notify::state callback is in progress in one
thread and the data channel object is finalize()ed in another thread,
then there could be a use-after-free trying lock the data channel
object.
We can't reasonably use a GWeakRef as we don't have a 'parent' object to
free the GWeakRef after the data channel is finalized. This is also
complicated by the fact that the application can hold a reference to the
data channel object that would live beyond the lifetime of webrtcbin
itself.
We solve this by implementing a ghetto weak-ref solution internally with
a list of outstanding data channels.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00
Matthew Waters
2377f8b3f2
webrtcbin: initial support for sending and receiving simulcast streams
...
Input (sink pads) is the already-ssrc-muxed stream with the relevant rtp
sdes header extensions already applied:
- mid
- stream-id
- repaired-stream-id
Output (src pads) have the pads separated into individual ssrc's as
that's what rtpbin gives us.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00
Matthew Waters
699739c130
webrtcbin: support multiple received streams for a single mline
...
Each rtpbin exposed recv_src pad is now exposed as webrtcbin src_%u pad
now with no meaining applied to the value of %u. Previously this used
to mean the mline in the SDP. If this is is still required, then the
transceiver can be retrieved from the pad and the "mlineindex" property
from the transciever. The "mid" is also retrievable from the
transceiver.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00
Matthew Waters
e28c45fd05
webrtc: explicitly error out in a couple of renegotiation cases
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00
Matthew Waters
318a639e43
webrtc/transportstream: add debug category
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00
Matthew Waters
2aeca9ed84
webrtcbin: don't name src pads based on the mline specifically anymore
...
Naming based on the mline doesn't really work with e.g. simulcast
scenarios.
It is entirely possible to retrieve the transceiver and then the mline
from that if that is so required.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00
Matthew Waters
cda81bdb1e
webrtcbin: improve some debugging output
...
- Put human readable names into debug strings.
- Demote some frequent rtpbin signal logging
- Don't use GST_PTR_FORMAT in g_set_error()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00
Matthew Waters
533d4937fe
webrtcbin: add a specific find_transceiver_by_mid function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00
Matthew Waters
79d58200c9
webrtcbin: explicitly use a variable for the rtp session idx
...
Slightly clearer in meaning.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1664 >
2022-03-29 23:55:40 +00:00