mirror of
https://github.com/androidx/media.git
synced 2025-05-08 08:00:49 +08:00

NAT will block off incoming UDP connection because the router has no knowledge of the necessary port mapping (the mapping is never set up because UDP is connectionless). The end result is, the UDP socket to receive RTP data will timeout. After the `SocketTimeoutException` is caught, the following takes place to try streaming with TCP (or, RTP over RTSP). - `RtspClient` sends TEARDOWN to tear down the current session. - `RtspClient` re-connect to the RTSP server. - `RtspMediaPeriod` cancels all loading `RtpDataLoadables` (that are using UDP) - `RtspMediaPeriod` constructs new `RtpDataLoadables` that use `TransferRtpDataChannel`, and starts loading. - Once the `RtpDataLoadables` are up and running, we are ready to receive. `RtspClient` sends the SETUP requests. - The rest of the flow is unchanged. #minor-release PiperOrigin-RevId: 373310774
ExoPlayer library
The ExoPlayer library is split into multiple modules. See ExoPlayer's top level README for more information about the available library modules and how to use them.