Similar to I7fd298669a4fd69e62edc4760ffd92eff074707b but for
codec-accept. This prefers accepting codecs that match the given
definiton exactly, but also accepts compatible codecs if no exact match
is found.
Change-Id: I52a2ab6e75f7334a85a8ef059a0d6703a07e4b7f
Legacy protocols don't set sp->num_ports. Use a sensible default for
this case.
Probably a regression from 2d2d7665b
Change-Id: Idcbc477a68b6db70a91a5d082736ac642c50ab15
When adding codecs to the SDP for potential transcoding, use more
sophisticated logic to determine whether the desired codec is already
present. Previously only the raw RTP payload string was used, which
doesn't take codec-specific format options into account. The new
matching function will now also match against existing codecs with
slightly different but compatible a=fmtp options, but will not match
against those with incompatible options.
Change-Id: I7fd298669a4fd69e62edc4760ffd92eff074707b
Convenience function to get a list of all codecs that match a given
definition, including a possible exact match.
Change-Id: I2b7d49fb320ad1725b348f7d29be450e5fea925b
Make these functions return the newly created payload type object so
that it can be manipulated directly without having to do a lookup.
Change-Id: Ib035cf7d61c61d0de6d5f87dfd497d17ba28ca5f
Parse out the format parameters for a payload type object when the codec
definition is loaded. Parsing it out is done only once, and if done
early the parsed contents can be used for format checking, comparing,
matching, etc.
Change-Id: I2856e5a8d4d76e7e1e648eff4a91fc51d0ba20c2
Split up this function into two parts so that they can be used
individually. Eliminate the special 0x1 return value as this isn't used
anywhere else. Move the error reporting into
codec_make_payload_type_sup() where it belongs.
Change-Id: Id2060272d87596a3db32d8776930a98b0f226b3b
Introduce an additional function for codec matching. Different functions
match different parts of an RTP payload type object and the referenced
codecs.
Change-Id: I2e488eaa7f69a55322db748fd40c8d1195e38605
We have no use for -1/0/1 return values. Change the return type to bool
to make things more clear.
Change-Id: Iedf1d8278c6dfddddb328ce7b3b1dbae132a39b7
Parsing out the a=fmtp string has been left up to the codec init
function until now, with the values that resulted from the parsing being
stored only within the codec. Convert this to an explicit method to
parse the a=fmtp string, and introduce a dedicated struct to store the
resulting values.
Functionally this change is a no-op.
Change-Id: Ia84e26d632ed5209b4439fd82c1e4e38850fd024
related to #1497#1549
> ======================================================================
> ERROR: setUpClass (__main__.TestWSJanus)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/code/t/auto-daemon-tests-websocket.py", line 114, in setUpClass
> eventloop.run_until_complete(get_ws(cls, "janus-protocol"))
> File "/usr/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
> return future.result()
> File "/code/t/auto-daemon-tests-websocket.py", line 23, in get_ws
> cls._ws = await connect(
> File "/usr/lib/python3/dist-packages/websockets/legacy/client.py", line 622, in __await_impl__
> transport, protocol = await self._create_connection()
> File "/usr/lib/python3.10/asyncio/base_events.py", line 1089, in create_connection
> transport, protocol = await self._create_connection_transport(
> File "/usr/lib/python3.10/asyncio/base_events.py", line 1107, in _create_connection_transport
> protocol = protocol_factory()
> File "/usr/lib/python3/dist-packages/websockets/legacy/client.py", line 160, in __init__
> super().__init__(**kwargs)
> File "/usr/lib/python3/dist-packages/websockets/legacy/protocol.py", line 154, in __init__
> self._drain_lock = asyncio.Lock(
> File "/usr/lib/python3.10/asyncio/locks.py", line 78, in __init__
> super().__init__(loop=loop)
> File "/usr/lib/python3.10/asyncio/mixins.py", line 17, in __init__
> raise TypeError(
> TypeError: As of 3.10, the *loop* parameter was removed from Lock() since it is no longer necessary
>
> ----------------------------------------------------------------------
Change-Id: I3178c54ed7eb40b9cc06769c1f1e237e0d58f966
This include only serves to define one type, which is used only as a
pointer. Use an empty typedef declaration instead.
Change-Id: I7d2cc8b97303b9363a5bfe363fffeea09ee56686
commit 025f56212d
Author: Andreas Granig <andreas@granig.com>
Date: Tue Oct 4 14:23:01 2022 +0200
Document the mqtt-tls-alpn option
commit e6cc320d19
Author: Andreas Granig <andreas@granig.com>
Date: Mon Oct 3 21:41:14 2022 +0200
Add TLS ALPN option to be set when connecting MQTT
This is required to be set to "mqtt" for instance when connecting
to the AWS IoT Core data endpoint at port 443 to indicate we're
sending MQTT, because in that case websocket and mqtt shares the same
port for whatever reason.
Change-Id: I6a391e815411b178187ef42aa009e45853d1c388
Instead of waiting for the garbage collector to clean up the SSRCs
objects, do it immediately when a delete is seen. This closes output
files and TLS connections more quickly.
Change-Id: I9a0a5be8194ba8597ff10e428d67d3a5654a2b62
At least the recording daemon uses the linesize directly, so this needs
to be corrected after returning a frame from the resampler.
Change-Id: Ia940d8acbbee3fb2d6564474ecb93ae27422d8af
The packet must be decrypted first before RTP padding can be considered,
as the padding count is part of the encrypted payload as well.
Change-Id: I6aecff636efd420401856bb8110b3d784f989179
Older debhelpers don't support conditional installation locations.
Restore the previous approach of doing it through the rules file.
Change-Id: I427b44bed24bd9956c33c81cd28a75b262c46b68
execute_after_dh_install is not used in the current rules file any more,
therefore no point in changing it for the backports
Change-Id: Icd375ba51530701d37dc8fc179424629cbd5218c
This distinguishes `to-label` from `set-label` for media blocking
methods, when previously they were synonymous.
Upgrade sink determination to list at the same time.
Change-Id: I5b35c78f2f307867b51b5376d5a6afbd79128d99
This makes it possible to have different media silencing options for
different outputs. Functionally this commit alone is a no-op.
Change-Id: I967c3e07ea4645bb49ccb76db12d51ded2d72f06
Make kernelize_one eturn the list of sorted payload types back to the
calling function instead of only keeping it temporarily. This makes it
possible to re-use the list in repeated invocations of the same
function.
Change-Id: I696b4d033715bb60c80c8b932b80d558f364a5c5
Don't keep the flag for "no kernel support" set indefinitely as
conditions might change, re-enabling kernel support at a later time.
Change-Id: Id8f456b653f1ea3d6a9db1ff3a0800d3cca8fcc5