{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":856122536,"defaultBranch":"master","name":"moonlight-common-c","ownerLogin":"andygrundman","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-09-12T03:03:39.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/105828?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1726618116.0","currentOid":""},"activityList":{"items":[{"before":"8420dac7d4717d8fe360d7c570f8c57ab6a92fee","after":"c7127281bc852940d7f789080cdc0569541407a0","ref":"refs/heads/andyg.appveyor-debugging","pushedAt":"2024-09-18T02:40:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"pain","shortMessageHtmlLink":"pain"}},{"before":"f8672e81809cdac5bab2d862704425d58466d63f","after":"8420dac7d4717d8fe360d7c570f8c57ab6a92fee","ref":"refs/heads/andyg.appveyor-debugging","pushedAt":"2024-09-18T02:05:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"use generators","shortMessageHtmlLink":"use generators"}},{"before":"e5b5d9a5991608f43eecbc6f96b6b5be0657c7a9","after":"f8672e81809cdac5bab2d862704425d58466d63f","ref":"refs/heads/andyg.appveyor-debugging","pushedAt":"2024-09-18T00:16:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"enable RDP on build server","shortMessageHtmlLink":"enable RDP on build server"}},{"before":null,"after":"e5b5d9a5991608f43eecbc6f96b6b5be0657c7a9","ref":"refs/heads/andyg.appveyor-debugging","pushedAt":"2024-09-18T00:08:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"trying to fix win64 build","shortMessageHtmlLink":"trying to fix win64 build"}},{"before":"8c8860fe12c55cbbeeb0a09014d82340c76bc9c6","after":"e5b54d77b66193934542fb3c1e751b8fdcb42b89","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-17T18:41:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNote: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"cd545d909a5b8fc3d1d81fe4a1d55d18699fbf11","after":"8c8860fe12c55cbbeeb0a09014d82340c76bc9c6","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-17T18:20:04.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNote: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"8795c6c28d61671cedbf473e478700ae3e1f491a","after":"cd545d909a5b8fc3d1d81fe4a1d55d18699fbf11","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-17T17:53:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNote: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"54c8d071f7ae71714a3e46c634eaa6ed7ecfc8dd","after":"8795c6c28d61671cedbf473e478700ae3e1f491a","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-15T01:31:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNOTE: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"c20c1ca4414381ab745158b57cb1a55c62a33a7d","after":"54c8d071f7ae71714a3e46c634eaa6ed7ecfc8dd","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-15T01:00:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNOTE: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"6c3c370634f76688c8c70b29e9a032c15c11897c","after":"c20c1ca4414381ab745158b57cb1a55c62a33a7d","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-14T13:00:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNOTE: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"a50a34344502262171aa2ce597b3acb347cc18c1","after":"6c3c370634f76688c8c70b29e9a032c15c11897c","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-14T11:34:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNOTE: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"0004f51edca3333f3e881de9fab81e4f90c80f1a","after":"a50a34344502262171aa2ce597b3acb347cc18c1","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-14T10:30:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNOTE: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"bb9908a1dfc2088fdf08d76ce99bdb0aacfa02f6","after":"0004f51edca3333f3e881de9fab81e4f90c80f1a","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-14T06:22:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNOTE: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay.\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"8c4c4a747522c86d25d17b1ec69dbf62855a5f64","after":"bb9908a1dfc2088fdf08d76ce99bdb0aacfa02f6","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-14T06:22:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve support for high-resolution stats\n\nNOTE: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay..\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve support for high-resolution stats"}},{"before":"c4f7c010e1e4f25f82a2062b11bb7ab8edb6295b","after":"8c4c4a747522c86d25d17b1ec69dbf62855a5f64","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-14T05:12:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve resolution used for sub-millisecond stats; collect additional stats for use by frontends\n\nNOTE: Users of this library may need to make changes. I've also submitted a sister patch for\nmoonlight-qt that supports these changes and implements a few new features like an audio overlay..\n\n* This patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\n* Since this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* I added a simple gtest suite for the Platform.c changes, and this test suite should be easy to extend to\nother areas of the code.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// provides access to RTP data for the overlay stats\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve resolution used for sub-millisecond stats; collect additional…"}},{"before":null,"after":"c4f7c010e1e4f25f82a2062b11bb7ab8edb6295b","ref":"refs/heads/andyg.hires-timing-and-stats","pushedAt":"2024-09-12T08:28:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"andygrundman","name":"Andy Grundman","path":"/andygrundman","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/105828?s=80&v=4"},"commit":{"message":"Improve timing of sub-millisecond events; collect additional stats\n\nNOTE: there is a sister patch for moonlight-qt: [link todo]\nThis is a breaking change as many variables and data types had to be changed.\n\nThis patch adds a new microsecond-resolution function call, LiGetMicroseconds(), to complement\nthe existing LiGetMillis(). Many variables used by stats have been updated to work at this\nhigher resolution and now provide better results when displaying e.g. sub-millisecond frametime stats.\nTo try and avoid confusion, variables that now contain microseconds have been renamed with a suffix\nof 'Us', and those ending in 'Ms' contain milliseconds. I originally experimented with nanoseconds but it\nfelt like overkill for our needs.\n\nSince this library is designed to be mostly standalone, I reorganized Platform.c a bit to make it compatible with\nSDL's GetTicks64(), which starts its ticker at program start. A lot of the stats here are used with those in\nmoonlight-qt so I tried to simplify the functions as much as possible. Each platform now has its own few smaller\nfunctions, instead of trying to fit a complex set of ifdef's inside the same function.\n\n* This contains bits and pieces of additional stats that will be in a sister patch to moonlight-qt that adds\nvideo bitrate, microsecond improvemenets, and an audio stats overlay.\n\n* I added a simple gtest suite for the Platform.c changes.\n\nInternal API:\nvoid Plt_TicksInit(void); // store initial timestamp\nuint64_t Plt_GetTicks64_us(void); // The most precision, in microseconds\nuint64_t Plt_GetTicks64_ms(void); // Plt_GetTicks64_ms returns the value in milliseconds\nuint64_t Plt_GetTicks64(void); // Alias to _ms() and compatible with SDL_GetTicks64 (ms since program start)\n\nuint64_t PltGetMillis(void); // replaced by Plt_GetTicks64_ms()\n\nPublic API in Limelight.h:\nuint64_t LiGetMicroseconds(void);\nuint64_t LiGetMillis(void);\nPRTP_AUDIO_STATS LiGetRTPAudioStats(void);\t// see sister patch\nPRTP_VIDEO_STATS LiGetRTPVideoStats(void);","shortMessageHtmlLink":"Improve timing of sub-millisecond events; collect additional stats"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xOFQwMjo0MDoyMi4wMDAwMDBazwAAAAS5Kwfy","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0xMlQwODoyODowNC4wMDAwMDBazwAAAAS0HUjm"}},"title":"Activity · andygrundman/moonlight-common-c"}