{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":37657658,"defaultBranch":"dev","name":"rx-player","ownerLogin":"canalplus","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-06-18T12:16:05.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2371279?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1718188796.0","currentOid":""},"activityList":{"items":[{"before":"2eda6a6b92c73fd62ae9b0a85849e5e32d493dc0","after":"682d9389b3b893d50e2b5f44c862590f306685f4","ref":"refs/heads/dev","pushedAt":"2024-06-12T15:18:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Run prettier on CHANGELOG.md","shortMessageHtmlLink":"Run prettier on CHANGELOG.md"}},{"before":"107d3d4b6610175df9cb69cd9f5cb098bf442765","after":"bc02798a3e1cca3c09389686d448766799146dad","ref":"refs/heads/release/v3.33.3","pushedAt":"2024-06-12T12:11:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Try to '''fix''' memory tests","shortMessageHtmlLink":"Try to '''fix''' memory tests"}},{"before":"c554adbabe944a82876e5868e7520c67f7067cc8","after":"7fcb94d3f86938009f95eb906b0ce1de539ec6b4","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T11:48:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"fix","shortMessageHtmlLink":"fix"}},{"before":"64250eb8139ce6b9a95ddee80f7b22c32c896206","after":"c554adbabe944a82876e5868e7520c67f7067cc8","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T11:31:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"skip problematic test on firefox","shortMessageHtmlLink":"skip problematic test on firefox"}},{"before":"ff27e3276284a9784e059acc89e29faf408fba28","after":"64250eb8139ce6b9a95ddee80f7b22c32c896206","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T10:52:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"add more explicit error msg","shortMessageHtmlLink":"add more explicit error msg"}},{"before":null,"after":"107d3d4b6610175df9cb69cd9f5cb098bf442765","ref":"refs/heads/release/v3.33.3","pushedAt":"2024-06-12T10:39:56.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Try to '''fix''' memory tests","shortMessageHtmlLink":"Try to '''fix''' memory tests"}},{"before":"8a6a6dcf1a1581b90586ecd7e531c79915733169","after":"ff27e3276284a9784e059acc89e29faf408fba28","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T10:28:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"firefox","shortMessageHtmlLink":"firefox"}},{"before":"d27665d3da01ac2c51561cbd7ca927ceb5fbe4ae","after":"c7b6f1e5c8d69c891395e69beeecb40a9fac5c40","ref":"refs/heads/legacy-v3","pushedAt":"2024-06-12T10:15:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md with upcoming features","shortMessageHtmlLink":"Update CHANGELOG.md with upcoming features"}},{"before":null,"after":"c5c5b52705d33996b5e97f7a2bd683c61c1d6890","ref":"refs/heads/fix/und-lang-declared-in-manifest-HLS-v3","pushedAt":"2024-06-12T10:05:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"typo","shortMessageHtmlLink":"typo"}},{"before":"a9c6b506346eb0cb5f7f43cec8471c00b6194ebb","after":"8a6a6dcf1a1581b90586ecd7e531c79915733169","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T10:04:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"try to add some pref for firefox","shortMessageHtmlLink":"try to add some pref for firefox"}},{"before":null,"after":"7030a689aa9791daa6ec0a60026398cc89118df7","ref":"refs/heads/fix/throw-if-videoelem-is-shared-v3","pushedAt":"2024-06-12T09:35:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"api: throw an error if an application use a video element in multiple instance of the RxPlayer","shortMessageHtmlLink":"api: throw an error if an application use a video element in multiple…"}},{"before":"cf467f102ca6e61d93e1d0434508a5c263dc0821","after":"a9c6b506346eb0cb5f7f43cec8471c00b6194ebb","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T09:33:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"allow only","shortMessageHtmlLink":"allow only"}},{"before":"74baafbfe0b74bc3bd70e24cc117c8b9229a9c40","after":"cf467f102ca6e61d93e1d0434508a5c263dc0821","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T09:29:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"test","shortMessageHtmlLink":"test"}},{"before":"ff50db9bd7b64bbda82cd8eebcfcd7149bfdb057","after":"74baafbfe0b74bc3bd70e24cc117c8b9229a9c40","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T09:24:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"test audio only stream","shortMessageHtmlLink":"test audio only stream"}},{"before":null,"after":"a00fc05f6049bf5343f1d6cdd056f443c9f5757f","ref":"refs/heads/fix/directfile-autoplay-infinite-spinner-v3","pushedAt":"2024-06-12T09:22:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"fix(directfile): media with autoplay:false is infinitly in loading state","shortMessageHtmlLink":"fix(directfile): media with autoplay:false is infinitly in loading state"}},{"before":null,"after":"1a68f8466be8763d49092c69a1493f03b083893c","ref":"refs/heads/fix/reload-directly-on-undecipherable-v3","pushedAt":"2024-06-12T09:14:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"On the playstation 5, reload ASAP if a key become unusable\n\nIssue\n-----\n\nWe noticed that the PlayStation 5 may have the HTMLMediaElement on which the\ncontent is played stop on a `MEDIA_ERR_DECODE` error if it encounters\nencrypted media data whose key is not usable due to policy restrictions (the\nmost usual issue being non-respect of HDCP restrictions).\n\nThis is not an usual behavior, other platforms just do not attempt to decode\nthe encrypted media data and stall the playback instead (which is a much\npreferable behavior for us as we have some advanced mechanism to restart\nplayback when this happens).\n\nConsequently, we have to specifically consider platforms with that\nfail-on-undecipherable-data issue, to perform a work-around in that case.\n\nWork-around\n-----------\n\nThe work-around found for now is to just directly cancel all streaming\nlogic linked to a `MediaSource` as soon as the RxPlayer's\n`ContentDecryptor` (its module handling content decryption) signals about\nunusable keys, which should normally happen synchronously after the\ncorresponding event is triggered by the browser.\n\nTo ensure this is done as soon as possible (because this is a race with\nthe browser), this is performed in the `ContentInitializer` RxPlayer\nmodule, which is the module directly interfacing with the\n`ContentDecryptor`, with media element errors, and with the logic of\ncreating `MediaSource` instances.\nIf we handled this in the `StreamOrchestrator` for example (which is\nbetter able to handle this scenario because it knows which segments have\nbeen buffered and are going to be buffered), we would have much more risk\nto \"lose\" the race with the browser here, as more RxPlayer modules will\nbe involved as well as two threads and message-passing in a multithreaded\nscenario.\n\nI'm not that satisfied with this solution though. Because a race is\nstill going on between the browser and the RxPlayer, it may break in the\nfuture if we bring an asynchronicity (e.g. a round trip to the event\nloop) between the moment a decryption key becomes unusable and the\nmoment we're reloading the `MediaSource`.\n\nPerhaps a better solution would be to just let the corresponding\n`MEDIA_ERR_DECODE` happen, then determine heuristically if it\nhad a good chance to happen due to the aforementioned decryption issue\nand reload in that case, but this is also difficult to implement.","shortMessageHtmlLink":"On the playstation 5, reload ASAP if a key become unusable"}},{"before":"21aa9598dd28a80dcb77de130c5857c2867e209d","after":"d27665d3da01ac2c51561cbd7ca927ceb5fbe4ae","ref":"refs/heads/legacy-v3","pushedAt":"2024-06-12T09:07:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"conform to rfc 3986 url v3 (#1446)\n\n* implement more comprehensive algorithm to resolve URLs\r\n\r\n* code styling\r\n\r\n* remove unecessary code\r\n\r\n* change type name to conform to code convention\r\n\r\n* add unit test to ensure port and user credentials are correctly supported by resolveURL\r\n\r\n* add cache to improve performance for parsed URLs\r\n\r\n* fix: format\r\n\r\n* Fix linting and testing issues\r\n\r\n---------\r\n\r\nCo-authored-by: Florent ","shortMessageHtmlLink":"conform to rfc 3986 url v3 (#1446)"}},{"before":"0589fe493c7c1800983f5a3492ba59006c749fe0","after":"ff50db9bd7b64bbda82cd8eebcfcd7149bfdb057","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T09:03:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"use end number content","shortMessageHtmlLink":"use end number content"}},{"before":"2a91e2952877cac93ec5bbde9f1bb1dcfdc6c45b","after":"0589fe493c7c1800983f5a3492ba59006c749fe0","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T09:03:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"change firefox config","shortMessageHtmlLink":"change firefox config"}},{"before":"d6997ea35e72c7977b3646924b1c593105a1f654","after":"2a91e2952877cac93ec5bbde9f1bb1dcfdc6c45b","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-12T08:55:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"try to play at second 30","shortMessageHtmlLink":"try to play at second 30"}},{"before":"4a829bd90d2ed59c3c1373466ae9cef30fce9caf","after":"de4c5c514bfba68652bfbcbc69d85e0f9a95e456","ref":"refs/heads/fix/compatibilty-edge-test-keysystems-v3","pushedAt":"2024-06-11T17:34:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Fix linting issues","shortMessageHtmlLink":"Fix linting issues"}},{"before":null,"after":"4a829bd90d2ed59c3c1373466ae9cef30fce9caf","ref":"refs/heads/fix/compatibilty-edge-test-keysystems-v3","pushedAt":"2024-06-11T17:33:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Fix linting issues","shortMessageHtmlLink":"Fix linting issues"}},{"before":null,"after":"96e5527278e95d460a6fdd41697dccb41661effd","ref":"refs/heads/fix/duplicate-requests-low-latency2-v3","pushedAt":"2024-06-11T17:12:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Actually wait a delay before considering a segment as GCed in the browser","shortMessageHtmlLink":"Actually wait a delay before considering a segment as GCed in the bro…"}},{"before":null,"after":"437ed0003d6637f07599512824c0b794c89c73d4","ref":"refs/heads/fix/maxVideoBufferSize-optimist-v3","pushedAt":"2024-06-11T16:50:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"When listing segments needed, stop filtering the current range\n\nWhile debugging an issue, I noticed that for optimization purposes we\nfiltered already-loaded segments' metadata so we only considered those\nof the currently-needed time range before giving it to both the\n`getNeededSegments` function, which lists the segments the RxPlayer\nneeds to download, and the `checkForDiscontinuity` function, which\nchecks if a discontinuity is imminent.\n\nThis is problematic since we added the `maxVideoBufferSize` option (so a\nlong time ago!), as that option is also exploited in\n`getNeededSegments` yet needs to know **ALL** of the buffered segments\nso it can estimate the amount of video data currently retained by the\nbrowser's video buffer - and not just those in the currently-needed\nrange. So it seems that the `maxVideoBufferSize`-linked estimate could\nhave been inexact most of the time here.","shortMessageHtmlLink":"When listing segments needed, stop filtering the current range"}},{"before":"72cbc457e8df2cda51ed419fcc53caa3befc3a23","after":"1f733d7ed8af0ccf00f987a5e32c50eb52ab4870","ref":"refs/heads/fix/subtitles-blinking2-v3","pushedAt":"2024-06-11T16:45:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Fix linting issues","shortMessageHtmlLink":"Fix linting issues"}},{"before":null,"after":"72cbc457e8df2cda51ed419fcc53caa3befc3a23","ref":"refs/heads/fix/subtitles-blinking2-v3","pushedAt":"2024-06-11T16:43:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"remove abs and add a test case","shortMessageHtmlLink":"remove abs and add a test case"}},{"before":"b13b07d653b43e7a6bef52a7e67816541363aa71","after":"d6997ea35e72c7977b3646924b1c593105a1f654","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-11T16:33:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"format","shortMessageHtmlLink":"format"}},{"before":null,"after":"1321361d3be7373fe2939f0266ce782a341b5d89","ref":"refs/heads/feature/conform-to-RFC-3986-URL-v3","pushedAt":"2024-06-11T16:33:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Fix linting and testing issues","shortMessageHtmlLink":"Fix linting and testing issues"}},{"before":"e87d16902a01b71b13c23635373727f996f31c4a","after":"b13b07d653b43e7a6bef52a7e67816541363aa71","ref":"refs/heads/refactor/replace-karma-by-vitest","pushedAt":"2024-06-11T16:26:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"Florent-Bouisset","name":"Florent Bouisset","path":"/Florent-Bouisset","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/58945185?s=80&v=4"},"commit":{"message":"try to add a env variable to firefox","shortMessageHtmlLink":"try to add a env variable to firefox"}},{"before":"77eb9b5fe2a762d7451aaf86462d3c27dff55d94","after":"2eda6a6b92c73fd62ae9b0a85849e5e32d493dc0","ref":"refs/heads/dev","pushedAt":"2024-06-11T16:18:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"peaBerberian","name":"Paul Berberian","path":"/peaBerberian","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8694124?s=80&v=4"},"commit":{"message":"Update CHANGELOG.md with upcoming features","shortMessageHtmlLink":"Update CHANGELOG.md with upcoming features"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEY3jlLwA","startCursor":null,"endCursor":null}},"title":"Activity · canalplus/rx-player"}