-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: add extra percent encoding to avoid origin url truncation #37
Merged
andrewjl-mux
merged 2 commits into
beta/experimental-cache
from
ajlb/fix/origin-url-truncation
Apr 26, 2024
Merged
fix: add extra percent encoding to avoid origin url truncation #37
andrewjl-mux
merged 2 commits into
beta/experimental-cache
from
ajlb/fix/origin-url-truncation
Apr 26, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
andrewjl-mux
added a commit
that referenced
this pull request
May 8, 2024
* fix: add extra percent encoding to avoid origin url truncation * fix tests
andrewjl-mux
added a commit
that referenced
this pull request
May 8, 2024
commit d83a9aca216c77ea8997bd6111165c6cf5019e4e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:48 2024 -0700 fix customer data passthrough to data commit 8048f53fde6f32552835e159a46f641b55b161cb Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:27 2024 -0700 fix asc commit 4e673dec1858d0b8f08160abfed0873370da0396 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:15 2024 -0700 experiments commit cff3c873a33182755eff6326bdfa1250a4b0b191 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 14:41:32 2024 -0700 configurable playback modifiers when testing cache commit 2e3d21e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 13:42:44 2024 -0700 configrable playback modifiers in example commit e013cc3 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Thu May 2 14:02:09 2024 -0700 fix: cache error fallback (#38) * build: update Data SDK * [NFC] reverse proxy cleanup * use Foundation APIs to extract origin URL query value commit a642a87 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Apr 26 12:19:43 2024 -0700 fix: add extra percent encoding to avoid origin url truncation (#37) * fix: add extra percent encoding to avoid origin url truncation * fix tests commit 47cfaf7 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Feb 23 16:24:39 2024 -0800 fix: invert API for the smart cache (#32) commit efdeee0 Author: Christian Pillsbury <cjpillsbury@gmail.com> Date: Fri Feb 16 08:50:51 2024 -0800 fix: Add basic cmaf support. (#31) commit f03a419 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 14:45:59 2024 -0800 chore: emit SDK diagnostics into unified logging system (#30) commit 4d56d11 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 11:54:41 2024 -0800 feat: HLS proxy server and URLCache integration (#24) * fix: expose initializers (#26) * feat: reverse proxy server * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com>
andrewjl-mux
added a commit
that referenced
this pull request
May 8, 2024
* fix: add extra percent encoding to avoid origin url truncation * fix tests
andrewjl-mux
added a commit
that referenced
this pull request
May 8, 2024
commit d83a9aca216c77ea8997bd6111165c6cf5019e4e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:48 2024 -0700 fix customer data passthrough to data commit 8048f53fde6f32552835e159a46f641b55b161cb Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:27 2024 -0700 fix asc commit 4e673dec1858d0b8f08160abfed0873370da0396 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:15 2024 -0700 experiments commit cff3c873a33182755eff6326bdfa1250a4b0b191 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 14:41:32 2024 -0700 configurable playback modifiers when testing cache commit 2e3d21e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 13:42:44 2024 -0700 configrable playback modifiers in example commit e013cc3 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Thu May 2 14:02:09 2024 -0700 fix: cache error fallback (#38) * build: update Data SDK * [NFC] reverse proxy cleanup * use Foundation APIs to extract origin URL query value commit a642a87 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Apr 26 12:19:43 2024 -0700 fix: add extra percent encoding to avoid origin url truncation (#37) * fix: add extra percent encoding to avoid origin url truncation * fix tests commit 47cfaf7 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Feb 23 16:24:39 2024 -0800 fix: invert API for the smart cache (#32) commit efdeee0 Author: Christian Pillsbury <cjpillsbury@gmail.com> Date: Fri Feb 16 08:50:51 2024 -0800 fix: Add basic cmaf support. (#31) commit f03a419 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 14:45:59 2024 -0800 chore: emit SDK diagnostics into unified logging system (#30) commit 4d56d11 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 11:54:41 2024 -0800 feat: HLS proxy server and URLCache integration (#24) * fix: expose initializers (#26) * feat: reverse proxy server * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com>
andrewjl-mux
added a commit
that referenced
this pull request
May 20, 2024
* feat: HLS proxy server and URLCache integration (#24) * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: emit SDK diagnostics into unified logging system (#30) * fix: Add basic cmaf support. (#31) * fix: invert API for the smart cache (#32) * fix: add extra percent encoding to avoid origin url truncation (#37) * fix: cache error fallback (#38) * build: update Data SDK
daytime-em
pushed a commit
that referenced
this pull request
May 23, 2024
* feat: expose API for configuring existing player view controllers (#41) * feat: expose API for configuring existing player view controllers to match what is provided for AVPlayerLayer * docs: fixup grammar * fix: remove rendition order ascending (#43) * docs: fixups (#42) * Fix up AVPlayerLayer too * docs: typos * docs: monitoring options improvements * feat: HLS proxy server and URLCache integration (#24) * fix: expose initializers (#26) * feat: reverse proxy server * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: emit SDK diagnostics into unified logging system (#30) * fix: Add basic cmaf support. (#31) * fix: invert API for the smart cache (#32) * fix: add extra percent encoding to avoid origin url truncation (#37) * fix: add extra percent encoding to avoid origin url truncation * fix tests * fix: cache error fallback (#38) * build: update Data SDK * [NFC] reverse proxy cleanup * use Foundation APIs to extract origin URL query value * Squashed commit of the following: commit d83a9aca216c77ea8997bd6111165c6cf5019e4e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:48 2024 -0700 fix customer data passthrough to data commit 8048f53fde6f32552835e159a46f641b55b161cb Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:27 2024 -0700 fix asc commit 4e673dec1858d0b8f08160abfed0873370da0396 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:15 2024 -0700 experiments commit cff3c873a33182755eff6326bdfa1250a4b0b191 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 14:41:32 2024 -0700 configurable playback modifiers when testing cache commit 2e3d21e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 13:42:44 2024 -0700 configrable playback modifiers in example commit e013cc3 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Thu May 2 14:02:09 2024 -0700 fix: cache error fallback (#38) * build: update Data SDK * [NFC] reverse proxy cleanup * use Foundation APIs to extract origin URL query value commit a642a87 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Apr 26 12:19:43 2024 -0700 fix: add extra percent encoding to avoid origin url truncation (#37) * fix: add extra percent encoding to avoid origin url truncation * fix tests commit 47cfaf7 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Feb 23 16:24:39 2024 -0800 fix: invert API for the smart cache (#32) commit efdeee0 Author: Christian Pillsbury <cjpillsbury@gmail.com> Date: Fri Feb 16 08:50:51 2024 -0800 fix: Add basic cmaf support. (#31) commit f03a419 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 14:45:59 2024 -0800 chore: emit SDK diagnostics into unified logging system (#30) commit 4d56d11 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 11:54:41 2024 -0800 feat: HLS proxy server and URLCache integration (#24) * fix: expose initializers (#26) * feat: reverse proxy server * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: example cleanup * chore: update version * chore: remove debug view * ci: add documentation generation scripts * remove debug view controller * feat: gate smart cache to single rendition playlists * docs: release instructions * docs: fixup single rendition enum descriptions * docs: add the actual release steps * build: update to AVPlayer Data SDK with privacy manifest * start-up reverse proxy only when required include additional examples * SingleResolutionTier -> SingleRenditionResolutionTier * Update installation version in README * remove readme callout and create consolidated script for docs regeneration * fix example * fix capitalization * disable diagnostics logging when in release mode * Separate initialization method for single renditions To help with example in guide. A separate init method rather than a default parameter helps with discoverability of the enableSmartCache option * test: improve tests * chore: expose environment variable accessors * docs: add DRM example scaffolding * add TODO * restart player when example menu options change --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com>
andrewjl-mux
added a commit
that referenced
this pull request
Jun 27, 2024
* feat: expose API for configuring existing player view controllers (#41) * feat: expose API for configuring existing player view controllers to match what is provided for AVPlayerLayer * docs: fixup grammar * fix: remove rendition order ascending (#43) * docs: fixups (#42) * Fix up AVPlayerLayer too * docs: typos * docs: monitoring options improvements * v1.0.0 (#45) * feat: HLS proxy server and URLCache integration (#24) * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: emit SDK diagnostics into unified logging system (#30) * fix: Add basic cmaf support. (#31) * fix: invert API for the smart cache (#32) * fix: add extra percent encoding to avoid origin url truncation (#37) * fix: cache error fallback (#38) * build: update Data SDK
andrewjl-mux
pushed a commit
that referenced
this pull request
Jun 28, 2024
* Add API for DRM * chore: scaffolding for key value observation * Add Fairplay folder * Some delegate methods * up * up * Internal skeleton done * Add DRM config to separate playback policy * up * Added session delegate and content key session * up * Add AVPlayerItem stuff * Add DRM Token to the AVURLAsset * Now we have done it mostly * Add signed playback initializers back * move FairplaySessionManager singleton * Update Sources/MuxPlayerSwift/PublicAPI/Extensions/AVPlayerItem+Mux.swift Co-authored-by: AJ Lauer Barinov <abarinov@mux.com> * ok really move the singleton * ok really move the singleton * Caps * api support for custom domain * More capitalization * Ignore xcshareddata and .swiftpm directores, they are user-private * Fix crash on simulator (drm wont work still) * Some logging * Making license url * Add method for requesting licenses * Add Example videos * up * track playback ids * getting there * now we are maybe possibly getting somewhere * Yes we are now getting our certs and things * we don't need this method * ok here we are so far * more stuff * e2e, doesnt work yet * comments * one more todo * more * Fixes * un-dumb a comment * More logging * L O G N O I S E * comments * respect the safe area * Some adjustments * logging change * unneeded field, nonsense comment * here we go * todo- error handling * dont crash * Rename a completion handler * Now that is cleaner * Less pointless base64 * eke a little more progress * One more step * rename slightly * testability * here we go * Custom domains mostly in * calculating license correctly * Ok thats custom domains afaik * here we go * here we go * ok * app cert url * ok custom domains * fetch app certs * And one rename * And one rename * cleaning up * comment: recapitalize FairplaySessionManager * up * one last thing * More cleanup, even more oh my god * Extract FairPlaySessionManager into a protocol --------- Co-authored-by: AJ Lauer Barinov <abarinov@mux.com> maint: Add Unit Tests for FairPlaySessionManager + good DRM errors + small testability changes (#40) * Ok here we go * different URLSessions * Fairplay -> FairPlay * move helpers out of the protocol * root domain testable * file for fpssm tests * warnings * there we go. one test * Rename FairPlaySessionManagerImpl to DefaultFPSMangaer * Ok that's the trivial tests * do the URLProtcol thing * Mock URLSession * Test success case for requestLicense * Errors * Error * ok there's license almost done * some tests * Tests added * So far so good * now throw the right errors * Added tests, need to update license error returns * Ok now that's some good error handling * Finished Cert and license tests * test app cert request * no more warnings * Ok removed TempError * cleanup a little * little note * Cleanup more * Oops forgot ckc request headers * refactor: redirect singleton calls to injected dependencies refactor: place AVContentKeySession behind a protocol build: fix build issues and tests test setup fix test inject correctly remove empty extension and avoid docc style comments for internal methods remove optionals * Rename abbreviated identifiers and split apart protocols * Remove test session delegate * turns out we do not need this * refactor: minimize implicit singleton calls * test: validate DRM registration when drm token provided * Non-public API, use extension to initialize URL * avoid tripping up docc for internal extensions * cleaner test * route calls to one chokepoint for simplicity * We can use generics instead I think * add a few comments * some comments * some comments * Need to set ContentKeyDelegate * Tests for ContentKeySessionDelegate + Testability Tweaks (#44) * Extract AVContentKeyRequest protocol * remove ContentKeyDelegate methods we're not using * Hook in KeyRequest * record some mocks * ok this is what we can do * here is something * Something more * now we are somewhere * lol * setting up * now we have something goin * errors * there we go * tests * more error * more tests * Content key path * happy path * more * Now that works * now we are somewhere * PR Comment: back to one SessionManager * PR Comments: back to SessionMangaer * And the tests * PR comments: make some stuff optional * nit --------- Co-authored-by: AJ Lauer Barinov <abarinov@mux.com> Remove region-check for staging Beta notice for DRM chore: merge v1.0.0 changes (#46) * feat: expose API for configuring existing player view controllers (#41) * feat: expose API for configuring existing player view controllers to match what is provided for AVPlayerLayer * docs: fixup grammar * fix: remove rendition order ascending (#43) * docs: fixups (#42) * Fix up AVPlayerLayer too * docs: typos * docs: monitoring options improvements * feat: HLS proxy server and URLCache integration (#24) * fix: expose initializers (#26) * feat: reverse proxy server * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: emit SDK diagnostics into unified logging system (#30) * fix: Add basic cmaf support. (#31) * fix: invert API for the smart cache (#32) * fix: add extra percent encoding to avoid origin url truncation (#37) * fix: add extra percent encoding to avoid origin url truncation * fix tests * fix: cache error fallback (#38) * build: update Data SDK * [NFC] reverse proxy cleanup * use Foundation APIs to extract origin URL query value * Squashed commit of the following: commit d83a9aca216c77ea8997bd6111165c6cf5019e4e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:48 2024 -0700 fix customer data passthrough to data commit 8048f53fde6f32552835e159a46f641b55b161cb Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:27 2024 -0700 fix asc commit 4e673dec1858d0b8f08160abfed0873370da0396 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:15 2024 -0700 experiments commit cff3c873a33182755eff6326bdfa1250a4b0b191 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 14:41:32 2024 -0700 configurable playback modifiers when testing cache commit 2e3d21e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 13:42:44 2024 -0700 configrable playback modifiers in example commit e013cc3 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Thu May 2 14:02:09 2024 -0700 fix: cache error fallback (#38) * build: update Data SDK * [NFC] reverse proxy cleanup * use Foundation APIs to extract origin URL query value commit a642a87 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Apr 26 12:19:43 2024 -0700 fix: add extra percent encoding to avoid origin url truncation (#37) * fix: add extra percent encoding to avoid origin url truncation * fix tests commit 47cfaf7 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Feb 23 16:24:39 2024 -0800 fix: invert API for the smart cache (#32) commit efdeee0 Author: Christian Pillsbury <cjpillsbury@gmail.com> Date: Fri Feb 16 08:50:51 2024 -0800 fix: Add basic cmaf support. (#31) commit f03a419 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 14:45:59 2024 -0800 chore: emit SDK diagnostics into unified logging system (#30) commit 4d56d11 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 11:54:41 2024 -0800 feat: HLS proxy server and URLCache integration (#24) * fix: expose initializers (#26) * feat: reverse proxy server * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: example cleanup * chore: update version * chore: remove debug view * ci: add documentation generation scripts * remove debug view controller * feat: gate smart cache to single rendition playlists * docs: release instructions * docs: fixup single rendition enum descriptions * docs: add the actual release steps * build: update to AVPlayer Data SDK with privacy manifest * start-up reverse proxy only when required include additional examples * SingleResolutionTier -> SingleRenditionResolutionTier * Update installation version in README * remove readme callout and create consolidated script for docs regeneration * fix example * fix capitalization * disable diagnostics logging when in release mode * Separate initialization method for single renditions To help with example in guide. A separate init method rather than a default parameter helps with discoverability of the enableSmartCache option * test: improve tests * chore: expose environment variable accessors * docs: add DRM example scaffolding * add TODO * restart player when example menu options change --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> fix: avoid setting empty custom domain in example (#47) fix: initialize player item only once (#48) chore: content key internal improvements (#49) * additional environment variables * chore: add a content key logger * refactor: centralize URL construction inputs * refactor: simplify URL construction logic add recovery for when license or application certificate endpoint URLs fail to be constructed * fix: silent exception when deserializing empty response * chore: use logger in content key session delegate and some minor syntactic clean-up * chore: emit failure to find playback ID in SKD log in the caller chore: enable background mode picture in picture playback in the example (#50) chore: synchronize project/drm with main (#51) * feat: expose API for configuring existing player view controllers (#41) * feat: expose API for configuring existing player view controllers to match what is provided for AVPlayerLayer * docs: fixup grammar * fix: remove rendition order ascending (#43) * docs: fixups (#42) * Fix up AVPlayerLayer too * docs: typos * docs: monitoring options improvements * v1.0.0 (#45) * feat: HLS proxy server and URLCache integration (#24) * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: emit SDK diagnostics into unified logging system (#30) * fix: Add basic cmaf support. (#31) * fix: invert API for the smart cache (#32) * fix: add extra percent encoding to avoid origin url truncation (#37) * fix: cache error fallback (#38) * build: update Data SDK
andrewjl-mux
pushed a commit
that referenced
this pull request
Jun 28, 2024
* Add API for DRM * chore: scaffolding for key value observation * Add Fairplay folder * Some delegate methods * up * up * Internal skeleton done * Add DRM config to separate playback policy * up * Added session delegate and content key session * up * Add AVPlayerItem stuff * Add DRM Token to the AVURLAsset * Now we have done it mostly * Add signed playback initializers back * move FairplaySessionManager singleton * Update Sources/MuxPlayerSwift/PublicAPI/Extensions/AVPlayerItem+Mux.swift Co-authored-by: AJ Lauer Barinov <abarinov@mux.com> * ok really move the singleton * ok really move the singleton * Caps * api support for custom domain * More capitalization * Ignore xcshareddata and .swiftpm directores, they are user-private * Fix crash on simulator (drm wont work still) * Some logging * Making license url * Add method for requesting licenses * Add Example videos * up * track playback ids * getting there * now we are maybe possibly getting somewhere * Yes we are now getting our certs and things * we don't need this method * ok here we are so far * more stuff * e2e, doesnt work yet * comments * one more todo * more * Fixes * un-dumb a comment * More logging * L O G N O I S E * comments * respect the safe area * Some adjustments * logging change * unneeded field, nonsense comment * here we go * todo- error handling * dont crash * Rename a completion handler * Now that is cleaner * Less pointless base64 * eke a little more progress * One more step * rename slightly * testability * here we go * Custom domains mostly in * calculating license correctly * Ok thats custom domains afaik * here we go * here we go * ok * app cert url * ok custom domains * fetch app certs * And one rename * And one rename * cleaning up * comment: recapitalize FairplaySessionManager * up * one last thing * More cleanup, even more oh my god * Extract FairPlaySessionManager into a protocol --------- Co-authored-by: AJ Lauer Barinov <abarinov@mux.com> maint: Add Unit Tests for FairPlaySessionManager + good DRM errors + small testability changes (#40) * Ok here we go * different URLSessions * Fairplay -> FairPlay * move helpers out of the protocol * root domain testable * file for fpssm tests * warnings * there we go. one test * Rename FairPlaySessionManagerImpl to DefaultFPSMangaer * Ok that's the trivial tests * do the URLProtcol thing * Mock URLSession * Test success case for requestLicense * Errors * Error * ok there's license almost done * some tests * Tests added * So far so good * now throw the right errors * Added tests, need to update license error returns * Ok now that's some good error handling * Finished Cert and license tests * test app cert request * no more warnings * Ok removed TempError * cleanup a little * little note * Cleanup more * Oops forgot ckc request headers * refactor: redirect singleton calls to injected dependencies refactor: place AVContentKeySession behind a protocol build: fix build issues and tests test setup fix test inject correctly remove empty extension and avoid docc style comments for internal methods remove optionals * Rename abbreviated identifiers and split apart protocols * Remove test session delegate * turns out we do not need this * refactor: minimize implicit singleton calls * test: validate DRM registration when drm token provided * Non-public API, use extension to initialize URL * avoid tripping up docc for internal extensions * cleaner test * route calls to one chokepoint for simplicity * We can use generics instead I think * add a few comments * some comments * some comments * Need to set ContentKeyDelegate * Tests for ContentKeySessionDelegate + Testability Tweaks (#44) * Extract AVContentKeyRequest protocol * remove ContentKeyDelegate methods we're not using * Hook in KeyRequest * record some mocks * ok this is what we can do * here is something * Something more * now we are somewhere * lol * setting up * now we have something goin * errors * there we go * tests * more error * more tests * Content key path * happy path * more * Now that works * now we are somewhere * PR Comment: back to one SessionManager * PR Comments: back to SessionMangaer * And the tests * PR comments: make some stuff optional * nit --------- Co-authored-by: AJ Lauer Barinov <abarinov@mux.com> Remove region-check for staging Beta notice for DRM chore: merge v1.0.0 changes (#46) * feat: expose API for configuring existing player view controllers (#41) * feat: expose API for configuring existing player view controllers to match what is provided for AVPlayerLayer * docs: fixup grammar * fix: remove rendition order ascending (#43) * docs: fixups (#42) * Fix up AVPlayerLayer too * docs: typos * docs: monitoring options improvements * feat: HLS proxy server and URLCache integration (#24) * fix: expose initializers (#26) * feat: reverse proxy server * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: emit SDK diagnostics into unified logging system (#30) * fix: Add basic cmaf support. (#31) * fix: invert API for the smart cache (#32) * fix: add extra percent encoding to avoid origin url truncation (#37) * fix: add extra percent encoding to avoid origin url truncation * fix tests * fix: cache error fallback (#38) * build: update Data SDK * [NFC] reverse proxy cleanup * use Foundation APIs to extract origin URL query value * Squashed commit of the following: commit d83a9aca216c77ea8997bd6111165c6cf5019e4e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:48 2024 -0700 fix customer data passthrough to data commit 8048f53fde6f32552835e159a46f641b55b161cb Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:27 2024 -0700 fix asc commit 4e673dec1858d0b8f08160abfed0873370da0396 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Mon May 6 19:28:15 2024 -0700 experiments commit cff3c873a33182755eff6326bdfa1250a4b0b191 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 14:41:32 2024 -0700 configurable playback modifiers when testing cache commit 2e3d21e Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri May 3 13:42:44 2024 -0700 configrable playback modifiers in example commit e013cc3 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Thu May 2 14:02:09 2024 -0700 fix: cache error fallback (#38) * build: update Data SDK * [NFC] reverse proxy cleanup * use Foundation APIs to extract origin URL query value commit a642a87 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Apr 26 12:19:43 2024 -0700 fix: add extra percent encoding to avoid origin url truncation (#37) * fix: add extra percent encoding to avoid origin url truncation * fix tests commit 47cfaf7 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Fri Feb 23 16:24:39 2024 -0800 fix: invert API for the smart cache (#32) commit efdeee0 Author: Christian Pillsbury <cjpillsbury@gmail.com> Date: Fri Feb 16 08:50:51 2024 -0800 fix: Add basic cmaf support. (#31) commit f03a419 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 14:45:59 2024 -0800 chore: emit SDK diagnostics into unified logging system (#30) commit 4d56d11 Author: AJ Lauer Barinov <abarinov@mux.com> Date: Tue Feb 13 11:54:41 2024 -0800 feat: HLS proxy server and URLCache integration (#24) * fix: expose initializers (#26) * feat: reverse proxy server * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: example cleanup * chore: update version * chore: remove debug view * ci: add documentation generation scripts * remove debug view controller * feat: gate smart cache to single rendition playlists * docs: release instructions * docs: fixup single rendition enum descriptions * docs: add the actual release steps * build: update to AVPlayer Data SDK with privacy manifest * start-up reverse proxy only when required include additional examples * SingleResolutionTier -> SingleRenditionResolutionTier * Update installation version in README * remove readme callout and create consolidated script for docs regeneration * fix example * fix capitalization * disable diagnostics logging when in release mode * Separate initialization method for single renditions To help with example in guide. A separate init method rather than a default parameter helps with discoverability of the enableSmartCache option * test: improve tests * chore: expose environment variable accessors * docs: add DRM example scaffolding * add TODO * restart player when example menu options change --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> fix: avoid setting empty custom domain in example (#47) fix: initialize player item only once (#48) chore: content key internal improvements (#49) * additional environment variables * chore: add a content key logger * refactor: centralize URL construction inputs * refactor: simplify URL construction logic add recovery for when license or application certificate endpoint URLs fail to be constructed * fix: silent exception when deserializing empty response * chore: use logger in content key session delegate and some minor syntactic clean-up * chore: emit failure to find playback ID in SKD log in the caller chore: enable background mode picture in picture playback in the example (#50) chore: synchronize project/drm with main (#51) * feat: expose API for configuring existing player view controllers (#41) * feat: expose API for configuring existing player view controllers to match what is provided for AVPlayerLayer * docs: fixup grammar * fix: remove rendition order ascending (#43) * docs: fixups (#42) * Fix up AVPlayerLayer too * docs: typos * docs: monitoring options improvements * v1.0.0 (#45) * feat: HLS proxy server and URLCache integration (#24) * test: add additional ui for testing * use URLCache built-in as storage * chore: add basic ABR observation * chore: extract manifest processing to separate class, log cache size and segment size * chore: rename playlist parsing to reflect technical definitions and purpose (including tests) (#27) * test: account for percent encoding when checking URLs in query params --------- Co-authored-by: Christian Pillsbury <cjpillsbury@gmail.com> * chore: emit SDK diagnostics into unified logging system (#30) * fix: Add basic cmaf support. (#31) * fix: invert API for the smart cache (#32) * fix: add extra percent encoding to avoid origin url truncation (#37) * fix: cache error fallback (#38) * build: update Data SDK
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When using CMAF delivery the reverse proxy incorrectly truncates the rendition manifest URL due to an unencoded
&
in the query parameter containing the origin URL being handled as a delimiter.The built-in
CharacterSet.urlQueryAllowed
character set includes an&
(which seems wrong) which makes it insufficient on its own for this case.