34 Commits

Author SHA1 Message Date
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