Cameron Gutman
56ccd99cc7
Dynamically determine audio, video, and control ports from RTSP DESCRIBE response
2021-07-01 23:45:33 -05:00
Cameron Gutman
75999a6e07
Add Video/Audio prefix to ThreadProc names
...
It's easier to find them in stack traces that way.
2021-06-20 10:36:05 -05:00
Cameron Gutman
b58930c687
Don't start the decoder thread in pull-mode
2021-06-13 15:30:37 -05:00
Cameron Gutman
68c784445c
Introduce optional pull-based API for video data
2021-06-13 15:14:38 -05:00
Cameron Gutman
9361c325bb
Rename RtpFecQueue to RtpVideoQueue to match RtpAudioQueue
2021-06-01 22:57:26 -05:00
Cameron Gutman
8f371343cd
Consolidate includes
2021-04-29 17:22:15 -05:00
Cameron Gutman
fe205d838d
Don't check for errors from sendto() in the ping threads
2021-04-28 17:04:44 -05:00
Cameron Gutman
3979dbd082
Allow compilation on OSes without IPv6 support
2021-04-17 23:40:36 -05:00
Cameron Gutman
4304e597d8
Add byteswapping macros for big-endian systems
2021-04-17 21:43:13 -05:00
Cameron Gutman
5f9f7ce407
Code cleanup: use stdbool.h
2020-11-30 20:38:13 -06:00
Cameron Gutman
1b022a0d05
Terminate the connection if we can't receive a key frame in 10 seconds
2020-08-29 21:00:05 -07:00
Cameron Gutman
ae00c09cb6
Restore the 500 ms ping logic to prevent warnings in the server-side logs
2020-08-08 23:16:55 -07:00
Cameron Gutman
f596e80575
Improve logging of video/audio delay and errors
2020-05-01 20:23:44 -07:00
Cameron Gutman
b46e06fcf1
Terminate the connection if video isn't received for 10 seconds
2020-05-01 19:25:24 -07:00
Cameron Gutman
9ffdc79b6f
Add log messages to troubleshoot problems with missing video/audio
2020-04-29 20:17:55 -07:00
Cameron Gutman
f4dad9ae8b
Add presentation timestamp to video frame metadata
2019-11-10 18:07:11 -08:00
Cameron Gutman
31aa893acd
Name our threads on Linux
2019-05-03 18:54:40 -07:00
Cameron Gutman
e01617cd17
Remove unused variable
2019-05-02 19:41:59 -07:00
Cameron Gutman
fe7cb006da
Improve FEC queue packet submission and retrieval from O(n) to O(1)
2019-04-25 23:02:01 -07:00
Cameron Gutman
f395d3056a
Eliminate a copy and allocation for each incoming video packet
2019-04-25 22:07:03 -07:00
Cameron Gutman
d6971983aa
Use an interruptible sleep to allow our threads to exit sooner
2019-04-06 15:26:59 -07:00
Cameron Gutman
40fa4ef3c8
Reduce NAT keepalive packet rate after connection is established
2019-03-24 12:54:41 -07:00
Cameron Gutman
aa9610847e
Ensure termination error code is propagated properly
2019-02-09 21:30:16 -08:00
Cameron Gutman
12eebe0039
Wait for first IDR frame before enabling RFI
2019-01-19 14:44:48 -08:00
Cameron Gutman
6e7965f013
Use SO_RCVTIMEO to avoid the overhead of an extra syscall per packet
2018-07-16 00:46:40 -07:00
Cameron Gutman
4134ea3c23
Prevent the depacketizer from receiving parity packets
2017-06-10 15:42:51 -07:00
Cameron Gutman
c386569754
Remove length prefix on video buffers
2017-06-10 12:55:50 -07:00
Cameron Gutman
86447399a9
Add start and stop callbacks for audio and video renderers
2017-05-21 12:50:53 -07:00
Cameron Gutman
2d7bf5be82
Fix state cleanup if LiStartConnection() fails
2017-05-18 09:52:50 -07:00
Iwan Timmer
9bf8d361a1
Forward Error Correction ( #24 )
...
* Preperation for FEC by adding new queue which buffers whole frames
* Add code for creating recovered RTP packet
* Add checks before repair missing packets
* Initial implementation for single FEC packet
* Implement FEC for multiple packets
2017-05-04 21:22:30 -07:00
Cameron Gutman
f57bd745b4
API update to provide enough information to support GFE 3.0.7
2016-10-05 17:23:59 -07:00
Sunguk Lee
ba27e97698
Add vita environment ( #22 )
...
* vita: initial port
* vita: implement events, enable input thread
* vita: gethostbyname
* vita: Enable audio
* vita: Fix thread crash on discoonect process
* vita: Handle cannot create thread
* vita: now use newlib's socket apis
* vita: Refactoring for moonlight-stream/moonlight-common-c
* Fix review things
https://github.com/moonlight-stream/moonlight-common-c/pull/22#pullrequestreview-2436093
- vita may not support IPv6; so add LC_ASSERT them.
- define inet_ntop to sceNetInetNtop
- guard about failure of sceKernelCreateMutex or sceKernelCreateCond
- remove meanless macros
https://github.com/moonlight-stream/moonlight-common-c/pull/22#pullrequestreview-2444677
- !*mutex to *mutex
- remove useless LC_ASSERT then change to use inet_ntop
in vita system not defined `sockaddr_in6`, so just use `sockaddr_in` instead this.
https://github.com/moonlight-stream/moonlight-common-c/pull/22#pullrequestreview-2445642
- define sin6_addr
2016-10-05 16:43:33 -07:00
Cameron Gutman
7e5e2cebe2
Increase recv buffer of video stream from 64K to 512K for improved 4K performance
2016-05-06 14:44:16 -04:00
Cameron Gutman
48a5d63045
Reorganize the folder structure and delete the Xcode build files
2016-03-31 07:22:03 -04:00