feat(DASH): add MPD_PATCH advanced request type (#6787)

Add `shaka.net.NetworkingEngine.AdvancedRequestType.MPD_PATCH` to
distinguish regular MPD requests from MPD Patch requests.
This commit is contained in:
Wojciech Tyczyński
2024-06-11 10:56:14 +02:00
committed by GitHub
parent 0820491564
commit 2f3a1ebf94
3 changed files with 13 additions and 8 deletions
+10 -7
View File
@@ -17,6 +17,9 @@ describe('DashParser Patch', () => {
const manifestContext = {
type: shaka.net.NetworkingEngine.AdvancedRequestType.MPD,
};
const patchContext = {
type: shaka.net.NetworkingEngine.AdvancedRequestType.MPD_PATCH,
};
/** @type {!shaka.test.FakeNetworkingEngine} */
let fakeNetEngine;
@@ -121,7 +124,7 @@ describe('DashParser Patch', () => {
await updateManifest();
expect(fakeNetEngine.request).toHaveBeenCalledTimes(1);
fakeNetEngine.expectRequest('dummy://bar', manifestRequest, manifestContext);
fakeNetEngine.expectRequest('dummy://bar', manifestRequest, patchContext);
expect(onError).toHaveBeenCalledWith(new shaka.util.Error(
shaka.util.Error.Severity.RECOVERABLE,
shaka.util.Error.Category.MANIFEST,
@@ -155,7 +158,7 @@ describe('DashParser Patch', () => {
await updateManifest();
expect(fakeNetEngine.request).toHaveBeenCalledTimes(1);
fakeNetEngine.expectRequest('dummy://bar', manifestRequest, manifestContext);
fakeNetEngine.expectRequest('dummy://bar', manifestRequest, patchContext);
expect(onError).toHaveBeenCalledWith(new shaka.util.Error(
shaka.util.Error.Severity.RECOVERABLE,
shaka.util.Error.Category.MANIFEST,
@@ -215,7 +218,7 @@ describe('DashParser Patch', () => {
await updateManifest();
expect(fakeNetEngine.request).toHaveBeenCalledTimes(1);
fakeNetEngine.expectRequest('dummy://bar', manifestRequest, manifestContext);
fakeNetEngine.expectRequest('dummy://bar', manifestRequest, patchContext);
});
it('does not use PatchLocation if publishTime is not defined', async () => {
@@ -250,7 +253,7 @@ describe('DashParser Patch', () => {
await updateManifest();
expect(fakeNetEngine.request).toHaveBeenCalledTimes(1);
fakeNetEngine.expectRequest('dummy://foo', manifestRequest, manifestContext);
fakeNetEngine.expectNoRequest('dummy://bar', manifestRequest, manifestContext);
fakeNetEngine.expectNoRequest('dummy://bar', manifestRequest, patchContext);
});
it('does not use PatchLocation if it expired', async () => {
@@ -265,7 +268,7 @@ describe('DashParser Patch', () => {
await updateManifest();
expect(fakeNetEngine.request).toHaveBeenCalledTimes(1);
fakeNetEngine.expectRequest('dummy://foo', manifestRequest, manifestContext);
fakeNetEngine.expectNoRequest('dummy://bar', manifestRequest, manifestContext);
fakeNetEngine.expectNoRequest('dummy://bar', manifestRequest, patchContext);
});
it('replaces PatchLocation with new URL', async () => {
@@ -287,14 +290,14 @@ describe('DashParser Patch', () => {
await updateManifest();
expect(fakeNetEngine.request).toHaveBeenCalledTimes(1);
fakeNetEngine.expectRequest('dummy://bar', manifestRequest, manifestContext);
fakeNetEngine.expectRequest('dummy://bar', manifestRequest, patchContext);
fakeNetEngine.request.calls.reset();
fakeNetEngine.setResponseText('dummy://bar2', patchText);
// Another request should be made to new URI.
await updateManifest();
expect(fakeNetEngine.request).toHaveBeenCalledTimes(1);
fakeNetEngine.expectRequest('dummy://bar2', manifestRequest, manifestContext);
fakeNetEngine.expectRequest('dummy://bar2', manifestRequest, patchContext);
});
});