I'm trying to cast Windows 10 computer screen to an Android TV with miracast protocol and support RTCP extension.
I follow the specification [MS-WFDPE]: Wi-Fi Display Protocol Extension, see chapter 2.8 RTCP
steps:
- If RTSP M3 request message included "microsoft-rtcp-capability" parameter, TV will reply
microsoft_rtcp_capability: supported\r\n
as below:
Real Time Streaming Protocol
Response: RTSP/1.0 200 OK\r\n
Status: 200
Date: Sat, 18 Nov 2023 13:19:52 +0000\r\n
CSeq: 2\r\n
Content-type: text/parameters
Content-length: 457
\r\n
Line-based text data: text/parameters (8 lines)
wfd_video_formats: 38 01 01 08 0001ffff 00000000 00000fff 02 0000 0000 13 0780 0438\r\n
wfd_audio_codecs: LPCM 00000003 02, AAC 00000003 00\r\n
wfd_client_rtp_ports: RTP/AVP/UDP;unicast 1028 0 mode=play\r\n
wfd_content_protection: none\r\n
wfd_uibc_capability: input_category_list=HIDC;hidc_cap_list=Keyboard/USB, Mouse/USB, MultiTouch/USB, Gesture/USB, RemoteControl/USB;port=none\r\n
wfd_display_edid: none\r\n
wfd_connector_type: 05\r\n
microsoft_rtcp_capability: supported\r\n
- TV will fill
client_port
field including RTCP port at the SETUP phase as below:
Real Time Streaming Protocol
Request: SETUP rtsp://192.168.49.235/wfd1.0/streamid=0 RTSP/1.0\r\n
Method: SETUP
URL: rtsp://192.168.49.235/wfd1.0/streamid=0
Date: Sat, 18 Nov 2023 13:19:53 +0000\r\n
CSeq: 2\r\n
Transport: RTP/AVP/UDP;unicast;client_port=1028-1029
\r\n
The source reply:
Transport: RTP/AVP/UDP;unicast;client_port=1028-1029;server_port=64713-7492;ssrc=866c7a52;rtcp-fb-ssrc=866c7a53
After that, the Windows computer sent a RTCP compound packet including a sender report to remote UDP port 0
, but not 1029
. No RTCP packet was received on Android TV and the 1029
port is always not readable.
The RTCP communication should be established between the local 7492 port and the remote 1029 port. However, the source device(windows computer) uses the remote 0 port but not 1029, I want to know why.
Any help is appreciated!
The specification said:
However, the version of Windows 10 on my computer is 1909 version, but not 1507 or 1511. perhaps it also has a bug or is not supported well.
After upgrading to the latest Windows 10 22H2 version, the issue was fixed.