mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2026-01-03 03:20:15 +01:00
The digest was not used in subsequent requests resulting in a 401 from ANNOUNCE. This was changed so that the Authorization header is present on all requests. Reconnection did not handle the case where pa_rtsp_connect returned immediately with a failure. This error was also not checked by pa_raop_client_authenticate and pa_raop_client_announce, which caused the raop client to be permanently stuck on failure as it assumed the connection was ongoing. Similarly, a failure in SETUP was also not reported and caused the client to be stuck. These issues were fixed and conflicting disconnects/reconnects that caused crashes due to race conditions were removed. We also avoid unloading the module due to a failure since it might be recoverable. If a device is not accessible anymore, the discover module will remove it. Apple TV requires that the timing port is open and responding before a SETUP response is provided, otherwise a 500 error is returned after some time. This was added and the connection callback is called earlier so that the sink loop can respond to timing requests in this phase. A keep-alive request was also added as it is required by Apple TV to prevent the stream from stopping. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/820>
37 lines
791 B
Meson
37 lines
791 B
Meson
librtp_sources = [
|
|
'rtp-common.c',
|
|
'sdp.c',
|
|
'sap.c',
|
|
'rtsp-client.c',
|
|
'headerlist.c',
|
|
'rtsp-util.c'
|
|
]
|
|
|
|
librtp_headers = [
|
|
'rtp.h',
|
|
'sdp.h',
|
|
'sap.h',
|
|
'rtsp-client.h',
|
|
'headerlist.h',
|
|
'rtsp-util.h'
|
|
]
|
|
|
|
if have_gstreamer
|
|
librtp_sources += 'rtp-gstreamer.c'
|
|
else
|
|
librtp_sources += 'rtp-native.c'
|
|
endif
|
|
|
|
librtp = shared_library('rtp',
|
|
librtp_sources,
|
|
librtp_headers,
|
|
c_args : [pa_c_args, server_c_args],
|
|
link_args : [nodelete_link_args],
|
|
include_directories : [configinc, topinc],
|
|
dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libatomic_ops_dep, gst_dep, gstapp_dep, gstrtp_dep, gio_dep, openssl_dep],
|
|
install : true,
|
|
install_rpath : privlibdir,
|
|
install_dir : modlibexecdir,
|
|
)
|
|
|
|
librtp_dep = declare_dependency(link_with: librtp)
|