Skip to content

Commit

Permalink
feat: HLS proxy server and URLCache integration (#24)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
andrewjl-mux and cjpillsbury committed Feb 13, 2024
1 parent b881b77 commit 4d56d11
Show file tree
Hide file tree
Showing 20 changed files with 1,117 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
193228DC2ACF6AC900966FE1 /* MuxPlayerSwiftExampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 193228DB2ACF6AC900966FE1 /* MuxPlayerSwiftExampleUITests.swift */; };
193228DE2ACF6AC900966FE1 /* MuxPlayerSwiftExampleUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 193228DD2ACF6AC900966FE1 /* MuxPlayerSwiftExampleUITestsLaunchTests.swift */; };
193228EC2ACF6B3400966FE1 /* MuxPlayerSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 193228EB2ACF6B3400966FE1 /* MuxPlayerSwift */; };
195B43562B733F450088CDD6 /* ExperimentalCacheViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 195B43552B733F450088CDD6 /* ExperimentalCacheViewController.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand Down Expand Up @@ -50,6 +51,7 @@
193228D72ACF6AC900966FE1 /* MuxPlayerSwiftExampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MuxPlayerSwiftExampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
193228DB2ACF6AC900966FE1 /* MuxPlayerSwiftExampleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MuxPlayerSwiftExampleUITests.swift; sourceTree = "<group>"; };
193228DD2ACF6AC900966FE1 /* MuxPlayerSwiftExampleUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MuxPlayerSwiftExampleUITestsLaunchTests.swift; sourceTree = "<group>"; };
195B43552B733F450088CDD6 /* ExperimentalCacheViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExperimentalCacheViewController.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -105,6 +107,7 @@
193228BC2ACF6AC700966FE1 /* SceneDelegate.swift */,
193228BE2ACF6AC700966FE1 /* MainViewController.swift */,
193228C02ACF6AC700966FE1 /* Main.storyboard */,
195B43552B733F450088CDD6 /* ExperimentalCacheViewController.swift */,
193228C32ACF6AC800966FE1 /* Assets.xcassets */,
193228C52ACF6AC800966FE1 /* LaunchScreen.storyboard */,
193228C82ACF6AC800966FE1 /* Info.plist */,
Expand Down Expand Up @@ -267,6 +270,7 @@
buildActionMask = 2147483647;
files = (
193228BF2ACF6AC700966FE1 /* MainViewController.swift in Sources */,
195B43562B733F450088CDD6 /* ExperimentalCacheViewController.swift in Sources */,
193228BB2ACF6AC700966FE1 /* AppDelegate.swift in Sources */,
193228BD2ACF6AC700966FE1 /* SceneDelegate.swift in Sources */,
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
{
"pins" : [
{
"identity" : "gcdwebserver",
"kind" : "remoteSourceControl",
"location" : "https://github.com/yene/GCDWebServer",
"state" : {
"revision" : "c2f837b30038ef716b77225f40cc8d104b6ff645",
"version" : "3.5.7"
}
},
{
"identity" : "mux-stats-sdk-avplayer",
"kind" : "remoteSourceControl",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1510"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "193228B62ACF6AC700966FE1"
BuildableName = "MuxPlayerSwiftExample.app"
BlueprintName = "MuxPlayerSwiftExample"
ReferencedContainer = "container:MuxPlayerSwiftExample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "193228B62ACF6AC700966FE1"
BuildableName = "MuxPlayerSwiftExample.app"
BlueprintName = "MuxPlayerSwiftExample"
ReferencedContainer = "container:MuxPlayerSwiftExample.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "193228B62ACF6AC700966FE1"
BuildableName = "MuxPlayerSwiftExample.app"
BlueprintName = "MuxPlayerSwiftExample"
ReferencedContainer = "container:MuxPlayerSwiftExample.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Loading

0 comments on commit 4d56d11

Please sign in to comment.