mirror of
https://github.com/LuanRT/googlevideo.git
synced 2026-06-19 03:31:37 +00:00
chore: Fix onesie request example and clean up
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
import Innertube, { Constants, UniversalCache } from 'youtubei.js';
|
||||
import { type Context, YT } from 'youtubei.js';
|
||||
import Innertube, { Constants, type Context, UniversalCache, YT } from 'youtubei.js';
|
||||
import GoogleVideo, { base64ToU8, PART, Protos, QUALITY } from '../../dist/src/index.js';
|
||||
import { decryptResponse, encryptRequest } from './utils.js';
|
||||
|
||||
@@ -67,7 +66,7 @@ async function prepareOnesieRequest(args: OnesieRequestArgs): Promise<OnesieRequ
|
||||
// Change or remove these if you want to use a different client. I chose TVHTML5 purely for testing.
|
||||
clonedInnerTubeContext.client.clientName = Constants.CLIENTS.TV.NAME;
|
||||
clonedInnerTubeContext.client.clientVersion = Constants.CLIENTS.TV.VERSION;
|
||||
|
||||
|
||||
const params: Record<string, any> = {
|
||||
playbackContext: {
|
||||
contentPlaybackContext: {
|
||||
@@ -79,29 +78,31 @@ async function prepareOnesieRequest(args: OnesieRequestArgs): Promise<OnesieRequ
|
||||
},
|
||||
videoId
|
||||
};
|
||||
|
||||
|
||||
if (poToken) {
|
||||
params.serviceIntegrityDimensions = {};
|
||||
params.serviceIntegrityDimensions.poToken = poToken;
|
||||
}
|
||||
|
||||
|
||||
const playerRequestJson = {
|
||||
context: clonedInnerTubeContext,
|
||||
...params
|
||||
};
|
||||
|
||||
const headers = [ {
|
||||
name: 'Content-Type',
|
||||
value: 'application/json'
|
||||
},
|
||||
{
|
||||
name: 'User-Agent',
|
||||
value: innertube.session.context.client.userAgent
|
||||
},
|
||||
{
|
||||
name: 'X-Goog-Visitor-Id',
|
||||
value: innertube.session.context.client.visitorData
|
||||
} ];
|
||||
const headers = [
|
||||
{
|
||||
name: 'Content-Type',
|
||||
value: 'application/json'
|
||||
},
|
||||
{
|
||||
name: 'User-Agent',
|
||||
value: innertube.session.context.client.userAgent
|
||||
},
|
||||
{
|
||||
name: 'X-Goog-Visitor-Id',
|
||||
value: innertube.session.context.client.visitorData
|
||||
}
|
||||
];
|
||||
|
||||
const onesieRequest = Protos.OnesiePlayerRequest.encode({
|
||||
url: 'https://youtubei.googleapis.com/youtubei/v1/player?key=AIzaSyDCU8hByM-4DrUqRUYnGn-3llEO78bcxq8',
|
||||
@@ -122,15 +123,13 @@ async function prepareOnesieRequest(args: OnesieRequestArgs): Promise<OnesieRequ
|
||||
* If you want to use an unencrypted player request:
|
||||
* unencryptedOnesiePlayerRequest: onesieRequest,
|
||||
*/
|
||||
enableCompression: false,
|
||||
enableCompression: true,
|
||||
hmac: hmac,
|
||||
iv: iv,
|
||||
TQ: true,
|
||||
useJsonformatterToParsePlayerResponse: false,
|
||||
serializeResponseAsJson: true // If false, the response will be serialized as protobuf.
|
||||
},
|
||||
clientAbrState: {
|
||||
timeSinceLastManualFormatSelectionMs: 0,
|
||||
lastManualDirection: 0,
|
||||
lastManualSelectedResolution: QUALITY.HD720,
|
||||
stickyResolution: QUALITY.HD720,
|
||||
playerTimeMs: 0,
|
||||
@@ -142,7 +141,7 @@ async function prepareOnesieRequest(args: OnesieRequestArgs): Promise<OnesieRequ
|
||||
poToken: poToken ? base64ToU8(poToken) : undefined,
|
||||
playbackCookie: undefined,
|
||||
clientInfo: {
|
||||
clientName: parseInt(Constants.CLIENTS.TV.NAME_ID),
|
||||
clientName: parseInt(Constants.CLIENT_NAME_IDS[clonedInnerTubeContext.client.clientName as keyof typeof Constants.CLIENT_NAME_IDS]),
|
||||
clientVersion: clonedInnerTubeContext.client.clientVersion
|
||||
}
|
||||
},
|
||||
@@ -190,7 +189,7 @@ async function getBasicInfo(innertube: Innertube, videoId: string): Promise<YT.V
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'accept': '*/*',
|
||||
'content-type': 'text/plain'
|
||||
'content-type': 'application/octet-stream'
|
||||
},
|
||||
referrer: 'https://www.youtube.com/',
|
||||
body: onesieRequest.body
|
||||
@@ -218,7 +217,7 @@ async function getBasicInfo(innertube: Innertube, videoId: string): Promise<YT.V
|
||||
}
|
||||
});
|
||||
|
||||
const onesiePlayerResponse = onesie.find((header) => header.type === Protos.OnesieHeaderType.PLAYER_RESPONSE);
|
||||
const onesiePlayerResponse = onesie.find((header) => header.type === Protos.OnesieHeaderType.ONESIE_PLAYER_RESPONSE);
|
||||
|
||||
if (onesiePlayerResponse) {
|
||||
if (!onesiePlayerResponse.cryptoParams)
|
||||
@@ -227,8 +226,23 @@ async function getBasicInfo(innertube: Innertube, videoId: string): Promise<YT.V
|
||||
const iv = onesiePlayerResponse.cryptoParams.iv;
|
||||
const hmac = onesiePlayerResponse.cryptoParams.hmac;
|
||||
|
||||
let responseData = onesiePlayerResponse.data;
|
||||
|
||||
// Decompress the response data if compression is enabled.
|
||||
if (responseData && onesiePlayerResponse.cryptoParams.compressionType === Protos.CompressionType.GZIP) {
|
||||
if (typeof window === 'undefined') {
|
||||
const zlib = await import('node:zlib');
|
||||
responseData = new Uint8Array(zlib.gunzipSync(responseData));
|
||||
} else {
|
||||
const ds = new DecompressionStream('gzip');
|
||||
const stream = new Blob([ responseData ]).stream().pipeThrough(ds);
|
||||
responseData = await new Response(stream).arrayBuffer().then((buf) => new Uint8Array(buf));
|
||||
}
|
||||
}
|
||||
|
||||
// If skipResponseEncryption is set to true in the request, the response will not be encrypted.
|
||||
const decryptedData = hmac?.length && iv?.length ? await decryptResponse(iv, hmac, onesiePlayerResponse.data, clientConfig.clientKeyData) : onesiePlayerResponse.data!;
|
||||
const decryptedData = hmac?.length && iv?.length ?
|
||||
await decryptResponse(iv, hmac, responseData, clientConfig.clientKeyData) : responseData!;
|
||||
const response = Protos.OnesiePlayerResponse.decode(decryptedData);
|
||||
|
||||
if (response.onesieProxyStatus !== Protos.OnesieProxyStatus.ONESIE_PROXY_STATUS_OK)
|
||||
@@ -253,4 +267,9 @@ const innertube = await Innertube.create({ cache: new UniversalCache(true) });
|
||||
|
||||
const videoInfo = await getBasicInfo(innertube, 'JAs6WyK-Kr0');
|
||||
console.log('Basic info:', videoInfo);
|
||||
console.log('Deciphered audio URL:', videoInfo.chooseFormat({ format: 'mp4', quality: 'best', type: 'audio' }).decipher(innertube.session.player));
|
||||
console.log('Deciphered audio URL:');
|
||||
console.log(videoInfo.chooseFormat({
|
||||
format: 'mp4',
|
||||
quality: 'best',
|
||||
type: 'audio'
|
||||
}).decipher(innertube.session.player));
|
||||
22
examples/onesie-request/package-lock.json
generated
22
examples/onesie-request/package-lock.json
generated
@@ -9,7 +9,7 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"youtubei.js": "^12.2.0"
|
||||
"youtubei.js": "^13.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@bufbuild/protobuf": {
|
||||
@@ -26,9 +26,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.14.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
|
||||
"integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
|
||||
"version": "8.14.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
|
||||
"integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
@@ -38,9 +38,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/jintr": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/jintr/-/jintr-3.2.0.tgz",
|
||||
"integrity": "sha512-psD1yf05kMKDNsUdW1l5YhO59pHScQ6OIHHb8W5SKSM2dCOFPsqolmIuSHgVA8+3Dc47NJR181CXZ4alCAPTkA==",
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/jintr/-/jintr-3.3.0.tgz",
|
||||
"integrity": "sha512-ZsaajJ4Hr5XR0tSPhOZOTjFhxA0qscKNSOs41NRjx7ZOGwpfdp8NKIBEUtvUPbA37JXyv1sJlgeOOZHjr3h76Q==",
|
||||
"funding": [
|
||||
"https://github.com/sponsors/LuanRT"
|
||||
],
|
||||
@@ -66,16 +66,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/youtubei.js": {
|
||||
"version": "12.2.0",
|
||||
"resolved": "https://registry.npmjs.org/youtubei.js/-/youtubei.js-12.2.0.tgz",
|
||||
"integrity": "sha512-G+50qrbJCToMYhu8jbaHiS3Vf+RRul+CcDbz3hEGwHkGPh+zLiWwD6SS+YhYF+2/op4ZU5zDYQJrGqJ+wKh7Gw==",
|
||||
"version": "13.3.0",
|
||||
"resolved": "https://registry.npmjs.org/youtubei.js/-/youtubei.js-13.3.0.tgz",
|
||||
"integrity": "sha512-tbl7rxltpgKoSsmfGUe9JqWUAzv6HFLqrOn0N85EbTn5DLt24EXrjClnXdxyr3PBARMJ3LC4vbll100a0ABsYw==",
|
||||
"funding": [
|
||||
"https://github.com/sponsors/LuanRT"
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@bufbuild/protobuf": "^2.0.0",
|
||||
"jintr": "^3.2.0",
|
||||
"jintr": "^3.3.0",
|
||||
"tslib": "^2.5.0",
|
||||
"undici": "^5.19.1"
|
||||
}
|
||||
|
||||
@@ -12,6 +12,6 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"youtubei.js": "^12.2.0"
|
||||
"youtubei.js": "^13.3.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,960 @@ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||
|
||||
export const protobufPackage = "misc";
|
||||
|
||||
export enum AudioQuality {
|
||||
AUDIO_QUALITY_UNKNOWN = 0,
|
||||
AUDIO_QUALITY_ULTRALOW = 5,
|
||||
AUDIO_QUALITY_LOW = 10,
|
||||
AUDIO_QUALITY_MEDIUM = 20,
|
||||
AUDIO_QUALITY_HIGH = 30,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
|
||||
export function audioQualityFromJSON(object: any): AudioQuality {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "AUDIO_QUALITY_UNKNOWN":
|
||||
return AudioQuality.AUDIO_QUALITY_UNKNOWN;
|
||||
case 5:
|
||||
case "AUDIO_QUALITY_ULTRALOW":
|
||||
return AudioQuality.AUDIO_QUALITY_ULTRALOW;
|
||||
case 10:
|
||||
case "AUDIO_QUALITY_LOW":
|
||||
return AudioQuality.AUDIO_QUALITY_LOW;
|
||||
case 20:
|
||||
case "AUDIO_QUALITY_MEDIUM":
|
||||
return AudioQuality.AUDIO_QUALITY_MEDIUM;
|
||||
case 30:
|
||||
case "AUDIO_QUALITY_HIGH":
|
||||
return AudioQuality.AUDIO_QUALITY_HIGH;
|
||||
case -1:
|
||||
case "UNRECOGNIZED":
|
||||
default:
|
||||
return AudioQuality.UNRECOGNIZED;
|
||||
}
|
||||
}
|
||||
|
||||
export function audioQualityToJSON(object: AudioQuality): string {
|
||||
switch (object) {
|
||||
case AudioQuality.AUDIO_QUALITY_UNKNOWN:
|
||||
return "AUDIO_QUALITY_UNKNOWN";
|
||||
case AudioQuality.AUDIO_QUALITY_ULTRALOW:
|
||||
return "AUDIO_QUALITY_ULTRALOW";
|
||||
case AudioQuality.AUDIO_QUALITY_LOW:
|
||||
return "AUDIO_QUALITY_LOW";
|
||||
case AudioQuality.AUDIO_QUALITY_MEDIUM:
|
||||
return "AUDIO_QUALITY_MEDIUM";
|
||||
case AudioQuality.AUDIO_QUALITY_HIGH:
|
||||
return "AUDIO_QUALITY_HIGH";
|
||||
case AudioQuality.UNRECOGNIZED:
|
||||
default:
|
||||
return "UNRECOGNIZED";
|
||||
}
|
||||
}
|
||||
|
||||
export enum VideoQualitySetting {
|
||||
VIDEO_QUALITY_SETTING_UNKNOWN = 0,
|
||||
VIDEO_QUALITY_SETTING_HIGHER_QUALITY = 1,
|
||||
VIDEO_QUALITY_SETTING_DATA_SAVER = 2,
|
||||
VIDEO_QUALITY_SETTING_ADVANCED_MENU = 3,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
|
||||
export function videoQualitySettingFromJSON(object: any): VideoQualitySetting {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "VIDEO_QUALITY_SETTING_UNKNOWN":
|
||||
return VideoQualitySetting.VIDEO_QUALITY_SETTING_UNKNOWN;
|
||||
case 1:
|
||||
case "VIDEO_QUALITY_SETTING_HIGHER_QUALITY":
|
||||
return VideoQualitySetting.VIDEO_QUALITY_SETTING_HIGHER_QUALITY;
|
||||
case 2:
|
||||
case "VIDEO_QUALITY_SETTING_DATA_SAVER":
|
||||
return VideoQualitySetting.VIDEO_QUALITY_SETTING_DATA_SAVER;
|
||||
case 3:
|
||||
case "VIDEO_QUALITY_SETTING_ADVANCED_MENU":
|
||||
return VideoQualitySetting.VIDEO_QUALITY_SETTING_ADVANCED_MENU;
|
||||
case -1:
|
||||
case "UNRECOGNIZED":
|
||||
default:
|
||||
return VideoQualitySetting.UNRECOGNIZED;
|
||||
}
|
||||
}
|
||||
|
||||
export function videoQualitySettingToJSON(object: VideoQualitySetting): string {
|
||||
switch (object) {
|
||||
case VideoQualitySetting.VIDEO_QUALITY_SETTING_UNKNOWN:
|
||||
return "VIDEO_QUALITY_SETTING_UNKNOWN";
|
||||
case VideoQualitySetting.VIDEO_QUALITY_SETTING_HIGHER_QUALITY:
|
||||
return "VIDEO_QUALITY_SETTING_HIGHER_QUALITY";
|
||||
case VideoQualitySetting.VIDEO_QUALITY_SETTING_DATA_SAVER:
|
||||
return "VIDEO_QUALITY_SETTING_DATA_SAVER";
|
||||
case VideoQualitySetting.VIDEO_QUALITY_SETTING_ADVANCED_MENU:
|
||||
return "VIDEO_QUALITY_SETTING_ADVANCED_MENU";
|
||||
case VideoQualitySetting.UNRECOGNIZED:
|
||||
default:
|
||||
return "UNRECOGNIZED";
|
||||
}
|
||||
}
|
||||
|
||||
export enum PlaybackAudioRouteOutputType {
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_UNKNOWN = 0,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_LINE_OUT = 1,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HEADPHONES = 2,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_A2DP = 3,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_RECEIVER = 4,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_SPEAKER = 5,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HDMI = 6,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_AIR_PLAY = 7,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_LE = 8,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_HFP = 9,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_USB_AUDIO = 10,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_CAR_PLAY = 11,
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_ANDROID_AUDIO = 12,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
|
||||
export function playbackAudioRouteOutputTypeFromJSON(object: any): PlaybackAudioRouteOutputType {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_UNKNOWN":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_UNKNOWN;
|
||||
case 1:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_LINE_OUT":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_LINE_OUT;
|
||||
case 2:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HEADPHONES":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HEADPHONES;
|
||||
case 3:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_A2DP":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_A2DP;
|
||||
case 4:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_RECEIVER":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_RECEIVER;
|
||||
case 5:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_SPEAKER":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_SPEAKER;
|
||||
case 6:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HDMI":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HDMI;
|
||||
case 7:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_AIR_PLAY":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_AIR_PLAY;
|
||||
case 8:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_LE":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_LE;
|
||||
case 9:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_HFP":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_HFP;
|
||||
case 10:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_USB_AUDIO":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_USB_AUDIO;
|
||||
case 11:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_CAR_PLAY":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_CAR_PLAY;
|
||||
case 12:
|
||||
case "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_ANDROID_AUDIO":
|
||||
return PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_ANDROID_AUDIO;
|
||||
case -1:
|
||||
case "UNRECOGNIZED":
|
||||
default:
|
||||
return PlaybackAudioRouteOutputType.UNRECOGNIZED;
|
||||
}
|
||||
}
|
||||
|
||||
export function playbackAudioRouteOutputTypeToJSON(object: PlaybackAudioRouteOutputType): string {
|
||||
switch (object) {
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_UNKNOWN:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_UNKNOWN";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_LINE_OUT:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_LINE_OUT";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HEADPHONES:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HEADPHONES";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_A2DP:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_A2DP";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_RECEIVER:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_RECEIVER";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_SPEAKER:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_SPEAKER";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HDMI:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HDMI";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_AIR_PLAY:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_AIR_PLAY";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_LE:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_LE";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_HFP:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_HFP";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_USB_AUDIO:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_USB_AUDIO";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_CAR_PLAY:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_CAR_PLAY";
|
||||
case PlaybackAudioRouteOutputType.PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_ANDROID_AUDIO:
|
||||
return "PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_ANDROID_AUDIO";
|
||||
case PlaybackAudioRouteOutputType.UNRECOGNIZED:
|
||||
default:
|
||||
return "UNRECOGNIZED";
|
||||
}
|
||||
}
|
||||
|
||||
export enum NetworkMeteredState {
|
||||
NETWORK_METERED_STATE_UNKNOWN = 0,
|
||||
NETWORK_METERED_STATE_UNMETERED = 1,
|
||||
NETWORK_METERED_STATE_METERED = 2,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
|
||||
export function networkMeteredStateFromJSON(object: any): NetworkMeteredState {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "NETWORK_METERED_STATE_UNKNOWN":
|
||||
return NetworkMeteredState.NETWORK_METERED_STATE_UNKNOWN;
|
||||
case 1:
|
||||
case "NETWORK_METERED_STATE_UNMETERED":
|
||||
return NetworkMeteredState.NETWORK_METERED_STATE_UNMETERED;
|
||||
case 2:
|
||||
case "NETWORK_METERED_STATE_METERED":
|
||||
return NetworkMeteredState.NETWORK_METERED_STATE_METERED;
|
||||
case -1:
|
||||
case "UNRECOGNIZED":
|
||||
default:
|
||||
return NetworkMeteredState.UNRECOGNIZED;
|
||||
}
|
||||
}
|
||||
|
||||
export function networkMeteredStateToJSON(object: NetworkMeteredState): string {
|
||||
switch (object) {
|
||||
case NetworkMeteredState.NETWORK_METERED_STATE_UNKNOWN:
|
||||
return "NETWORK_METERED_STATE_UNKNOWN";
|
||||
case NetworkMeteredState.NETWORK_METERED_STATE_UNMETERED:
|
||||
return "NETWORK_METERED_STATE_UNMETERED";
|
||||
case NetworkMeteredState.NETWORK_METERED_STATE_METERED:
|
||||
return "NETWORK_METERED_STATE_METERED";
|
||||
case NetworkMeteredState.UNRECOGNIZED:
|
||||
default:
|
||||
return "UNRECOGNIZED";
|
||||
}
|
||||
}
|
||||
|
||||
export enum SeekSource {
|
||||
SEEK_SOURCE_UNKNOWN = 0,
|
||||
SEEK_SOURCE_TIMESTAMP_IN_COMMENTS = 1,
|
||||
SEEK_SOURCE_TIMESTAMP_IN_DESCRIPTION = 2,
|
||||
SEEK_SOURCE_MACRO_MARKER_LIST_ITEM = 3,
|
||||
SEEK_SOURCE_DOUBLE_TAP_TO_SEEK = 4,
|
||||
SEEK_SOURCE_DOUBLE_TAP_TO_SKIP_CHAPTER = 5,
|
||||
SEEK_SOURCE_PICK_UP_PLAY_HEAD = 6,
|
||||
SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR = 7,
|
||||
SEEK_SOURCE_SLIDE_ON_PLAYER = 8,
|
||||
SEEK_SOURCE_SABR_PARTIAL_CHUNK = 9,
|
||||
SEEK_SOURCE_SABR_SEEK_TO_HEAD = 10,
|
||||
SEEK_SOURCE_SABR_LIVE_DVR_USER_SEEK = 11,
|
||||
SEEK_SOURCE_SABR_SEEK_TO_DVR_LOWER_BOUND = 12,
|
||||
SEEK_SOURCE_SABR_SEEK_TO_DVR_UPPER_BOUND = 13,
|
||||
SEEK_SOURCE_SSDAI_INTERNAL = 14,
|
||||
SEEK_SOURCE_START_PLAYBACK = 15,
|
||||
SEEK_SOURCE_SABR_ACCURATE_SEEK = 17,
|
||||
SEEK_SOURCE_START_PLAYBACK_SEEK_TO_END = 18,
|
||||
SEEK_SOURCE_IOS_PLAYER_REMOVED_SEGMENTS = 19,
|
||||
SEEK_SOURCE_IOS_PLAYER_SEGMENT_LIST = 20,
|
||||
SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK = 21,
|
||||
SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK_TO_END = 22,
|
||||
SEEK_SOURCE_IOS_PLAYER_SEEK_TO_END_TO_RESYNC = 23,
|
||||
SEEK_SOURCE_IOS_SEEK_ACCESSIBILITY_BUTTON = 24,
|
||||
SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_FILMSTRIP = 25,
|
||||
SEEK_SOURCE_FINE_SCRUBBER_TAP_ON_FILMSTRIP = 26,
|
||||
SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_SCRUBBER_BAR = 27,
|
||||
SEEK_SOURCE_SEEK_BUTTON_ON_PLAYER_CONTROL = 28,
|
||||
SEEK_SOURCE_SABR_INGESTION_WALL_TIME_SEEK = 29,
|
||||
SEEK_SOURCE_PLAYER_VIEW_REPARENT_INTERNAL = 30,
|
||||
SEEK_SOURCE_PRESS_REWIND_PLAY_BACK_CONTROL = 31,
|
||||
SEEK_SOURCE_PRESS_FAST_FORWARD_PLAY_BACK_CONTROL = 32,
|
||||
SEEK_SOURCE_PRESS_LIVE_SYNC_ICON = 33,
|
||||
SEEK_SOURCE_PEG_TO_LIVE = 34,
|
||||
SEEK_SOURCE_ANDROID_MEDIA_SESSION = 35,
|
||||
SEEK_SOURCE_TAP_ON_REPLAY_ACTION = 36,
|
||||
SEEK_SOURCE_AUTOMATIC_REPLAY_ACTION = 37,
|
||||
SEEK_SOURCE_NON_USER_SEEK_TO_PREVIOUS = 38,
|
||||
SEEK_SOURCE_NON_USER_SEEK_TO_NEXT = 39,
|
||||
SEEK_SOURCE_HIGHLIGHTS_TAP_PREVIOUS_PLAY = 66,
|
||||
SEEK_SOURCE_HIGHLIGHTS_TAP_NEXT_PLAY = 40,
|
||||
SEEK_SOURCE_HIGHLIGHTS_TAP_HIDDEN_NEXT_PLAY = 41,
|
||||
SEEK_SOURCE_HIGHLIGHTS_TAP_LIST_ITEM = 42,
|
||||
SEEK_SOURCE_HIGHLIGHTS_AUTOMATIC_NEXT_PLAY = 43,
|
||||
SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_FIRST_PLAY = 44,
|
||||
SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_END = 45,
|
||||
SEEK_SOURCE_SEGMENTS_TAP_LIST_ITEM = 46,
|
||||
SEEK_SOURCE_PIP_FAST_FORWARD_BUTTON = 47,
|
||||
SEEK_SOURCE_PIP_REWIND_BUTTON = 48,
|
||||
SEEK_SOURCE_PIP_RESUME_ON_HEAD = 49,
|
||||
SEEK_SOURCE_MOVING_CLIP_FRAME = 50,
|
||||
SEEK_SOURCE_RESUME_CLIP_PREVIOUS_POSITION = 51,
|
||||
SEEK_SOURCE_SEEK_TO_NEXT_CHAPTER = 52,
|
||||
SEEK_SOURCE_SEEK_TO_PREVIOUS_CHAPTER = 53,
|
||||
SEEK_SOURCE_IOS_SHAREPLAY_PAUSE = 54,
|
||||
SEEK_SOURCE_IOS_SHAREPLAY_SEEK = 55,
|
||||
SEEK_SOURCE_IOS_SHAREPLAY_SYNC_RESPONSE = 56,
|
||||
SEEK_SOURCE_SEEK_TO_HEAD_IMMERSIVE_LIVE_VIDEO = 57,
|
||||
SEEK_SOURCE_SEEK_TO_START_OF_LOOPING_RANGE_OF_SHORTS = 58,
|
||||
SEEK_SOURCE_SABR_SEEK_TO_CLOSEST_KEYFRAME = 59,
|
||||
SEEK_SOURCE_SEEK_TO_END_OF_LOOPING_RANGE_OF_SHORTS = 60,
|
||||
SEEK_SOURCE_CLIP_SLIDE_ON_FLIMSTRIP = 61,
|
||||
SEEK_SOURCE_PICK_UP_CLIP_SLIDER = 62,
|
||||
SEEK_SOURCE_FINE_SCRUBBER_CANCELLED = 63,
|
||||
SEEK_SOURCE_INLINE_PLAYER_SEEK_CHAPTER = 64,
|
||||
SEEK_SOURCE_INLINE_PLAYER_SEEK_SECONDS = 65,
|
||||
SEEK_SOURCE_HIGHLIGHTS_PLAYER_EXIT_FULLSCREEN = 67,
|
||||
SEEK_SOURCE_LARGE_CONTROLS_FORWARD_BUTTON = 68,
|
||||
SEEK_SOURCE_LARGE_CONTROLS_REWIND_BUTTON = 69,
|
||||
SEEK_SOURCE_LARGE_CONTROLS_SCRUBBER_BAR = 70,
|
||||
SEEK_SOURCE_SEEK_BACKWARD_5S = 71,
|
||||
SEEK_SOURCE_SEEK_FORWARD_5S = 72,
|
||||
SEEK_SOURCE_SEEK_BACKWARD_10S = 73,
|
||||
SEEK_SOURCE_SEEK_FORWARD_10S = 74,
|
||||
SEEK_SOURCE_SEEK_FORWARD_60S = 75,
|
||||
SEEK_SOURCE_SEEK_BACKWARD_60S = 76,
|
||||
SEEK_SOURCE_SEEK_TO_NEXT_FRAME = 77,
|
||||
SEEK_SOURCE_SEEK_TO_PREV_FRAME = 78,
|
||||
SEEK_SOURCE_KEYBOARD_SEEK_TO_BEGINNING = 79,
|
||||
SEEK_SOURCE_KEYBOARD_SEEK_TO_END = 80,
|
||||
SEEK_SOURCE_SEEK_PERCENT_OF_VIDEO = 81,
|
||||
SEEK_SOURCE_HIDDEN_FAST_FORWARD_BUTTON = 82,
|
||||
SEEK_SOURCE_HIDDEN_REWIND_BUTTON = 83,
|
||||
SEEK_SOURCE_TIMESTAMP = 84,
|
||||
SEEK_SOURCE_LR_MEDIA_SESSION_SEEK = 87,
|
||||
SEEK_SOURCE_MIDROLLS_WITH_TIME_RANGE = 88,
|
||||
SEEK_SOURCE_SKIP_AD = 89,
|
||||
SEEK_SOURCE_SEEK_TO_PREVIOUS = 90,
|
||||
SEEK_SOURCE_SEEK_TO_NEXT = 91,
|
||||
SEEK_SOURCE_LR_QUICK_SEEK = 92,
|
||||
SEEK_SOURCE_ONESIE_LIVE = 93,
|
||||
SEEK_SOURCE_LR_PLAYER_CONTROL_ACTION = 94,
|
||||
SEEK_SOURCE_UNPLUGGED_LENS_START_CLIP = 95,
|
||||
SEEK_SOURCE_LR_KEY_PLAYS = 96,
|
||||
SEEK_SOURCE_SSAP_AD_FMT_FATAL = 97,
|
||||
SEEK_SOURCE_TVHTML5_INPUT_SOURCE_KEY_EVENT = 98,
|
||||
SEEK_SOURCE_TVHTML5_INPUT_SOURCE_CONTROLS = 99,
|
||||
SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCH = 100,
|
||||
SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCHPAD = 101,
|
||||
SEEK_SOURCE_SEEK_TO_HEAD = 102,
|
||||
SEEK_SOURCE_AUTOMATIC_PREVIEW_REPLAY_ACTION = 103,
|
||||
SEEK_SOURCE_H5_MEDIA_ELEMENT_EVENT = 104,
|
||||
SEEK_SOURCE_H5_WORKAROUND_SEEK = 105,
|
||||
SEEK_SOURCE_MINIPLAYER_REWIND_BUTTON = 106,
|
||||
SEEK_SOURCE_MINIPLAYER_FAST_FORWARD_BUTTON = 107,
|
||||
SEEK_SOURCE_SABR_RELOAD_PLAYER_RESPONSE_TOKEN_SEEK = 108,
|
||||
SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR_CHAPTER = 109,
|
||||
SEEK_SOURCE_ANDROID_CLEAR_BUFFER = 110,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
|
||||
export function seekSourceFromJSON(object: any): SeekSource {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "SEEK_SOURCE_UNKNOWN":
|
||||
return SeekSource.SEEK_SOURCE_UNKNOWN;
|
||||
case 1:
|
||||
case "SEEK_SOURCE_TIMESTAMP_IN_COMMENTS":
|
||||
return SeekSource.SEEK_SOURCE_TIMESTAMP_IN_COMMENTS;
|
||||
case 2:
|
||||
case "SEEK_SOURCE_TIMESTAMP_IN_DESCRIPTION":
|
||||
return SeekSource.SEEK_SOURCE_TIMESTAMP_IN_DESCRIPTION;
|
||||
case 3:
|
||||
case "SEEK_SOURCE_MACRO_MARKER_LIST_ITEM":
|
||||
return SeekSource.SEEK_SOURCE_MACRO_MARKER_LIST_ITEM;
|
||||
case 4:
|
||||
case "SEEK_SOURCE_DOUBLE_TAP_TO_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_DOUBLE_TAP_TO_SEEK;
|
||||
case 5:
|
||||
case "SEEK_SOURCE_DOUBLE_TAP_TO_SKIP_CHAPTER":
|
||||
return SeekSource.SEEK_SOURCE_DOUBLE_TAP_TO_SKIP_CHAPTER;
|
||||
case 6:
|
||||
case "SEEK_SOURCE_PICK_UP_PLAY_HEAD":
|
||||
return SeekSource.SEEK_SOURCE_PICK_UP_PLAY_HEAD;
|
||||
case 7:
|
||||
case "SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR":
|
||||
return SeekSource.SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR;
|
||||
case 8:
|
||||
case "SEEK_SOURCE_SLIDE_ON_PLAYER":
|
||||
return SeekSource.SEEK_SOURCE_SLIDE_ON_PLAYER;
|
||||
case 9:
|
||||
case "SEEK_SOURCE_SABR_PARTIAL_CHUNK":
|
||||
return SeekSource.SEEK_SOURCE_SABR_PARTIAL_CHUNK;
|
||||
case 10:
|
||||
case "SEEK_SOURCE_SABR_SEEK_TO_HEAD":
|
||||
return SeekSource.SEEK_SOURCE_SABR_SEEK_TO_HEAD;
|
||||
case 11:
|
||||
case "SEEK_SOURCE_SABR_LIVE_DVR_USER_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_SABR_LIVE_DVR_USER_SEEK;
|
||||
case 12:
|
||||
case "SEEK_SOURCE_SABR_SEEK_TO_DVR_LOWER_BOUND":
|
||||
return SeekSource.SEEK_SOURCE_SABR_SEEK_TO_DVR_LOWER_BOUND;
|
||||
case 13:
|
||||
case "SEEK_SOURCE_SABR_SEEK_TO_DVR_UPPER_BOUND":
|
||||
return SeekSource.SEEK_SOURCE_SABR_SEEK_TO_DVR_UPPER_BOUND;
|
||||
case 14:
|
||||
case "SEEK_SOURCE_SSDAI_INTERNAL":
|
||||
return SeekSource.SEEK_SOURCE_SSDAI_INTERNAL;
|
||||
case 15:
|
||||
case "SEEK_SOURCE_START_PLAYBACK":
|
||||
return SeekSource.SEEK_SOURCE_START_PLAYBACK;
|
||||
case 17:
|
||||
case "SEEK_SOURCE_SABR_ACCURATE_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_SABR_ACCURATE_SEEK;
|
||||
case 18:
|
||||
case "SEEK_SOURCE_START_PLAYBACK_SEEK_TO_END":
|
||||
return SeekSource.SEEK_SOURCE_START_PLAYBACK_SEEK_TO_END;
|
||||
case 19:
|
||||
case "SEEK_SOURCE_IOS_PLAYER_REMOVED_SEGMENTS":
|
||||
return SeekSource.SEEK_SOURCE_IOS_PLAYER_REMOVED_SEGMENTS;
|
||||
case 20:
|
||||
case "SEEK_SOURCE_IOS_PLAYER_SEGMENT_LIST":
|
||||
return SeekSource.SEEK_SOURCE_IOS_PLAYER_SEGMENT_LIST;
|
||||
case 21:
|
||||
case "SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK;
|
||||
case 22:
|
||||
case "SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK_TO_END":
|
||||
return SeekSource.SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK_TO_END;
|
||||
case 23:
|
||||
case "SEEK_SOURCE_IOS_PLAYER_SEEK_TO_END_TO_RESYNC":
|
||||
return SeekSource.SEEK_SOURCE_IOS_PLAYER_SEEK_TO_END_TO_RESYNC;
|
||||
case 24:
|
||||
case "SEEK_SOURCE_IOS_SEEK_ACCESSIBILITY_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_IOS_SEEK_ACCESSIBILITY_BUTTON;
|
||||
case 25:
|
||||
case "SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_FILMSTRIP":
|
||||
return SeekSource.SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_FILMSTRIP;
|
||||
case 26:
|
||||
case "SEEK_SOURCE_FINE_SCRUBBER_TAP_ON_FILMSTRIP":
|
||||
return SeekSource.SEEK_SOURCE_FINE_SCRUBBER_TAP_ON_FILMSTRIP;
|
||||
case 27:
|
||||
case "SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_SCRUBBER_BAR":
|
||||
return SeekSource.SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_SCRUBBER_BAR;
|
||||
case 28:
|
||||
case "SEEK_SOURCE_SEEK_BUTTON_ON_PLAYER_CONTROL":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_BUTTON_ON_PLAYER_CONTROL;
|
||||
case 29:
|
||||
case "SEEK_SOURCE_SABR_INGESTION_WALL_TIME_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_SABR_INGESTION_WALL_TIME_SEEK;
|
||||
case 30:
|
||||
case "SEEK_SOURCE_PLAYER_VIEW_REPARENT_INTERNAL":
|
||||
return SeekSource.SEEK_SOURCE_PLAYER_VIEW_REPARENT_INTERNAL;
|
||||
case 31:
|
||||
case "SEEK_SOURCE_PRESS_REWIND_PLAY_BACK_CONTROL":
|
||||
return SeekSource.SEEK_SOURCE_PRESS_REWIND_PLAY_BACK_CONTROL;
|
||||
case 32:
|
||||
case "SEEK_SOURCE_PRESS_FAST_FORWARD_PLAY_BACK_CONTROL":
|
||||
return SeekSource.SEEK_SOURCE_PRESS_FAST_FORWARD_PLAY_BACK_CONTROL;
|
||||
case 33:
|
||||
case "SEEK_SOURCE_PRESS_LIVE_SYNC_ICON":
|
||||
return SeekSource.SEEK_SOURCE_PRESS_LIVE_SYNC_ICON;
|
||||
case 34:
|
||||
case "SEEK_SOURCE_PEG_TO_LIVE":
|
||||
return SeekSource.SEEK_SOURCE_PEG_TO_LIVE;
|
||||
case 35:
|
||||
case "SEEK_SOURCE_ANDROID_MEDIA_SESSION":
|
||||
return SeekSource.SEEK_SOURCE_ANDROID_MEDIA_SESSION;
|
||||
case 36:
|
||||
case "SEEK_SOURCE_TAP_ON_REPLAY_ACTION":
|
||||
return SeekSource.SEEK_SOURCE_TAP_ON_REPLAY_ACTION;
|
||||
case 37:
|
||||
case "SEEK_SOURCE_AUTOMATIC_REPLAY_ACTION":
|
||||
return SeekSource.SEEK_SOURCE_AUTOMATIC_REPLAY_ACTION;
|
||||
case 38:
|
||||
case "SEEK_SOURCE_NON_USER_SEEK_TO_PREVIOUS":
|
||||
return SeekSource.SEEK_SOURCE_NON_USER_SEEK_TO_PREVIOUS;
|
||||
case 39:
|
||||
case "SEEK_SOURCE_NON_USER_SEEK_TO_NEXT":
|
||||
return SeekSource.SEEK_SOURCE_NON_USER_SEEK_TO_NEXT;
|
||||
case 66:
|
||||
case "SEEK_SOURCE_HIGHLIGHTS_TAP_PREVIOUS_PLAY":
|
||||
return SeekSource.SEEK_SOURCE_HIGHLIGHTS_TAP_PREVIOUS_PLAY;
|
||||
case 40:
|
||||
case "SEEK_SOURCE_HIGHLIGHTS_TAP_NEXT_PLAY":
|
||||
return SeekSource.SEEK_SOURCE_HIGHLIGHTS_TAP_NEXT_PLAY;
|
||||
case 41:
|
||||
case "SEEK_SOURCE_HIGHLIGHTS_TAP_HIDDEN_NEXT_PLAY":
|
||||
return SeekSource.SEEK_SOURCE_HIGHLIGHTS_TAP_HIDDEN_NEXT_PLAY;
|
||||
case 42:
|
||||
case "SEEK_SOURCE_HIGHLIGHTS_TAP_LIST_ITEM":
|
||||
return SeekSource.SEEK_SOURCE_HIGHLIGHTS_TAP_LIST_ITEM;
|
||||
case 43:
|
||||
case "SEEK_SOURCE_HIGHLIGHTS_AUTOMATIC_NEXT_PLAY":
|
||||
return SeekSource.SEEK_SOURCE_HIGHLIGHTS_AUTOMATIC_NEXT_PLAY;
|
||||
case 44:
|
||||
case "SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_FIRST_PLAY":
|
||||
return SeekSource.SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_FIRST_PLAY;
|
||||
case 45:
|
||||
case "SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_END":
|
||||
return SeekSource.SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_END;
|
||||
case 46:
|
||||
case "SEEK_SOURCE_SEGMENTS_TAP_LIST_ITEM":
|
||||
return SeekSource.SEEK_SOURCE_SEGMENTS_TAP_LIST_ITEM;
|
||||
case 47:
|
||||
case "SEEK_SOURCE_PIP_FAST_FORWARD_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_PIP_FAST_FORWARD_BUTTON;
|
||||
case 48:
|
||||
case "SEEK_SOURCE_PIP_REWIND_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_PIP_REWIND_BUTTON;
|
||||
case 49:
|
||||
case "SEEK_SOURCE_PIP_RESUME_ON_HEAD":
|
||||
return SeekSource.SEEK_SOURCE_PIP_RESUME_ON_HEAD;
|
||||
case 50:
|
||||
case "SEEK_SOURCE_MOVING_CLIP_FRAME":
|
||||
return SeekSource.SEEK_SOURCE_MOVING_CLIP_FRAME;
|
||||
case 51:
|
||||
case "SEEK_SOURCE_RESUME_CLIP_PREVIOUS_POSITION":
|
||||
return SeekSource.SEEK_SOURCE_RESUME_CLIP_PREVIOUS_POSITION;
|
||||
case 52:
|
||||
case "SEEK_SOURCE_SEEK_TO_NEXT_CHAPTER":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_NEXT_CHAPTER;
|
||||
case 53:
|
||||
case "SEEK_SOURCE_SEEK_TO_PREVIOUS_CHAPTER":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_PREVIOUS_CHAPTER;
|
||||
case 54:
|
||||
case "SEEK_SOURCE_IOS_SHAREPLAY_PAUSE":
|
||||
return SeekSource.SEEK_SOURCE_IOS_SHAREPLAY_PAUSE;
|
||||
case 55:
|
||||
case "SEEK_SOURCE_IOS_SHAREPLAY_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_IOS_SHAREPLAY_SEEK;
|
||||
case 56:
|
||||
case "SEEK_SOURCE_IOS_SHAREPLAY_SYNC_RESPONSE":
|
||||
return SeekSource.SEEK_SOURCE_IOS_SHAREPLAY_SYNC_RESPONSE;
|
||||
case 57:
|
||||
case "SEEK_SOURCE_SEEK_TO_HEAD_IMMERSIVE_LIVE_VIDEO":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_HEAD_IMMERSIVE_LIVE_VIDEO;
|
||||
case 58:
|
||||
case "SEEK_SOURCE_SEEK_TO_START_OF_LOOPING_RANGE_OF_SHORTS":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_START_OF_LOOPING_RANGE_OF_SHORTS;
|
||||
case 59:
|
||||
case "SEEK_SOURCE_SABR_SEEK_TO_CLOSEST_KEYFRAME":
|
||||
return SeekSource.SEEK_SOURCE_SABR_SEEK_TO_CLOSEST_KEYFRAME;
|
||||
case 60:
|
||||
case "SEEK_SOURCE_SEEK_TO_END_OF_LOOPING_RANGE_OF_SHORTS":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_END_OF_LOOPING_RANGE_OF_SHORTS;
|
||||
case 61:
|
||||
case "SEEK_SOURCE_CLIP_SLIDE_ON_FLIMSTRIP":
|
||||
return SeekSource.SEEK_SOURCE_CLIP_SLIDE_ON_FLIMSTRIP;
|
||||
case 62:
|
||||
case "SEEK_SOURCE_PICK_UP_CLIP_SLIDER":
|
||||
return SeekSource.SEEK_SOURCE_PICK_UP_CLIP_SLIDER;
|
||||
case 63:
|
||||
case "SEEK_SOURCE_FINE_SCRUBBER_CANCELLED":
|
||||
return SeekSource.SEEK_SOURCE_FINE_SCRUBBER_CANCELLED;
|
||||
case 64:
|
||||
case "SEEK_SOURCE_INLINE_PLAYER_SEEK_CHAPTER":
|
||||
return SeekSource.SEEK_SOURCE_INLINE_PLAYER_SEEK_CHAPTER;
|
||||
case 65:
|
||||
case "SEEK_SOURCE_INLINE_PLAYER_SEEK_SECONDS":
|
||||
return SeekSource.SEEK_SOURCE_INLINE_PLAYER_SEEK_SECONDS;
|
||||
case 67:
|
||||
case "SEEK_SOURCE_HIGHLIGHTS_PLAYER_EXIT_FULLSCREEN":
|
||||
return SeekSource.SEEK_SOURCE_HIGHLIGHTS_PLAYER_EXIT_FULLSCREEN;
|
||||
case 68:
|
||||
case "SEEK_SOURCE_LARGE_CONTROLS_FORWARD_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_LARGE_CONTROLS_FORWARD_BUTTON;
|
||||
case 69:
|
||||
case "SEEK_SOURCE_LARGE_CONTROLS_REWIND_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_LARGE_CONTROLS_REWIND_BUTTON;
|
||||
case 70:
|
||||
case "SEEK_SOURCE_LARGE_CONTROLS_SCRUBBER_BAR":
|
||||
return SeekSource.SEEK_SOURCE_LARGE_CONTROLS_SCRUBBER_BAR;
|
||||
case 71:
|
||||
case "SEEK_SOURCE_SEEK_BACKWARD_5S":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_BACKWARD_5S;
|
||||
case 72:
|
||||
case "SEEK_SOURCE_SEEK_FORWARD_5S":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_FORWARD_5S;
|
||||
case 73:
|
||||
case "SEEK_SOURCE_SEEK_BACKWARD_10S":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_BACKWARD_10S;
|
||||
case 74:
|
||||
case "SEEK_SOURCE_SEEK_FORWARD_10S":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_FORWARD_10S;
|
||||
case 75:
|
||||
case "SEEK_SOURCE_SEEK_FORWARD_60S":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_FORWARD_60S;
|
||||
case 76:
|
||||
case "SEEK_SOURCE_SEEK_BACKWARD_60S":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_BACKWARD_60S;
|
||||
case 77:
|
||||
case "SEEK_SOURCE_SEEK_TO_NEXT_FRAME":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_NEXT_FRAME;
|
||||
case 78:
|
||||
case "SEEK_SOURCE_SEEK_TO_PREV_FRAME":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_PREV_FRAME;
|
||||
case 79:
|
||||
case "SEEK_SOURCE_KEYBOARD_SEEK_TO_BEGINNING":
|
||||
return SeekSource.SEEK_SOURCE_KEYBOARD_SEEK_TO_BEGINNING;
|
||||
case 80:
|
||||
case "SEEK_SOURCE_KEYBOARD_SEEK_TO_END":
|
||||
return SeekSource.SEEK_SOURCE_KEYBOARD_SEEK_TO_END;
|
||||
case 81:
|
||||
case "SEEK_SOURCE_SEEK_PERCENT_OF_VIDEO":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_PERCENT_OF_VIDEO;
|
||||
case 82:
|
||||
case "SEEK_SOURCE_HIDDEN_FAST_FORWARD_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_HIDDEN_FAST_FORWARD_BUTTON;
|
||||
case 83:
|
||||
case "SEEK_SOURCE_HIDDEN_REWIND_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_HIDDEN_REWIND_BUTTON;
|
||||
case 84:
|
||||
case "SEEK_SOURCE_TIMESTAMP":
|
||||
return SeekSource.SEEK_SOURCE_TIMESTAMP;
|
||||
case 87:
|
||||
case "SEEK_SOURCE_LR_MEDIA_SESSION_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_LR_MEDIA_SESSION_SEEK;
|
||||
case 88:
|
||||
case "SEEK_SOURCE_MIDROLLS_WITH_TIME_RANGE":
|
||||
return SeekSource.SEEK_SOURCE_MIDROLLS_WITH_TIME_RANGE;
|
||||
case 89:
|
||||
case "SEEK_SOURCE_SKIP_AD":
|
||||
return SeekSource.SEEK_SOURCE_SKIP_AD;
|
||||
case 90:
|
||||
case "SEEK_SOURCE_SEEK_TO_PREVIOUS":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_PREVIOUS;
|
||||
case 91:
|
||||
case "SEEK_SOURCE_SEEK_TO_NEXT":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_NEXT;
|
||||
case 92:
|
||||
case "SEEK_SOURCE_LR_QUICK_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_LR_QUICK_SEEK;
|
||||
case 93:
|
||||
case "SEEK_SOURCE_ONESIE_LIVE":
|
||||
return SeekSource.SEEK_SOURCE_ONESIE_LIVE;
|
||||
case 94:
|
||||
case "SEEK_SOURCE_LR_PLAYER_CONTROL_ACTION":
|
||||
return SeekSource.SEEK_SOURCE_LR_PLAYER_CONTROL_ACTION;
|
||||
case 95:
|
||||
case "SEEK_SOURCE_UNPLUGGED_LENS_START_CLIP":
|
||||
return SeekSource.SEEK_SOURCE_UNPLUGGED_LENS_START_CLIP;
|
||||
case 96:
|
||||
case "SEEK_SOURCE_LR_KEY_PLAYS":
|
||||
return SeekSource.SEEK_SOURCE_LR_KEY_PLAYS;
|
||||
case 97:
|
||||
case "SEEK_SOURCE_SSAP_AD_FMT_FATAL":
|
||||
return SeekSource.SEEK_SOURCE_SSAP_AD_FMT_FATAL;
|
||||
case 98:
|
||||
case "SEEK_SOURCE_TVHTML5_INPUT_SOURCE_KEY_EVENT":
|
||||
return SeekSource.SEEK_SOURCE_TVHTML5_INPUT_SOURCE_KEY_EVENT;
|
||||
case 99:
|
||||
case "SEEK_SOURCE_TVHTML5_INPUT_SOURCE_CONTROLS":
|
||||
return SeekSource.SEEK_SOURCE_TVHTML5_INPUT_SOURCE_CONTROLS;
|
||||
case 100:
|
||||
case "SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCH":
|
||||
return SeekSource.SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCH;
|
||||
case 101:
|
||||
case "SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCHPAD":
|
||||
return SeekSource.SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCHPAD;
|
||||
case 102:
|
||||
case "SEEK_SOURCE_SEEK_TO_HEAD":
|
||||
return SeekSource.SEEK_SOURCE_SEEK_TO_HEAD;
|
||||
case 103:
|
||||
case "SEEK_SOURCE_AUTOMATIC_PREVIEW_REPLAY_ACTION":
|
||||
return SeekSource.SEEK_SOURCE_AUTOMATIC_PREVIEW_REPLAY_ACTION;
|
||||
case 104:
|
||||
case "SEEK_SOURCE_H5_MEDIA_ELEMENT_EVENT":
|
||||
return SeekSource.SEEK_SOURCE_H5_MEDIA_ELEMENT_EVENT;
|
||||
case 105:
|
||||
case "SEEK_SOURCE_H5_WORKAROUND_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_H5_WORKAROUND_SEEK;
|
||||
case 106:
|
||||
case "SEEK_SOURCE_MINIPLAYER_REWIND_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_MINIPLAYER_REWIND_BUTTON;
|
||||
case 107:
|
||||
case "SEEK_SOURCE_MINIPLAYER_FAST_FORWARD_BUTTON":
|
||||
return SeekSource.SEEK_SOURCE_MINIPLAYER_FAST_FORWARD_BUTTON;
|
||||
case 108:
|
||||
case "SEEK_SOURCE_SABR_RELOAD_PLAYER_RESPONSE_TOKEN_SEEK":
|
||||
return SeekSource.SEEK_SOURCE_SABR_RELOAD_PLAYER_RESPONSE_TOKEN_SEEK;
|
||||
case 109:
|
||||
case "SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR_CHAPTER":
|
||||
return SeekSource.SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR_CHAPTER;
|
||||
case 110:
|
||||
case "SEEK_SOURCE_ANDROID_CLEAR_BUFFER":
|
||||
return SeekSource.SEEK_SOURCE_ANDROID_CLEAR_BUFFER;
|
||||
case -1:
|
||||
case "UNRECOGNIZED":
|
||||
default:
|
||||
return SeekSource.UNRECOGNIZED;
|
||||
}
|
||||
}
|
||||
|
||||
export function seekSourceToJSON(object: SeekSource): string {
|
||||
switch (object) {
|
||||
case SeekSource.SEEK_SOURCE_UNKNOWN:
|
||||
return "SEEK_SOURCE_UNKNOWN";
|
||||
case SeekSource.SEEK_SOURCE_TIMESTAMP_IN_COMMENTS:
|
||||
return "SEEK_SOURCE_TIMESTAMP_IN_COMMENTS";
|
||||
case SeekSource.SEEK_SOURCE_TIMESTAMP_IN_DESCRIPTION:
|
||||
return "SEEK_SOURCE_TIMESTAMP_IN_DESCRIPTION";
|
||||
case SeekSource.SEEK_SOURCE_MACRO_MARKER_LIST_ITEM:
|
||||
return "SEEK_SOURCE_MACRO_MARKER_LIST_ITEM";
|
||||
case SeekSource.SEEK_SOURCE_DOUBLE_TAP_TO_SEEK:
|
||||
return "SEEK_SOURCE_DOUBLE_TAP_TO_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_DOUBLE_TAP_TO_SKIP_CHAPTER:
|
||||
return "SEEK_SOURCE_DOUBLE_TAP_TO_SKIP_CHAPTER";
|
||||
case SeekSource.SEEK_SOURCE_PICK_UP_PLAY_HEAD:
|
||||
return "SEEK_SOURCE_PICK_UP_PLAY_HEAD";
|
||||
case SeekSource.SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR:
|
||||
return "SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR";
|
||||
case SeekSource.SEEK_SOURCE_SLIDE_ON_PLAYER:
|
||||
return "SEEK_SOURCE_SLIDE_ON_PLAYER";
|
||||
case SeekSource.SEEK_SOURCE_SABR_PARTIAL_CHUNK:
|
||||
return "SEEK_SOURCE_SABR_PARTIAL_CHUNK";
|
||||
case SeekSource.SEEK_SOURCE_SABR_SEEK_TO_HEAD:
|
||||
return "SEEK_SOURCE_SABR_SEEK_TO_HEAD";
|
||||
case SeekSource.SEEK_SOURCE_SABR_LIVE_DVR_USER_SEEK:
|
||||
return "SEEK_SOURCE_SABR_LIVE_DVR_USER_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_SABR_SEEK_TO_DVR_LOWER_BOUND:
|
||||
return "SEEK_SOURCE_SABR_SEEK_TO_DVR_LOWER_BOUND";
|
||||
case SeekSource.SEEK_SOURCE_SABR_SEEK_TO_DVR_UPPER_BOUND:
|
||||
return "SEEK_SOURCE_SABR_SEEK_TO_DVR_UPPER_BOUND";
|
||||
case SeekSource.SEEK_SOURCE_SSDAI_INTERNAL:
|
||||
return "SEEK_SOURCE_SSDAI_INTERNAL";
|
||||
case SeekSource.SEEK_SOURCE_START_PLAYBACK:
|
||||
return "SEEK_SOURCE_START_PLAYBACK";
|
||||
case SeekSource.SEEK_SOURCE_SABR_ACCURATE_SEEK:
|
||||
return "SEEK_SOURCE_SABR_ACCURATE_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_START_PLAYBACK_SEEK_TO_END:
|
||||
return "SEEK_SOURCE_START_PLAYBACK_SEEK_TO_END";
|
||||
case SeekSource.SEEK_SOURCE_IOS_PLAYER_REMOVED_SEGMENTS:
|
||||
return "SEEK_SOURCE_IOS_PLAYER_REMOVED_SEGMENTS";
|
||||
case SeekSource.SEEK_SOURCE_IOS_PLAYER_SEGMENT_LIST:
|
||||
return "SEEK_SOURCE_IOS_PLAYER_SEGMENT_LIST";
|
||||
case SeekSource.SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK:
|
||||
return "SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK_TO_END:
|
||||
return "SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK_TO_END";
|
||||
case SeekSource.SEEK_SOURCE_IOS_PLAYER_SEEK_TO_END_TO_RESYNC:
|
||||
return "SEEK_SOURCE_IOS_PLAYER_SEEK_TO_END_TO_RESYNC";
|
||||
case SeekSource.SEEK_SOURCE_IOS_SEEK_ACCESSIBILITY_BUTTON:
|
||||
return "SEEK_SOURCE_IOS_SEEK_ACCESSIBILITY_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_FILMSTRIP:
|
||||
return "SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_FILMSTRIP";
|
||||
case SeekSource.SEEK_SOURCE_FINE_SCRUBBER_TAP_ON_FILMSTRIP:
|
||||
return "SEEK_SOURCE_FINE_SCRUBBER_TAP_ON_FILMSTRIP";
|
||||
case SeekSource.SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_SCRUBBER_BAR:
|
||||
return "SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_SCRUBBER_BAR";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_BUTTON_ON_PLAYER_CONTROL:
|
||||
return "SEEK_SOURCE_SEEK_BUTTON_ON_PLAYER_CONTROL";
|
||||
case SeekSource.SEEK_SOURCE_SABR_INGESTION_WALL_TIME_SEEK:
|
||||
return "SEEK_SOURCE_SABR_INGESTION_WALL_TIME_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_PLAYER_VIEW_REPARENT_INTERNAL:
|
||||
return "SEEK_SOURCE_PLAYER_VIEW_REPARENT_INTERNAL";
|
||||
case SeekSource.SEEK_SOURCE_PRESS_REWIND_PLAY_BACK_CONTROL:
|
||||
return "SEEK_SOURCE_PRESS_REWIND_PLAY_BACK_CONTROL";
|
||||
case SeekSource.SEEK_SOURCE_PRESS_FAST_FORWARD_PLAY_BACK_CONTROL:
|
||||
return "SEEK_SOURCE_PRESS_FAST_FORWARD_PLAY_BACK_CONTROL";
|
||||
case SeekSource.SEEK_SOURCE_PRESS_LIVE_SYNC_ICON:
|
||||
return "SEEK_SOURCE_PRESS_LIVE_SYNC_ICON";
|
||||
case SeekSource.SEEK_SOURCE_PEG_TO_LIVE:
|
||||
return "SEEK_SOURCE_PEG_TO_LIVE";
|
||||
case SeekSource.SEEK_SOURCE_ANDROID_MEDIA_SESSION:
|
||||
return "SEEK_SOURCE_ANDROID_MEDIA_SESSION";
|
||||
case SeekSource.SEEK_SOURCE_TAP_ON_REPLAY_ACTION:
|
||||
return "SEEK_SOURCE_TAP_ON_REPLAY_ACTION";
|
||||
case SeekSource.SEEK_SOURCE_AUTOMATIC_REPLAY_ACTION:
|
||||
return "SEEK_SOURCE_AUTOMATIC_REPLAY_ACTION";
|
||||
case SeekSource.SEEK_SOURCE_NON_USER_SEEK_TO_PREVIOUS:
|
||||
return "SEEK_SOURCE_NON_USER_SEEK_TO_PREVIOUS";
|
||||
case SeekSource.SEEK_SOURCE_NON_USER_SEEK_TO_NEXT:
|
||||
return "SEEK_SOURCE_NON_USER_SEEK_TO_NEXT";
|
||||
case SeekSource.SEEK_SOURCE_HIGHLIGHTS_TAP_PREVIOUS_PLAY:
|
||||
return "SEEK_SOURCE_HIGHLIGHTS_TAP_PREVIOUS_PLAY";
|
||||
case SeekSource.SEEK_SOURCE_HIGHLIGHTS_TAP_NEXT_PLAY:
|
||||
return "SEEK_SOURCE_HIGHLIGHTS_TAP_NEXT_PLAY";
|
||||
case SeekSource.SEEK_SOURCE_HIGHLIGHTS_TAP_HIDDEN_NEXT_PLAY:
|
||||
return "SEEK_SOURCE_HIGHLIGHTS_TAP_HIDDEN_NEXT_PLAY";
|
||||
case SeekSource.SEEK_SOURCE_HIGHLIGHTS_TAP_LIST_ITEM:
|
||||
return "SEEK_SOURCE_HIGHLIGHTS_TAP_LIST_ITEM";
|
||||
case SeekSource.SEEK_SOURCE_HIGHLIGHTS_AUTOMATIC_NEXT_PLAY:
|
||||
return "SEEK_SOURCE_HIGHLIGHTS_AUTOMATIC_NEXT_PLAY";
|
||||
case SeekSource.SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_FIRST_PLAY:
|
||||
return "SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_FIRST_PLAY";
|
||||
case SeekSource.SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_END:
|
||||
return "SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_END";
|
||||
case SeekSource.SEEK_SOURCE_SEGMENTS_TAP_LIST_ITEM:
|
||||
return "SEEK_SOURCE_SEGMENTS_TAP_LIST_ITEM";
|
||||
case SeekSource.SEEK_SOURCE_PIP_FAST_FORWARD_BUTTON:
|
||||
return "SEEK_SOURCE_PIP_FAST_FORWARD_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_PIP_REWIND_BUTTON:
|
||||
return "SEEK_SOURCE_PIP_REWIND_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_PIP_RESUME_ON_HEAD:
|
||||
return "SEEK_SOURCE_PIP_RESUME_ON_HEAD";
|
||||
case SeekSource.SEEK_SOURCE_MOVING_CLIP_FRAME:
|
||||
return "SEEK_SOURCE_MOVING_CLIP_FRAME";
|
||||
case SeekSource.SEEK_SOURCE_RESUME_CLIP_PREVIOUS_POSITION:
|
||||
return "SEEK_SOURCE_RESUME_CLIP_PREVIOUS_POSITION";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_NEXT_CHAPTER:
|
||||
return "SEEK_SOURCE_SEEK_TO_NEXT_CHAPTER";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_PREVIOUS_CHAPTER:
|
||||
return "SEEK_SOURCE_SEEK_TO_PREVIOUS_CHAPTER";
|
||||
case SeekSource.SEEK_SOURCE_IOS_SHAREPLAY_PAUSE:
|
||||
return "SEEK_SOURCE_IOS_SHAREPLAY_PAUSE";
|
||||
case SeekSource.SEEK_SOURCE_IOS_SHAREPLAY_SEEK:
|
||||
return "SEEK_SOURCE_IOS_SHAREPLAY_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_IOS_SHAREPLAY_SYNC_RESPONSE:
|
||||
return "SEEK_SOURCE_IOS_SHAREPLAY_SYNC_RESPONSE";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_HEAD_IMMERSIVE_LIVE_VIDEO:
|
||||
return "SEEK_SOURCE_SEEK_TO_HEAD_IMMERSIVE_LIVE_VIDEO";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_START_OF_LOOPING_RANGE_OF_SHORTS:
|
||||
return "SEEK_SOURCE_SEEK_TO_START_OF_LOOPING_RANGE_OF_SHORTS";
|
||||
case SeekSource.SEEK_SOURCE_SABR_SEEK_TO_CLOSEST_KEYFRAME:
|
||||
return "SEEK_SOURCE_SABR_SEEK_TO_CLOSEST_KEYFRAME";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_END_OF_LOOPING_RANGE_OF_SHORTS:
|
||||
return "SEEK_SOURCE_SEEK_TO_END_OF_LOOPING_RANGE_OF_SHORTS";
|
||||
case SeekSource.SEEK_SOURCE_CLIP_SLIDE_ON_FLIMSTRIP:
|
||||
return "SEEK_SOURCE_CLIP_SLIDE_ON_FLIMSTRIP";
|
||||
case SeekSource.SEEK_SOURCE_PICK_UP_CLIP_SLIDER:
|
||||
return "SEEK_SOURCE_PICK_UP_CLIP_SLIDER";
|
||||
case SeekSource.SEEK_SOURCE_FINE_SCRUBBER_CANCELLED:
|
||||
return "SEEK_SOURCE_FINE_SCRUBBER_CANCELLED";
|
||||
case SeekSource.SEEK_SOURCE_INLINE_PLAYER_SEEK_CHAPTER:
|
||||
return "SEEK_SOURCE_INLINE_PLAYER_SEEK_CHAPTER";
|
||||
case SeekSource.SEEK_SOURCE_INLINE_PLAYER_SEEK_SECONDS:
|
||||
return "SEEK_SOURCE_INLINE_PLAYER_SEEK_SECONDS";
|
||||
case SeekSource.SEEK_SOURCE_HIGHLIGHTS_PLAYER_EXIT_FULLSCREEN:
|
||||
return "SEEK_SOURCE_HIGHLIGHTS_PLAYER_EXIT_FULLSCREEN";
|
||||
case SeekSource.SEEK_SOURCE_LARGE_CONTROLS_FORWARD_BUTTON:
|
||||
return "SEEK_SOURCE_LARGE_CONTROLS_FORWARD_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_LARGE_CONTROLS_REWIND_BUTTON:
|
||||
return "SEEK_SOURCE_LARGE_CONTROLS_REWIND_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_LARGE_CONTROLS_SCRUBBER_BAR:
|
||||
return "SEEK_SOURCE_LARGE_CONTROLS_SCRUBBER_BAR";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_BACKWARD_5S:
|
||||
return "SEEK_SOURCE_SEEK_BACKWARD_5S";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_FORWARD_5S:
|
||||
return "SEEK_SOURCE_SEEK_FORWARD_5S";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_BACKWARD_10S:
|
||||
return "SEEK_SOURCE_SEEK_BACKWARD_10S";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_FORWARD_10S:
|
||||
return "SEEK_SOURCE_SEEK_FORWARD_10S";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_FORWARD_60S:
|
||||
return "SEEK_SOURCE_SEEK_FORWARD_60S";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_BACKWARD_60S:
|
||||
return "SEEK_SOURCE_SEEK_BACKWARD_60S";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_NEXT_FRAME:
|
||||
return "SEEK_SOURCE_SEEK_TO_NEXT_FRAME";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_PREV_FRAME:
|
||||
return "SEEK_SOURCE_SEEK_TO_PREV_FRAME";
|
||||
case SeekSource.SEEK_SOURCE_KEYBOARD_SEEK_TO_BEGINNING:
|
||||
return "SEEK_SOURCE_KEYBOARD_SEEK_TO_BEGINNING";
|
||||
case SeekSource.SEEK_SOURCE_KEYBOARD_SEEK_TO_END:
|
||||
return "SEEK_SOURCE_KEYBOARD_SEEK_TO_END";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_PERCENT_OF_VIDEO:
|
||||
return "SEEK_SOURCE_SEEK_PERCENT_OF_VIDEO";
|
||||
case SeekSource.SEEK_SOURCE_HIDDEN_FAST_FORWARD_BUTTON:
|
||||
return "SEEK_SOURCE_HIDDEN_FAST_FORWARD_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_HIDDEN_REWIND_BUTTON:
|
||||
return "SEEK_SOURCE_HIDDEN_REWIND_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_TIMESTAMP:
|
||||
return "SEEK_SOURCE_TIMESTAMP";
|
||||
case SeekSource.SEEK_SOURCE_LR_MEDIA_SESSION_SEEK:
|
||||
return "SEEK_SOURCE_LR_MEDIA_SESSION_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_MIDROLLS_WITH_TIME_RANGE:
|
||||
return "SEEK_SOURCE_MIDROLLS_WITH_TIME_RANGE";
|
||||
case SeekSource.SEEK_SOURCE_SKIP_AD:
|
||||
return "SEEK_SOURCE_SKIP_AD";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_PREVIOUS:
|
||||
return "SEEK_SOURCE_SEEK_TO_PREVIOUS";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_NEXT:
|
||||
return "SEEK_SOURCE_SEEK_TO_NEXT";
|
||||
case SeekSource.SEEK_SOURCE_LR_QUICK_SEEK:
|
||||
return "SEEK_SOURCE_LR_QUICK_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_ONESIE_LIVE:
|
||||
return "SEEK_SOURCE_ONESIE_LIVE";
|
||||
case SeekSource.SEEK_SOURCE_LR_PLAYER_CONTROL_ACTION:
|
||||
return "SEEK_SOURCE_LR_PLAYER_CONTROL_ACTION";
|
||||
case SeekSource.SEEK_SOURCE_UNPLUGGED_LENS_START_CLIP:
|
||||
return "SEEK_SOURCE_UNPLUGGED_LENS_START_CLIP";
|
||||
case SeekSource.SEEK_SOURCE_LR_KEY_PLAYS:
|
||||
return "SEEK_SOURCE_LR_KEY_PLAYS";
|
||||
case SeekSource.SEEK_SOURCE_SSAP_AD_FMT_FATAL:
|
||||
return "SEEK_SOURCE_SSAP_AD_FMT_FATAL";
|
||||
case SeekSource.SEEK_SOURCE_TVHTML5_INPUT_SOURCE_KEY_EVENT:
|
||||
return "SEEK_SOURCE_TVHTML5_INPUT_SOURCE_KEY_EVENT";
|
||||
case SeekSource.SEEK_SOURCE_TVHTML5_INPUT_SOURCE_CONTROLS:
|
||||
return "SEEK_SOURCE_TVHTML5_INPUT_SOURCE_CONTROLS";
|
||||
case SeekSource.SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCH:
|
||||
return "SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCH";
|
||||
case SeekSource.SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCHPAD:
|
||||
return "SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCHPAD";
|
||||
case SeekSource.SEEK_SOURCE_SEEK_TO_HEAD:
|
||||
return "SEEK_SOURCE_SEEK_TO_HEAD";
|
||||
case SeekSource.SEEK_SOURCE_AUTOMATIC_PREVIEW_REPLAY_ACTION:
|
||||
return "SEEK_SOURCE_AUTOMATIC_PREVIEW_REPLAY_ACTION";
|
||||
case SeekSource.SEEK_SOURCE_H5_MEDIA_ELEMENT_EVENT:
|
||||
return "SEEK_SOURCE_H5_MEDIA_ELEMENT_EVENT";
|
||||
case SeekSource.SEEK_SOURCE_H5_WORKAROUND_SEEK:
|
||||
return "SEEK_SOURCE_H5_WORKAROUND_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_MINIPLAYER_REWIND_BUTTON:
|
||||
return "SEEK_SOURCE_MINIPLAYER_REWIND_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_MINIPLAYER_FAST_FORWARD_BUTTON:
|
||||
return "SEEK_SOURCE_MINIPLAYER_FAST_FORWARD_BUTTON";
|
||||
case SeekSource.SEEK_SOURCE_SABR_RELOAD_PLAYER_RESPONSE_TOKEN_SEEK:
|
||||
return "SEEK_SOURCE_SABR_RELOAD_PLAYER_RESPONSE_TOKEN_SEEK";
|
||||
case SeekSource.SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR_CHAPTER:
|
||||
return "SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR_CHAPTER";
|
||||
case SeekSource.SEEK_SOURCE_ANDROID_CLEAR_BUFFER:
|
||||
return "SEEK_SOURCE_ANDROID_CLEAR_BUFFER";
|
||||
case SeekSource.UNRECOGNIZED:
|
||||
default:
|
||||
return "UNRECOGNIZED";
|
||||
}
|
||||
}
|
||||
|
||||
export enum OnesieRequestTarget {
|
||||
ONESIE_REQUEST_TARGET_UNKNOWN = 0,
|
||||
ONESIE_REQUEST_TARGET_ENCRYPTED_PLAYER_SERVICE = 1,
|
||||
ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE_DEPRECATED = 2,
|
||||
ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE = 3,
|
||||
ONESIE_REQUEST_TARGET_INNERTUBE_ENCRYPTED_SERVICE = 4,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
|
||||
export function onesieRequestTargetFromJSON(object: any): OnesieRequestTarget {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "ONESIE_REQUEST_TARGET_UNKNOWN":
|
||||
return OnesieRequestTarget.ONESIE_REQUEST_TARGET_UNKNOWN;
|
||||
case 1:
|
||||
case "ONESIE_REQUEST_TARGET_ENCRYPTED_PLAYER_SERVICE":
|
||||
return OnesieRequestTarget.ONESIE_REQUEST_TARGET_ENCRYPTED_PLAYER_SERVICE;
|
||||
case 2:
|
||||
case "ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE_DEPRECATED":
|
||||
return OnesieRequestTarget.ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE_DEPRECATED;
|
||||
case 3:
|
||||
case "ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE":
|
||||
return OnesieRequestTarget.ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE;
|
||||
case 4:
|
||||
case "ONESIE_REQUEST_TARGET_INNERTUBE_ENCRYPTED_SERVICE":
|
||||
return OnesieRequestTarget.ONESIE_REQUEST_TARGET_INNERTUBE_ENCRYPTED_SERVICE;
|
||||
case -1:
|
||||
case "UNRECOGNIZED":
|
||||
default:
|
||||
return OnesieRequestTarget.UNRECOGNIZED;
|
||||
}
|
||||
}
|
||||
|
||||
export function onesieRequestTargetToJSON(object: OnesieRequestTarget): string {
|
||||
switch (object) {
|
||||
case OnesieRequestTarget.ONESIE_REQUEST_TARGET_UNKNOWN:
|
||||
return "ONESIE_REQUEST_TARGET_UNKNOWN";
|
||||
case OnesieRequestTarget.ONESIE_REQUEST_TARGET_ENCRYPTED_PLAYER_SERVICE:
|
||||
return "ONESIE_REQUEST_TARGET_ENCRYPTED_PLAYER_SERVICE";
|
||||
case OnesieRequestTarget.ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE_DEPRECATED:
|
||||
return "ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE_DEPRECATED";
|
||||
case OnesieRequestTarget.ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE:
|
||||
return "ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE";
|
||||
case OnesieRequestTarget.ONESIE_REQUEST_TARGET_INNERTUBE_ENCRYPTED_SERVICE:
|
||||
return "ONESIE_REQUEST_TARGET_INNERTUBE_ENCRYPTED_SERVICE";
|
||||
case OnesieRequestTarget.UNRECOGNIZED:
|
||||
default:
|
||||
return "UNRECOGNIZED";
|
||||
}
|
||||
}
|
||||
|
||||
export interface HttpHeader {
|
||||
name?: string | undefined;
|
||||
value?: string | undefined;
|
||||
|
||||
@@ -6,6 +6,20 @@
|
||||
|
||||
/* eslint-disable */
|
||||
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||
import {
|
||||
AudioQuality,
|
||||
audioQualityFromJSON,
|
||||
audioQualityToJSON,
|
||||
NetworkMeteredState,
|
||||
networkMeteredStateFromJSON,
|
||||
networkMeteredStateToJSON,
|
||||
PlaybackAudioRouteOutputType,
|
||||
playbackAudioRouteOutputTypeFromJSON,
|
||||
playbackAudioRouteOutputTypeToJSON,
|
||||
VideoQualitySetting,
|
||||
videoQualitySettingFromJSON,
|
||||
videoQualitySettingToJSON,
|
||||
} from "../misc/common.js";
|
||||
|
||||
export const protobufPackage = "video_streaming";
|
||||
|
||||
@@ -16,13 +30,18 @@ export interface ClientAbrState {
|
||||
detailedNetworkType?: number | undefined;
|
||||
clientViewportWidth?: number | undefined;
|
||||
clientViewportHeight?: number | undefined;
|
||||
clientBitrateCap?: number | undefined;
|
||||
clientBitrateCapBytesPerSec?: number | undefined;
|
||||
stickyResolution?: number | undefined;
|
||||
clientViewportIsFlexible?: boolean | undefined;
|
||||
bandwidthEstimate?: number | undefined;
|
||||
minAudioQuality?: AudioQuality | undefined;
|
||||
maxAudioQuality?: AudioQuality | undefined;
|
||||
videoQualitySetting?: VideoQualitySetting | undefined;
|
||||
audioRoute?: PlaybackAudioRouteOutputType | undefined;
|
||||
playerTimeMs?: number | undefined;
|
||||
timeSinceLastSeek?: number | undefined;
|
||||
dataSaverMode?: boolean | undefined;
|
||||
networkMeteredState?: NetworkMeteredState | undefined;
|
||||
visibility?: number | undefined;
|
||||
playbackRate?: number | undefined;
|
||||
elapsedWallTimeMs?: number | undefined;
|
||||
@@ -58,13 +77,18 @@ function createBaseClientAbrState(): ClientAbrState {
|
||||
detailedNetworkType: 0,
|
||||
clientViewportWidth: 0,
|
||||
clientViewportHeight: 0,
|
||||
clientBitrateCap: 0,
|
||||
clientBitrateCapBytesPerSec: 0,
|
||||
stickyResolution: 0,
|
||||
clientViewportIsFlexible: false,
|
||||
bandwidthEstimate: 0,
|
||||
minAudioQuality: 0,
|
||||
maxAudioQuality: 0,
|
||||
videoQualitySetting: 0,
|
||||
audioRoute: 0,
|
||||
playerTimeMs: 0,
|
||||
timeSinceLastSeek: 0,
|
||||
dataSaverMode: false,
|
||||
networkMeteredState: 0,
|
||||
visibility: 0,
|
||||
playbackRate: 0,
|
||||
elapsedWallTimeMs: 0,
|
||||
@@ -98,10 +122,10 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
if (
|
||||
message.timeSinceLastManualFormatSelectionMs !== undefined && message.timeSinceLastManualFormatSelectionMs !== 0
|
||||
) {
|
||||
writer.uint32(104).int32(message.timeSinceLastManualFormatSelectionMs);
|
||||
writer.uint32(104).int64(message.timeSinceLastManualFormatSelectionMs);
|
||||
}
|
||||
if (message.lastManualDirection !== undefined && message.lastManualDirection !== 0) {
|
||||
writer.uint32(112).int32(message.lastManualDirection);
|
||||
writer.uint32(112).sint32(message.lastManualDirection);
|
||||
}
|
||||
if (message.lastManualSelectedResolution !== undefined && message.lastManualSelectedResolution !== 0) {
|
||||
writer.uint32(128).int32(message.lastManualSelectedResolution);
|
||||
@@ -115,8 +139,8 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
if (message.clientViewportHeight !== undefined && message.clientViewportHeight !== 0) {
|
||||
writer.uint32(152).int32(message.clientViewportHeight);
|
||||
}
|
||||
if (message.clientBitrateCap !== undefined && message.clientBitrateCap !== 0) {
|
||||
writer.uint32(160).int64(message.clientBitrateCap);
|
||||
if (message.clientBitrateCapBytesPerSec !== undefined && message.clientBitrateCapBytesPerSec !== 0) {
|
||||
writer.uint32(160).int64(message.clientBitrateCapBytesPerSec);
|
||||
}
|
||||
if (message.stickyResolution !== undefined && message.stickyResolution !== 0) {
|
||||
writer.uint32(168).int32(message.stickyResolution);
|
||||
@@ -125,7 +149,19 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
writer.uint32(176).bool(message.clientViewportIsFlexible);
|
||||
}
|
||||
if (message.bandwidthEstimate !== undefined && message.bandwidthEstimate !== 0) {
|
||||
writer.uint32(184).int32(message.bandwidthEstimate);
|
||||
writer.uint32(184).int64(message.bandwidthEstimate);
|
||||
}
|
||||
if (message.minAudioQuality !== undefined && message.minAudioQuality !== 0) {
|
||||
writer.uint32(192).int32(message.minAudioQuality);
|
||||
}
|
||||
if (message.maxAudioQuality !== undefined && message.maxAudioQuality !== 0) {
|
||||
writer.uint32(200).int32(message.maxAudioQuality);
|
||||
}
|
||||
if (message.videoQualitySetting !== undefined && message.videoQualitySetting !== 0) {
|
||||
writer.uint32(208).int32(message.videoQualitySetting);
|
||||
}
|
||||
if (message.audioRoute !== undefined && message.audioRoute !== 0) {
|
||||
writer.uint32(216).int32(message.audioRoute);
|
||||
}
|
||||
if (message.playerTimeMs !== undefined && message.playerTimeMs !== 0) {
|
||||
writer.uint32(224).int64(message.playerTimeMs);
|
||||
@@ -136,6 +172,9 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
if (message.dataSaverMode !== undefined && message.dataSaverMode !== false) {
|
||||
writer.uint32(240).bool(message.dataSaverMode);
|
||||
}
|
||||
if (message.networkMeteredState !== undefined && message.networkMeteredState !== 0) {
|
||||
writer.uint32(256).int32(message.networkMeteredState);
|
||||
}
|
||||
if (message.visibility !== undefined && message.visibility !== 0) {
|
||||
writer.uint32(272).int32(message.visibility);
|
||||
}
|
||||
@@ -229,14 +268,14 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.timeSinceLastManualFormatSelectionMs = reader.int32();
|
||||
message.timeSinceLastManualFormatSelectionMs = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 14:
|
||||
if (tag !== 112) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.lastManualDirection = reader.int32();
|
||||
message.lastManualDirection = reader.sint32();
|
||||
continue;
|
||||
case 16:
|
||||
if (tag !== 128) {
|
||||
@@ -271,7 +310,7 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.clientBitrateCap = longToNumber(reader.int64());
|
||||
message.clientBitrateCapBytesPerSec = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 21:
|
||||
if (tag !== 168) {
|
||||
@@ -292,7 +331,35 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.bandwidthEstimate = reader.int32();
|
||||
message.bandwidthEstimate = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 24:
|
||||
if (tag !== 192) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.minAudioQuality = reader.int32() as any;
|
||||
continue;
|
||||
case 25:
|
||||
if (tag !== 200) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.maxAudioQuality = reader.int32() as any;
|
||||
continue;
|
||||
case 26:
|
||||
if (tag !== 208) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.videoQualitySetting = reader.int32() as any;
|
||||
continue;
|
||||
case 27:
|
||||
if (tag !== 216) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.audioRoute = reader.int32() as any;
|
||||
continue;
|
||||
case 28:
|
||||
if (tag !== 224) {
|
||||
@@ -315,6 +382,13 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
|
||||
message.dataSaverMode = reader.bool();
|
||||
continue;
|
||||
case 32:
|
||||
if (tag !== 256) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.networkMeteredState = reader.int32() as any;
|
||||
continue;
|
||||
case 34:
|
||||
if (tag !== 272) {
|
||||
break;
|
||||
@@ -511,15 +585,26 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
detailedNetworkType: isSet(object.detailedNetworkType) ? globalThis.Number(object.detailedNetworkType) : 0,
|
||||
clientViewportWidth: isSet(object.clientViewportWidth) ? globalThis.Number(object.clientViewportWidth) : 0,
|
||||
clientViewportHeight: isSet(object.clientViewportHeight) ? globalThis.Number(object.clientViewportHeight) : 0,
|
||||
clientBitrateCap: isSet(object.clientBitrateCap) ? globalThis.Number(object.clientBitrateCap) : 0,
|
||||
clientBitrateCapBytesPerSec: isSet(object.clientBitrateCapBytesPerSec)
|
||||
? globalThis.Number(object.clientBitrateCapBytesPerSec)
|
||||
: 0,
|
||||
stickyResolution: isSet(object.stickyResolution) ? globalThis.Number(object.stickyResolution) : 0,
|
||||
clientViewportIsFlexible: isSet(object.clientViewportIsFlexible)
|
||||
? globalThis.Boolean(object.clientViewportIsFlexible)
|
||||
: false,
|
||||
bandwidthEstimate: isSet(object.bandwidthEstimate) ? globalThis.Number(object.bandwidthEstimate) : 0,
|
||||
minAudioQuality: isSet(object.minAudioQuality) ? audioQualityFromJSON(object.minAudioQuality) : 0,
|
||||
maxAudioQuality: isSet(object.maxAudioQuality) ? audioQualityFromJSON(object.maxAudioQuality) : 0,
|
||||
videoQualitySetting: isSet(object.videoQualitySetting)
|
||||
? videoQualitySettingFromJSON(object.videoQualitySetting)
|
||||
: 0,
|
||||
audioRoute: isSet(object.audioRoute) ? playbackAudioRouteOutputTypeFromJSON(object.audioRoute) : 0,
|
||||
playerTimeMs: isSet(object.playerTimeMs) ? globalThis.Number(object.playerTimeMs) : 0,
|
||||
timeSinceLastSeek: isSet(object.timeSinceLastSeek) ? globalThis.Number(object.timeSinceLastSeek) : 0,
|
||||
dataSaverMode: isSet(object.dataSaverMode) ? globalThis.Boolean(object.dataSaverMode) : false,
|
||||
networkMeteredState: isSet(object.networkMeteredState)
|
||||
? networkMeteredStateFromJSON(object.networkMeteredState)
|
||||
: 0,
|
||||
visibility: isSet(object.visibility) ? globalThis.Number(object.visibility) : 0,
|
||||
playbackRate: isSet(object.playbackRate) ? globalThis.Number(object.playbackRate) : 0,
|
||||
elapsedWallTimeMs: isSet(object.elapsedWallTimeMs) ? globalThis.Number(object.elapsedWallTimeMs) : 0,
|
||||
@@ -584,8 +669,8 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
if (message.clientViewportHeight !== undefined && message.clientViewportHeight !== 0) {
|
||||
obj.clientViewportHeight = Math.round(message.clientViewportHeight);
|
||||
}
|
||||
if (message.clientBitrateCap !== undefined && message.clientBitrateCap !== 0) {
|
||||
obj.clientBitrateCap = Math.round(message.clientBitrateCap);
|
||||
if (message.clientBitrateCapBytesPerSec !== undefined && message.clientBitrateCapBytesPerSec !== 0) {
|
||||
obj.clientBitrateCapBytesPerSec = Math.round(message.clientBitrateCapBytesPerSec);
|
||||
}
|
||||
if (message.stickyResolution !== undefined && message.stickyResolution !== 0) {
|
||||
obj.stickyResolution = Math.round(message.stickyResolution);
|
||||
@@ -596,6 +681,18 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
if (message.bandwidthEstimate !== undefined && message.bandwidthEstimate !== 0) {
|
||||
obj.bandwidthEstimate = Math.round(message.bandwidthEstimate);
|
||||
}
|
||||
if (message.minAudioQuality !== undefined && message.minAudioQuality !== 0) {
|
||||
obj.minAudioQuality = audioQualityToJSON(message.minAudioQuality);
|
||||
}
|
||||
if (message.maxAudioQuality !== undefined && message.maxAudioQuality !== 0) {
|
||||
obj.maxAudioQuality = audioQualityToJSON(message.maxAudioQuality);
|
||||
}
|
||||
if (message.videoQualitySetting !== undefined && message.videoQualitySetting !== 0) {
|
||||
obj.videoQualitySetting = videoQualitySettingToJSON(message.videoQualitySetting);
|
||||
}
|
||||
if (message.audioRoute !== undefined && message.audioRoute !== 0) {
|
||||
obj.audioRoute = playbackAudioRouteOutputTypeToJSON(message.audioRoute);
|
||||
}
|
||||
if (message.playerTimeMs !== undefined && message.playerTimeMs !== 0) {
|
||||
obj.playerTimeMs = Math.round(message.playerTimeMs);
|
||||
}
|
||||
@@ -605,6 +702,9 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
if (message.dataSaverMode !== undefined && message.dataSaverMode !== false) {
|
||||
obj.dataSaverMode = message.dataSaverMode;
|
||||
}
|
||||
if (message.networkMeteredState !== undefined && message.networkMeteredState !== 0) {
|
||||
obj.networkMeteredState = networkMeteredStateToJSON(message.networkMeteredState);
|
||||
}
|
||||
if (message.visibility !== undefined && message.visibility !== 0) {
|
||||
obj.visibility = Math.round(message.visibility);
|
||||
}
|
||||
@@ -697,13 +797,18 @@ export const ClientAbrState: MessageFns<ClientAbrState> = {
|
||||
message.detailedNetworkType = object.detailedNetworkType ?? 0;
|
||||
message.clientViewportWidth = object.clientViewportWidth ?? 0;
|
||||
message.clientViewportHeight = object.clientViewportHeight ?? 0;
|
||||
message.clientBitrateCap = object.clientBitrateCap ?? 0;
|
||||
message.clientBitrateCapBytesPerSec = object.clientBitrateCapBytesPerSec ?? 0;
|
||||
message.stickyResolution = object.stickyResolution ?? 0;
|
||||
message.clientViewportIsFlexible = object.clientViewportIsFlexible ?? false;
|
||||
message.bandwidthEstimate = object.bandwidthEstimate ?? 0;
|
||||
message.minAudioQuality = object.minAudioQuality ?? 0;
|
||||
message.maxAudioQuality = object.maxAudioQuality ?? 0;
|
||||
message.videoQualitySetting = object.videoQualitySetting ?? 0;
|
||||
message.audioRoute = object.audioRoute ?? 0;
|
||||
message.playerTimeMs = object.playerTimeMs ?? 0;
|
||||
message.timeSinceLastSeek = object.timeSinceLastSeek ?? 0;
|
||||
message.dataSaverMode = object.dataSaverMode ?? false;
|
||||
message.networkMeteredState = object.networkMeteredState ?? 0;
|
||||
message.visibility = object.visibility ?? 0;
|
||||
message.playbackRate = object.playbackRate ?? 0;
|
||||
message.elapsedWallTimeMs = object.elapsedWallTimeMs ?? 0;
|
||||
|
||||
@@ -16,23 +16,23 @@ export interface CryptoParams {
|
||||
}
|
||||
|
||||
export enum CryptoParams_CompressionType {
|
||||
VAL_0 = 0,
|
||||
VAL_1 = 1,
|
||||
VAL_2 = 2,
|
||||
NONE = 0,
|
||||
GZIP = 1,
|
||||
BROTLI = 2,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
|
||||
export function cryptoParams_CompressionTypeFromJSON(object: any): CryptoParams_CompressionType {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "VAL_0":
|
||||
return CryptoParams_CompressionType.VAL_0;
|
||||
case "NONE":
|
||||
return CryptoParams_CompressionType.NONE;
|
||||
case 1:
|
||||
case "VAL_1":
|
||||
return CryptoParams_CompressionType.VAL_1;
|
||||
case "GZIP":
|
||||
return CryptoParams_CompressionType.GZIP;
|
||||
case 2:
|
||||
case "VAL_2":
|
||||
return CryptoParams_CompressionType.VAL_2;
|
||||
case "BROTLI":
|
||||
return CryptoParams_CompressionType.BROTLI;
|
||||
case -1:
|
||||
case "UNRECOGNIZED":
|
||||
default:
|
||||
@@ -42,12 +42,12 @@ export function cryptoParams_CompressionTypeFromJSON(object: any): CryptoParams_
|
||||
|
||||
export function cryptoParams_CompressionTypeToJSON(object: CryptoParams_CompressionType): string {
|
||||
switch (object) {
|
||||
case CryptoParams_CompressionType.VAL_0:
|
||||
return "VAL_0";
|
||||
case CryptoParams_CompressionType.VAL_1:
|
||||
return "VAL_1";
|
||||
case CryptoParams_CompressionType.VAL_2:
|
||||
return "VAL_2";
|
||||
case CryptoParams_CompressionType.NONE:
|
||||
return "NONE";
|
||||
case CryptoParams_CompressionType.GZIP:
|
||||
return "GZIP";
|
||||
case CryptoParams_CompressionType.BROTLI:
|
||||
return "BROTLI";
|
||||
case CryptoParams_CompressionType.UNRECOGNIZED:
|
||||
default:
|
||||
return "UNRECOGNIZED";
|
||||
|
||||
@@ -17,10 +17,15 @@ export interface EncryptedPlayerRequest {
|
||||
hmac?: Uint8Array | undefined;
|
||||
reverseProxyConfig?: string | undefined;
|
||||
serializeResponseAsJson?: boolean | undefined;
|
||||
pM?: boolean | undefined;
|
||||
enableAdPlacementsPreroll?: boolean | undefined;
|
||||
enableCompression?: boolean | undefined;
|
||||
ustreamerFlags?: EncryptedPlayerRequest_UstreamerFlags | undefined;
|
||||
unencryptedOnesiePlayerRequest?: Uint8Array | undefined;
|
||||
TQ?: boolean | undefined;
|
||||
useJsonformatterToParsePlayerResponse?: boolean | undefined;
|
||||
}
|
||||
|
||||
export interface EncryptedPlayerRequest_UstreamerFlags {
|
||||
sendVideoPlaybackConfig?: boolean | undefined;
|
||||
}
|
||||
|
||||
function createBaseEncryptedPlayerRequest(): EncryptedPlayerRequest {
|
||||
@@ -32,10 +37,11 @@ function createBaseEncryptedPlayerRequest(): EncryptedPlayerRequest {
|
||||
hmac: new Uint8Array(0),
|
||||
reverseProxyConfig: "",
|
||||
serializeResponseAsJson: false,
|
||||
pM: false,
|
||||
enableAdPlacementsPreroll: false,
|
||||
enableCompression: false,
|
||||
ustreamerFlags: undefined,
|
||||
unencryptedOnesiePlayerRequest: new Uint8Array(0),
|
||||
TQ: false,
|
||||
useJsonformatterToParsePlayerResponse: false,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -62,17 +68,23 @@ export const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest> = {
|
||||
if (message.serializeResponseAsJson !== undefined && message.serializeResponseAsJson !== false) {
|
||||
writer.uint32(80).bool(message.serializeResponseAsJson);
|
||||
}
|
||||
if (message.pM !== undefined && message.pM !== false) {
|
||||
writer.uint32(104).bool(message.pM);
|
||||
if (message.enableAdPlacementsPreroll !== undefined && message.enableAdPlacementsPreroll !== false) {
|
||||
writer.uint32(104).bool(message.enableAdPlacementsPreroll);
|
||||
}
|
||||
if (message.enableCompression !== undefined && message.enableCompression !== false) {
|
||||
writer.uint32(112).bool(message.enableCompression);
|
||||
}
|
||||
if (message.ustreamerFlags !== undefined) {
|
||||
EncryptedPlayerRequest_UstreamerFlags.encode(message.ustreamerFlags, writer.uint32(122).fork()).join();
|
||||
}
|
||||
if (message.unencryptedOnesiePlayerRequest !== undefined && message.unencryptedOnesiePlayerRequest.length !== 0) {
|
||||
writer.uint32(130).bytes(message.unencryptedOnesiePlayerRequest);
|
||||
}
|
||||
if (message.TQ !== undefined && message.TQ !== false) {
|
||||
writer.uint32(136).bool(message.TQ);
|
||||
if (
|
||||
message.useJsonformatterToParsePlayerResponse !== undefined &&
|
||||
message.useJsonformatterToParsePlayerResponse !== false
|
||||
) {
|
||||
writer.uint32(136).bool(message.useJsonformatterToParsePlayerResponse);
|
||||
}
|
||||
return writer;
|
||||
},
|
||||
@@ -138,7 +150,7 @@ export const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.pM = reader.bool();
|
||||
message.enableAdPlacementsPreroll = reader.bool();
|
||||
continue;
|
||||
case 14:
|
||||
if (tag !== 112) {
|
||||
@@ -147,6 +159,13 @@ export const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest> = {
|
||||
|
||||
message.enableCompression = reader.bool();
|
||||
continue;
|
||||
case 15:
|
||||
if (tag !== 122) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.ustreamerFlags = EncryptedPlayerRequest_UstreamerFlags.decode(reader, reader.uint32());
|
||||
continue;
|
||||
case 16:
|
||||
if (tag !== 130) {
|
||||
break;
|
||||
@@ -159,7 +178,7 @@ export const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.TQ = reader.bool();
|
||||
message.useJsonformatterToParsePlayerResponse = reader.bool();
|
||||
continue;
|
||||
}
|
||||
if ((tag & 7) === 4 || tag === 0) {
|
||||
@@ -185,12 +204,19 @@ export const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest> = {
|
||||
serializeResponseAsJson: isSet(object.serializeResponseAsJson)
|
||||
? globalThis.Boolean(object.serializeResponseAsJson)
|
||||
: false,
|
||||
pM: isSet(object.pM) ? globalThis.Boolean(object.pM) : false,
|
||||
enableAdPlacementsPreroll: isSet(object.enableAdPlacementsPreroll)
|
||||
? globalThis.Boolean(object.enableAdPlacementsPreroll)
|
||||
: false,
|
||||
enableCompression: isSet(object.enableCompression) ? globalThis.Boolean(object.enableCompression) : false,
|
||||
ustreamerFlags: isSet(object.ustreamerFlags)
|
||||
? EncryptedPlayerRequest_UstreamerFlags.fromJSON(object.ustreamerFlags)
|
||||
: undefined,
|
||||
unencryptedOnesiePlayerRequest: isSet(object.unencryptedOnesiePlayerRequest)
|
||||
? bytesFromBase64(object.unencryptedOnesiePlayerRequest)
|
||||
: new Uint8Array(0),
|
||||
TQ: isSet(object.TQ) ? globalThis.Boolean(object.TQ) : false,
|
||||
useJsonformatterToParsePlayerResponse: isSet(object.useJsonformatterToParsePlayerResponse)
|
||||
? globalThis.Boolean(object.useJsonformatterToParsePlayerResponse)
|
||||
: false,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -217,17 +243,23 @@ export const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest> = {
|
||||
if (message.serializeResponseAsJson !== undefined && message.serializeResponseAsJson !== false) {
|
||||
obj.serializeResponseAsJson = message.serializeResponseAsJson;
|
||||
}
|
||||
if (message.pM !== undefined && message.pM !== false) {
|
||||
obj.pM = message.pM;
|
||||
if (message.enableAdPlacementsPreroll !== undefined && message.enableAdPlacementsPreroll !== false) {
|
||||
obj.enableAdPlacementsPreroll = message.enableAdPlacementsPreroll;
|
||||
}
|
||||
if (message.enableCompression !== undefined && message.enableCompression !== false) {
|
||||
obj.enableCompression = message.enableCompression;
|
||||
}
|
||||
if (message.ustreamerFlags !== undefined) {
|
||||
obj.ustreamerFlags = EncryptedPlayerRequest_UstreamerFlags.toJSON(message.ustreamerFlags);
|
||||
}
|
||||
if (message.unencryptedOnesiePlayerRequest !== undefined && message.unencryptedOnesiePlayerRequest.length !== 0) {
|
||||
obj.unencryptedOnesiePlayerRequest = base64FromBytes(message.unencryptedOnesiePlayerRequest);
|
||||
}
|
||||
if (message.TQ !== undefined && message.TQ !== false) {
|
||||
obj.TQ = message.TQ;
|
||||
if (
|
||||
message.useJsonformatterToParsePlayerResponse !== undefined &&
|
||||
message.useJsonformatterToParsePlayerResponse !== false
|
||||
) {
|
||||
obj.useJsonformatterToParsePlayerResponse = message.useJsonformatterToParsePlayerResponse;
|
||||
}
|
||||
return obj;
|
||||
},
|
||||
@@ -244,10 +276,78 @@ export const EncryptedPlayerRequest: MessageFns<EncryptedPlayerRequest> = {
|
||||
message.hmac = object.hmac ?? new Uint8Array(0);
|
||||
message.reverseProxyConfig = object.reverseProxyConfig ?? "";
|
||||
message.serializeResponseAsJson = object.serializeResponseAsJson ?? false;
|
||||
message.pM = object.pM ?? false;
|
||||
message.enableAdPlacementsPreroll = object.enableAdPlacementsPreroll ?? false;
|
||||
message.enableCompression = object.enableCompression ?? false;
|
||||
message.ustreamerFlags = (object.ustreamerFlags !== undefined && object.ustreamerFlags !== null)
|
||||
? EncryptedPlayerRequest_UstreamerFlags.fromPartial(object.ustreamerFlags)
|
||||
: undefined;
|
||||
message.unencryptedOnesiePlayerRequest = object.unencryptedOnesiePlayerRequest ?? new Uint8Array(0);
|
||||
message.TQ = object.TQ ?? false;
|
||||
message.useJsonformatterToParsePlayerResponse = object.useJsonformatterToParsePlayerResponse ?? false;
|
||||
return message;
|
||||
},
|
||||
};
|
||||
|
||||
function createBaseEncryptedPlayerRequest_UstreamerFlags(): EncryptedPlayerRequest_UstreamerFlags {
|
||||
return { sendVideoPlaybackConfig: false };
|
||||
}
|
||||
|
||||
export const EncryptedPlayerRequest_UstreamerFlags: MessageFns<EncryptedPlayerRequest_UstreamerFlags> = {
|
||||
encode(message: EncryptedPlayerRequest_UstreamerFlags, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||
if (message.sendVideoPlaybackConfig !== undefined && message.sendVideoPlaybackConfig !== false) {
|
||||
writer.uint32(16).bool(message.sendVideoPlaybackConfig);
|
||||
}
|
||||
return writer;
|
||||
},
|
||||
|
||||
decode(input: BinaryReader | Uint8Array, length?: number): EncryptedPlayerRequest_UstreamerFlags {
|
||||
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
|
||||
let end = length === undefined ? reader.len : reader.pos + length;
|
||||
const message = createBaseEncryptedPlayerRequest_UstreamerFlags();
|
||||
while (reader.pos < end) {
|
||||
const tag = reader.uint32();
|
||||
switch (tag >>> 3) {
|
||||
case 2:
|
||||
if (tag !== 16) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.sendVideoPlaybackConfig = reader.bool();
|
||||
continue;
|
||||
}
|
||||
if ((tag & 7) === 4 || tag === 0) {
|
||||
break;
|
||||
}
|
||||
reader.skip(tag & 7);
|
||||
}
|
||||
return message;
|
||||
},
|
||||
|
||||
fromJSON(object: any): EncryptedPlayerRequest_UstreamerFlags {
|
||||
return {
|
||||
sendVideoPlaybackConfig: isSet(object.sendVideoPlaybackConfig)
|
||||
? globalThis.Boolean(object.sendVideoPlaybackConfig)
|
||||
: false,
|
||||
};
|
||||
},
|
||||
|
||||
toJSON(message: EncryptedPlayerRequest_UstreamerFlags): unknown {
|
||||
const obj: any = {};
|
||||
if (message.sendVideoPlaybackConfig !== undefined && message.sendVideoPlaybackConfig !== false) {
|
||||
obj.sendVideoPlaybackConfig = message.sendVideoPlaybackConfig;
|
||||
}
|
||||
return obj;
|
||||
},
|
||||
|
||||
create<I extends Exact<DeepPartial<EncryptedPlayerRequest_UstreamerFlags>, I>>(
|
||||
base?: I,
|
||||
): EncryptedPlayerRequest_UstreamerFlags {
|
||||
return EncryptedPlayerRequest_UstreamerFlags.fromPartial(base ?? ({} as any));
|
||||
},
|
||||
fromPartial<I extends Exact<DeepPartial<EncryptedPlayerRequest_UstreamerFlags>, I>>(
|
||||
object: I,
|
||||
): EncryptedPlayerRequest_UstreamerFlags {
|
||||
const message = createBaseEncryptedPlayerRequest_UstreamerFlags();
|
||||
message.sendVideoPlaybackConfig = object.sendVideoPlaybackConfig ?? false;
|
||||
return message;
|
||||
},
|
||||
};
|
||||
|
||||
@@ -14,7 +14,7 @@ export interface FormatInitializationMetadata {
|
||||
videoId?: string | undefined;
|
||||
formatId?: FormatId | undefined;
|
||||
endTimeMs?: number | undefined;
|
||||
field4?: number | undefined;
|
||||
endSegmentNumber?: number | undefined;
|
||||
mimeType?: string | undefined;
|
||||
initRange?: InitRange | undefined;
|
||||
indexRange?: IndexRange | undefined;
|
||||
@@ -28,7 +28,7 @@ function createBaseFormatInitializationMetadata(): FormatInitializationMetadata
|
||||
videoId: "",
|
||||
formatId: undefined,
|
||||
endTimeMs: 0,
|
||||
field4: 0,
|
||||
endSegmentNumber: 0,
|
||||
mimeType: "",
|
||||
initRange: undefined,
|
||||
indexRange: undefined,
|
||||
@@ -49,8 +49,8 @@ export const FormatInitializationMetadata: MessageFns<FormatInitializationMetada
|
||||
if (message.endTimeMs !== undefined && message.endTimeMs !== 0) {
|
||||
writer.uint32(24).int32(message.endTimeMs);
|
||||
}
|
||||
if (message.field4 !== undefined && message.field4 !== 0) {
|
||||
writer.uint32(32).int32(message.field4);
|
||||
if (message.endSegmentNumber !== undefined && message.endSegmentNumber !== 0) {
|
||||
writer.uint32(32).int64(message.endSegmentNumber);
|
||||
}
|
||||
if (message.mimeType !== undefined && message.mimeType !== "") {
|
||||
writer.uint32(42).string(message.mimeType);
|
||||
@@ -106,7 +106,7 @@ export const FormatInitializationMetadata: MessageFns<FormatInitializationMetada
|
||||
break;
|
||||
}
|
||||
|
||||
message.field4 = reader.int32();
|
||||
message.endSegmentNumber = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 5:
|
||||
if (tag !== 42) {
|
||||
@@ -164,7 +164,7 @@ export const FormatInitializationMetadata: MessageFns<FormatInitializationMetada
|
||||
videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : "",
|
||||
formatId: isSet(object.formatId) ? FormatId.fromJSON(object.formatId) : undefined,
|
||||
endTimeMs: isSet(object.endTimeMs) ? globalThis.Number(object.endTimeMs) : 0,
|
||||
field4: isSet(object.field4) ? globalThis.Number(object.field4) : 0,
|
||||
endSegmentNumber: isSet(object.endSegmentNumber) ? globalThis.Number(object.endSegmentNumber) : 0,
|
||||
mimeType: isSet(object.mimeType) ? globalThis.String(object.mimeType) : "",
|
||||
initRange: isSet(object.initRange) ? InitRange.fromJSON(object.initRange) : undefined,
|
||||
indexRange: isSet(object.indexRange) ? IndexRange.fromJSON(object.indexRange) : undefined,
|
||||
@@ -185,8 +185,8 @@ export const FormatInitializationMetadata: MessageFns<FormatInitializationMetada
|
||||
if (message.endTimeMs !== undefined && message.endTimeMs !== 0) {
|
||||
obj.endTimeMs = Math.round(message.endTimeMs);
|
||||
}
|
||||
if (message.field4 !== undefined && message.field4 !== 0) {
|
||||
obj.field4 = Math.round(message.field4);
|
||||
if (message.endSegmentNumber !== undefined && message.endSegmentNumber !== 0) {
|
||||
obj.endSegmentNumber = Math.round(message.endSegmentNumber);
|
||||
}
|
||||
if (message.mimeType !== undefined && message.mimeType !== "") {
|
||||
obj.mimeType = message.mimeType;
|
||||
@@ -219,7 +219,7 @@ export const FormatInitializationMetadata: MessageFns<FormatInitializationMetada
|
||||
? FormatId.fromPartial(object.formatId)
|
||||
: undefined;
|
||||
message.endTimeMs = object.endTimeMs ?? 0;
|
||||
message.field4 = object.field4 ?? 0;
|
||||
message.endSegmentNumber = object.endSegmentNumber ?? 0;
|
||||
message.mimeType = object.mimeType ?? "";
|
||||
message.initRange = (object.initRange !== undefined && object.initRange !== null)
|
||||
? InitRange.fromPartial(object.initRange)
|
||||
@@ -246,6 +246,17 @@ type KeysOfUnion<T> = T extends T ? keyof T : never;
|
||||
export type Exact<P, I extends P> = P extends Builtin ? P
|
||||
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
|
||||
|
||||
function longToNumber(int64: { toString(): string }): number {
|
||||
const num = globalThis.Number(int64.toString());
|
||||
if (num > globalThis.Number.MAX_SAFE_INTEGER) {
|
||||
throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER");
|
||||
}
|
||||
if (num < globalThis.Number.MIN_SAFE_INTEGER) {
|
||||
throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER");
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
function isSet(value: any): boolean {
|
||||
return value !== null && value !== undefined;
|
||||
}
|
||||
|
||||
@@ -10,54 +10,69 @@ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||
export const protobufPackage = "video_streaming";
|
||||
|
||||
export interface LiveMetadata {
|
||||
broadcastId?: string | undefined;
|
||||
headSequenceNumber?: number | undefined;
|
||||
headTimeMs?: number | undefined;
|
||||
wallTimeMs?: number | undefined;
|
||||
field10?: number | undefined;
|
||||
field12?: number | undefined;
|
||||
field13?: number | undefined;
|
||||
headTimeUsec?: number | undefined;
|
||||
field15?: number | undefined;
|
||||
videoId?: string | undefined;
|
||||
postLiveDvr?: boolean | undefined;
|
||||
headm?: number | undefined;
|
||||
minSeekableTimeTicks?: number | undefined;
|
||||
minSeekableTimescale?: number | undefined;
|
||||
maxSeekableTimeTicks?: number | undefined;
|
||||
maxSeekableTimescale?: number | undefined;
|
||||
}
|
||||
|
||||
function createBaseLiveMetadata(): LiveMetadata {
|
||||
return {
|
||||
broadcastId: "",
|
||||
headSequenceNumber: 0,
|
||||
headTimeMs: 0,
|
||||
wallTimeMs: 0,
|
||||
field10: 0,
|
||||
field12: 0,
|
||||
field13: 0,
|
||||
headTimeUsec: 0,
|
||||
field15: 0,
|
||||
videoId: "",
|
||||
postLiveDvr: false,
|
||||
headm: 0,
|
||||
minSeekableTimeTicks: 0,
|
||||
minSeekableTimescale: 0,
|
||||
maxSeekableTimeTicks: 0,
|
||||
maxSeekableTimescale: 0,
|
||||
};
|
||||
}
|
||||
|
||||
export const LiveMetadata: MessageFns<LiveMetadata> = {
|
||||
encode(message: LiveMetadata, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
|
||||
if (message.broadcastId !== undefined && message.broadcastId !== "") {
|
||||
writer.uint32(10).string(message.broadcastId);
|
||||
}
|
||||
if (message.headSequenceNumber !== undefined && message.headSequenceNumber !== 0) {
|
||||
writer.uint32(24).uint32(message.headSequenceNumber);
|
||||
writer.uint32(24).int64(message.headSequenceNumber);
|
||||
}
|
||||
if (message.headTimeMs !== undefined && message.headTimeMs !== 0) {
|
||||
writer.uint32(32).uint64(message.headTimeMs);
|
||||
writer.uint32(32).int64(message.headTimeMs);
|
||||
}
|
||||
if (message.wallTimeMs !== undefined && message.wallTimeMs !== 0) {
|
||||
writer.uint32(40).uint64(message.wallTimeMs);
|
||||
writer.uint32(40).int64(message.wallTimeMs);
|
||||
}
|
||||
if (message.field10 !== undefined && message.field10 !== 0) {
|
||||
writer.uint32(80).uint64(message.field10);
|
||||
if (message.videoId !== undefined && message.videoId !== "") {
|
||||
writer.uint32(50).string(message.videoId);
|
||||
}
|
||||
if (message.field12 !== undefined && message.field12 !== 0) {
|
||||
writer.uint32(96).uint64(message.field12);
|
||||
if (message.postLiveDvr !== undefined && message.postLiveDvr !== false) {
|
||||
writer.uint32(64).bool(message.postLiveDvr);
|
||||
}
|
||||
if (message.field13 !== undefined && message.field13 !== 0) {
|
||||
writer.uint32(104).uint64(message.field13);
|
||||
if (message.headm !== undefined && message.headm !== 0) {
|
||||
writer.uint32(80).int64(message.headm);
|
||||
}
|
||||
if (message.headTimeUsec !== undefined && message.headTimeUsec !== 0) {
|
||||
writer.uint32(112).uint64(message.headTimeUsec);
|
||||
if (message.minSeekableTimeTicks !== undefined && message.minSeekableTimeTicks !== 0) {
|
||||
writer.uint32(96).int64(message.minSeekableTimeTicks);
|
||||
}
|
||||
if (message.field15 !== undefined && message.field15 !== 0) {
|
||||
writer.uint32(120).uint64(message.field15);
|
||||
if (message.minSeekableTimescale !== undefined && message.minSeekableTimescale !== 0) {
|
||||
writer.uint32(104).int32(message.minSeekableTimescale);
|
||||
}
|
||||
if (message.maxSeekableTimeTicks !== undefined && message.maxSeekableTimeTicks !== 0) {
|
||||
writer.uint32(112).int64(message.maxSeekableTimeTicks);
|
||||
}
|
||||
if (message.maxSeekableTimescale !== undefined && message.maxSeekableTimescale !== 0) {
|
||||
writer.uint32(120).int32(message.maxSeekableTimescale);
|
||||
}
|
||||
return writer;
|
||||
},
|
||||
@@ -69,61 +84,82 @@ export const LiveMetadata: MessageFns<LiveMetadata> = {
|
||||
while (reader.pos < end) {
|
||||
const tag = reader.uint32();
|
||||
switch (tag >>> 3) {
|
||||
case 1:
|
||||
if (tag !== 10) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.broadcastId = reader.string();
|
||||
continue;
|
||||
case 3:
|
||||
if (tag !== 24) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.headSequenceNumber = reader.uint32();
|
||||
message.headSequenceNumber = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 4:
|
||||
if (tag !== 32) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.headTimeMs = longToNumber(reader.uint64());
|
||||
message.headTimeMs = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 5:
|
||||
if (tag !== 40) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.wallTimeMs = longToNumber(reader.uint64());
|
||||
message.wallTimeMs = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 6:
|
||||
if (tag !== 50) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.videoId = reader.string();
|
||||
continue;
|
||||
case 8:
|
||||
if (tag !== 64) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.postLiveDvr = reader.bool();
|
||||
continue;
|
||||
case 10:
|
||||
if (tag !== 80) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.field10 = longToNumber(reader.uint64());
|
||||
message.headm = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 12:
|
||||
if (tag !== 96) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.field12 = longToNumber(reader.uint64());
|
||||
message.minSeekableTimeTicks = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 13:
|
||||
if (tag !== 104) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.field13 = longToNumber(reader.uint64());
|
||||
message.minSeekableTimescale = reader.int32();
|
||||
continue;
|
||||
case 14:
|
||||
if (tag !== 112) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.headTimeUsec = longToNumber(reader.uint64());
|
||||
message.maxSeekableTimeTicks = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 15:
|
||||
if (tag !== 120) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.field15 = longToNumber(reader.uint64());
|
||||
message.maxSeekableTimescale = reader.int32();
|
||||
continue;
|
||||
}
|
||||
if ((tag & 7) === 4 || tag === 0) {
|
||||
@@ -136,19 +172,25 @@ export const LiveMetadata: MessageFns<LiveMetadata> = {
|
||||
|
||||
fromJSON(object: any): LiveMetadata {
|
||||
return {
|
||||
broadcastId: isSet(object.broadcastId) ? globalThis.String(object.broadcastId) : "",
|
||||
headSequenceNumber: isSet(object.headSequenceNumber) ? globalThis.Number(object.headSequenceNumber) : 0,
|
||||
headTimeMs: isSet(object.headTimeMs) ? globalThis.Number(object.headTimeMs) : 0,
|
||||
wallTimeMs: isSet(object.wallTimeMs) ? globalThis.Number(object.wallTimeMs) : 0,
|
||||
field10: isSet(object.field10) ? globalThis.Number(object.field10) : 0,
|
||||
field12: isSet(object.field12) ? globalThis.Number(object.field12) : 0,
|
||||
field13: isSet(object.field13) ? globalThis.Number(object.field13) : 0,
|
||||
headTimeUsec: isSet(object.headTimeUsec) ? globalThis.Number(object.headTimeUsec) : 0,
|
||||
field15: isSet(object.field15) ? globalThis.Number(object.field15) : 0,
|
||||
videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : "",
|
||||
postLiveDvr: isSet(object.postLiveDvr) ? globalThis.Boolean(object.postLiveDvr) : false,
|
||||
headm: isSet(object.headm) ? globalThis.Number(object.headm) : 0,
|
||||
minSeekableTimeTicks: isSet(object.minSeekableTimeTicks) ? globalThis.Number(object.minSeekableTimeTicks) : 0,
|
||||
minSeekableTimescale: isSet(object.minSeekableTimescale) ? globalThis.Number(object.minSeekableTimescale) : 0,
|
||||
maxSeekableTimeTicks: isSet(object.maxSeekableTimeTicks) ? globalThis.Number(object.maxSeekableTimeTicks) : 0,
|
||||
maxSeekableTimescale: isSet(object.maxSeekableTimescale) ? globalThis.Number(object.maxSeekableTimescale) : 0,
|
||||
};
|
||||
},
|
||||
|
||||
toJSON(message: LiveMetadata): unknown {
|
||||
const obj: any = {};
|
||||
if (message.broadcastId !== undefined && message.broadcastId !== "") {
|
||||
obj.broadcastId = message.broadcastId;
|
||||
}
|
||||
if (message.headSequenceNumber !== undefined && message.headSequenceNumber !== 0) {
|
||||
obj.headSequenceNumber = Math.round(message.headSequenceNumber);
|
||||
}
|
||||
@@ -158,20 +200,26 @@ export const LiveMetadata: MessageFns<LiveMetadata> = {
|
||||
if (message.wallTimeMs !== undefined && message.wallTimeMs !== 0) {
|
||||
obj.wallTimeMs = Math.round(message.wallTimeMs);
|
||||
}
|
||||
if (message.field10 !== undefined && message.field10 !== 0) {
|
||||
obj.field10 = Math.round(message.field10);
|
||||
if (message.videoId !== undefined && message.videoId !== "") {
|
||||
obj.videoId = message.videoId;
|
||||
}
|
||||
if (message.field12 !== undefined && message.field12 !== 0) {
|
||||
obj.field12 = Math.round(message.field12);
|
||||
if (message.postLiveDvr !== undefined && message.postLiveDvr !== false) {
|
||||
obj.postLiveDvr = message.postLiveDvr;
|
||||
}
|
||||
if (message.field13 !== undefined && message.field13 !== 0) {
|
||||
obj.field13 = Math.round(message.field13);
|
||||
if (message.headm !== undefined && message.headm !== 0) {
|
||||
obj.headm = Math.round(message.headm);
|
||||
}
|
||||
if (message.headTimeUsec !== undefined && message.headTimeUsec !== 0) {
|
||||
obj.headTimeUsec = Math.round(message.headTimeUsec);
|
||||
if (message.minSeekableTimeTicks !== undefined && message.minSeekableTimeTicks !== 0) {
|
||||
obj.minSeekableTimeTicks = Math.round(message.minSeekableTimeTicks);
|
||||
}
|
||||
if (message.field15 !== undefined && message.field15 !== 0) {
|
||||
obj.field15 = Math.round(message.field15);
|
||||
if (message.minSeekableTimescale !== undefined && message.minSeekableTimescale !== 0) {
|
||||
obj.minSeekableTimescale = Math.round(message.minSeekableTimescale);
|
||||
}
|
||||
if (message.maxSeekableTimeTicks !== undefined && message.maxSeekableTimeTicks !== 0) {
|
||||
obj.maxSeekableTimeTicks = Math.round(message.maxSeekableTimeTicks);
|
||||
}
|
||||
if (message.maxSeekableTimescale !== undefined && message.maxSeekableTimescale !== 0) {
|
||||
obj.maxSeekableTimescale = Math.round(message.maxSeekableTimescale);
|
||||
}
|
||||
return obj;
|
||||
},
|
||||
@@ -181,14 +229,17 @@ export const LiveMetadata: MessageFns<LiveMetadata> = {
|
||||
},
|
||||
fromPartial<I extends Exact<DeepPartial<LiveMetadata>, I>>(object: I): LiveMetadata {
|
||||
const message = createBaseLiveMetadata();
|
||||
message.broadcastId = object.broadcastId ?? "";
|
||||
message.headSequenceNumber = object.headSequenceNumber ?? 0;
|
||||
message.headTimeMs = object.headTimeMs ?? 0;
|
||||
message.wallTimeMs = object.wallTimeMs ?? 0;
|
||||
message.field10 = object.field10 ?? 0;
|
||||
message.field12 = object.field12 ?? 0;
|
||||
message.field13 = object.field13 ?? 0;
|
||||
message.headTimeUsec = object.headTimeUsec ?? 0;
|
||||
message.field15 = object.field15 ?? 0;
|
||||
message.videoId = object.videoId ?? "";
|
||||
message.postLiveDvr = object.postLiveDvr ?? false;
|
||||
message.headm = object.headm ?? 0;
|
||||
message.minSeekableTimeTicks = object.minSeekableTimeTicks ?? 0;
|
||||
message.minSeekableTimescale = object.minSeekableTimescale ?? 0;
|
||||
message.maxSeekableTimeTicks = object.maxSeekableTimeTicks ?? 0;
|
||||
message.maxSeekableTimescale = object.maxSeekableTimescale ?? 0;
|
||||
return message;
|
||||
},
|
||||
};
|
||||
|
||||
@@ -17,8 +17,8 @@ export interface MediaHeader {
|
||||
itag?: number | undefined;
|
||||
lmt?: number | undefined;
|
||||
xtags?: string | undefined;
|
||||
startDataRange?: number | undefined;
|
||||
compression?: MediaHeader_Compression | undefined;
|
||||
startRange?: number | undefined;
|
||||
compressionAlgorithm?: MediaHeader_CompressionAlgorithm | undefined;
|
||||
isInitSeg?: boolean | undefined;
|
||||
sequenceNumber?: number | undefined;
|
||||
field10?: number | undefined;
|
||||
@@ -29,40 +29,40 @@ export interface MediaHeader {
|
||||
timeRange?: TimeRange | undefined;
|
||||
}
|
||||
|
||||
export enum MediaHeader_Compression {
|
||||
VAL0 = 0,
|
||||
VAL1 = 1,
|
||||
export enum MediaHeader_CompressionAlgorithm {
|
||||
UNKNOWN = 0,
|
||||
NONE = 1,
|
||||
GZIP = 2,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
|
||||
export function mediaHeader_CompressionFromJSON(object: any): MediaHeader_Compression {
|
||||
export function mediaHeader_CompressionAlgorithmFromJSON(object: any): MediaHeader_CompressionAlgorithm {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "VAL0":
|
||||
return MediaHeader_Compression.VAL0;
|
||||
case "UNKNOWN":
|
||||
return MediaHeader_CompressionAlgorithm.UNKNOWN;
|
||||
case 1:
|
||||
case "VAL1":
|
||||
return MediaHeader_Compression.VAL1;
|
||||
case "NONE":
|
||||
return MediaHeader_CompressionAlgorithm.NONE;
|
||||
case 2:
|
||||
case "GZIP":
|
||||
return MediaHeader_Compression.GZIP;
|
||||
return MediaHeader_CompressionAlgorithm.GZIP;
|
||||
case -1:
|
||||
case "UNRECOGNIZED":
|
||||
default:
|
||||
return MediaHeader_Compression.UNRECOGNIZED;
|
||||
return MediaHeader_CompressionAlgorithm.UNRECOGNIZED;
|
||||
}
|
||||
}
|
||||
|
||||
export function mediaHeader_CompressionToJSON(object: MediaHeader_Compression): string {
|
||||
export function mediaHeader_CompressionAlgorithmToJSON(object: MediaHeader_CompressionAlgorithm): string {
|
||||
switch (object) {
|
||||
case MediaHeader_Compression.VAL0:
|
||||
return "VAL0";
|
||||
case MediaHeader_Compression.VAL1:
|
||||
return "VAL1";
|
||||
case MediaHeader_Compression.GZIP:
|
||||
case MediaHeader_CompressionAlgorithm.UNKNOWN:
|
||||
return "UNKNOWN";
|
||||
case MediaHeader_CompressionAlgorithm.NONE:
|
||||
return "NONE";
|
||||
case MediaHeader_CompressionAlgorithm.GZIP:
|
||||
return "GZIP";
|
||||
case MediaHeader_Compression.UNRECOGNIZED:
|
||||
case MediaHeader_CompressionAlgorithm.UNRECOGNIZED:
|
||||
default:
|
||||
return "UNRECOGNIZED";
|
||||
}
|
||||
@@ -75,8 +75,8 @@ function createBaseMediaHeader(): MediaHeader {
|
||||
itag: 0,
|
||||
lmt: 0,
|
||||
xtags: "",
|
||||
startDataRange: 0,
|
||||
compression: 0,
|
||||
startRange: 0,
|
||||
compressionAlgorithm: 0,
|
||||
isInitSeg: false,
|
||||
sequenceNumber: 0,
|
||||
field10: 0,
|
||||
@@ -105,11 +105,11 @@ export const MediaHeader: MessageFns<MediaHeader> = {
|
||||
if (message.xtags !== undefined && message.xtags !== "") {
|
||||
writer.uint32(42).string(message.xtags);
|
||||
}
|
||||
if (message.startDataRange !== undefined && message.startDataRange !== 0) {
|
||||
writer.uint32(48).int32(message.startDataRange);
|
||||
if (message.startRange !== undefined && message.startRange !== 0) {
|
||||
writer.uint32(48).int64(message.startRange);
|
||||
}
|
||||
if (message.compression !== undefined && message.compression !== 0) {
|
||||
writer.uint32(56).int32(message.compression);
|
||||
if (message.compressionAlgorithm !== undefined && message.compressionAlgorithm !== 0) {
|
||||
writer.uint32(56).int32(message.compressionAlgorithm);
|
||||
}
|
||||
if (message.isInitSeg !== undefined && message.isInitSeg !== false) {
|
||||
writer.uint32(64).bool(message.isInitSeg);
|
||||
@@ -121,10 +121,10 @@ export const MediaHeader: MessageFns<MediaHeader> = {
|
||||
writer.uint32(80).int64(message.field10);
|
||||
}
|
||||
if (message.startMs !== undefined && message.startMs !== 0) {
|
||||
writer.uint32(88).int32(message.startMs);
|
||||
writer.uint32(88).int64(message.startMs);
|
||||
}
|
||||
if (message.durationMs !== undefined && message.durationMs !== 0) {
|
||||
writer.uint32(96).int32(message.durationMs);
|
||||
writer.uint32(96).int64(message.durationMs);
|
||||
}
|
||||
if (message.formatId !== undefined) {
|
||||
FormatId.encode(message.formatId, writer.uint32(106).fork()).join();
|
||||
@@ -185,14 +185,14 @@ export const MediaHeader: MessageFns<MediaHeader> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.startDataRange = reader.int32();
|
||||
message.startRange = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 7:
|
||||
if (tag !== 56) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.compression = reader.int32() as any;
|
||||
message.compressionAlgorithm = reader.int32() as any;
|
||||
continue;
|
||||
case 8:
|
||||
if (tag !== 64) {
|
||||
@@ -220,14 +220,14 @@ export const MediaHeader: MessageFns<MediaHeader> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.startMs = reader.int32();
|
||||
message.startMs = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 12:
|
||||
if (tag !== 96) {
|
||||
break;
|
||||
}
|
||||
|
||||
message.durationMs = reader.int32();
|
||||
message.durationMs = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 13:
|
||||
if (tag !== 106) {
|
||||
@@ -266,8 +266,10 @@ export const MediaHeader: MessageFns<MediaHeader> = {
|
||||
itag: isSet(object.itag) ? globalThis.Number(object.itag) : 0,
|
||||
lmt: isSet(object.lmt) ? globalThis.Number(object.lmt) : 0,
|
||||
xtags: isSet(object.xtags) ? globalThis.String(object.xtags) : "",
|
||||
startDataRange: isSet(object.startDataRange) ? globalThis.Number(object.startDataRange) : 0,
|
||||
compression: isSet(object.compression) ? mediaHeader_CompressionFromJSON(object.compression) : 0,
|
||||
startRange: isSet(object.startRange) ? globalThis.Number(object.startRange) : 0,
|
||||
compressionAlgorithm: isSet(object.compressionAlgorithm)
|
||||
? mediaHeader_CompressionAlgorithmFromJSON(object.compressionAlgorithm)
|
||||
: 0,
|
||||
isInitSeg: isSet(object.isInitSeg) ? globalThis.Boolean(object.isInitSeg) : false,
|
||||
sequenceNumber: isSet(object.sequenceNumber) ? globalThis.Number(object.sequenceNumber) : 0,
|
||||
field10: isSet(object.field10) ? globalThis.Number(object.field10) : 0,
|
||||
@@ -296,11 +298,11 @@ export const MediaHeader: MessageFns<MediaHeader> = {
|
||||
if (message.xtags !== undefined && message.xtags !== "") {
|
||||
obj.xtags = message.xtags;
|
||||
}
|
||||
if (message.startDataRange !== undefined && message.startDataRange !== 0) {
|
||||
obj.startDataRange = Math.round(message.startDataRange);
|
||||
if (message.startRange !== undefined && message.startRange !== 0) {
|
||||
obj.startRange = Math.round(message.startRange);
|
||||
}
|
||||
if (message.compression !== undefined && message.compression !== 0) {
|
||||
obj.compression = mediaHeader_CompressionToJSON(message.compression);
|
||||
if (message.compressionAlgorithm !== undefined && message.compressionAlgorithm !== 0) {
|
||||
obj.compressionAlgorithm = mediaHeader_CompressionAlgorithmToJSON(message.compressionAlgorithm);
|
||||
}
|
||||
if (message.isInitSeg !== undefined && message.isInitSeg !== false) {
|
||||
obj.isInitSeg = message.isInitSeg;
|
||||
@@ -339,8 +341,8 @@ export const MediaHeader: MessageFns<MediaHeader> = {
|
||||
message.itag = object.itag ?? 0;
|
||||
message.lmt = object.lmt ?? 0;
|
||||
message.xtags = object.xtags ?? "";
|
||||
message.startDataRange = object.startDataRange ?? 0;
|
||||
message.compression = object.compression ?? 0;
|
||||
message.startRange = object.startRange ?? 0;
|
||||
message.compressionAlgorithm = object.compressionAlgorithm ?? 0;
|
||||
message.isInitSeg = object.isInitSeg ?? false;
|
||||
message.sequenceNumber = object.sequenceNumber ?? 0;
|
||||
message.field10 = object.field10 ?? 0;
|
||||
|
||||
@@ -17,7 +17,7 @@ export interface OnesieHeader {
|
||||
itag?: string | undefined;
|
||||
cryptoParams?: CryptoParams | undefined;
|
||||
lastModified?: number | undefined;
|
||||
mediaSizeBytes?: number | undefined;
|
||||
expectedMediaSizeBytes?: number | undefined;
|
||||
restrictedFormats: string[];
|
||||
xtags?: string | undefined;
|
||||
sequenceNumber?: number | undefined;
|
||||
@@ -40,7 +40,7 @@ function createBaseOnesieHeader(): OnesieHeader {
|
||||
itag: "",
|
||||
cryptoParams: undefined,
|
||||
lastModified: 0,
|
||||
mediaSizeBytes: 0,
|
||||
expectedMediaSizeBytes: 0,
|
||||
restrictedFormats: [],
|
||||
xtags: "",
|
||||
sequenceNumber: 0,
|
||||
@@ -66,8 +66,8 @@ export const OnesieHeader: MessageFns<OnesieHeader> = {
|
||||
if (message.lastModified !== undefined && message.lastModified !== 0) {
|
||||
writer.uint32(40).uint64(message.lastModified);
|
||||
}
|
||||
if (message.mediaSizeBytes !== undefined && message.mediaSizeBytes !== 0) {
|
||||
writer.uint32(56).int64(message.mediaSizeBytes);
|
||||
if (message.expectedMediaSizeBytes !== undefined && message.expectedMediaSizeBytes !== 0) {
|
||||
writer.uint32(56).int64(message.expectedMediaSizeBytes);
|
||||
}
|
||||
for (const v of message.restrictedFormats) {
|
||||
writer.uint32(90).string(v!);
|
||||
@@ -134,7 +134,7 @@ export const OnesieHeader: MessageFns<OnesieHeader> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.mediaSizeBytes = longToNumber(reader.int64());
|
||||
message.expectedMediaSizeBytes = longToNumber(reader.int64());
|
||||
continue;
|
||||
case 11:
|
||||
if (tag !== 90) {
|
||||
@@ -187,7 +187,9 @@ export const OnesieHeader: MessageFns<OnesieHeader> = {
|
||||
itag: isSet(object.itag) ? globalThis.String(object.itag) : "",
|
||||
cryptoParams: isSet(object.cryptoParams) ? CryptoParams.fromJSON(object.cryptoParams) : undefined,
|
||||
lastModified: isSet(object.lastModified) ? globalThis.Number(object.lastModified) : 0,
|
||||
mediaSizeBytes: isSet(object.mediaSizeBytes) ? globalThis.Number(object.mediaSizeBytes) : 0,
|
||||
expectedMediaSizeBytes: isSet(object.expectedMediaSizeBytes)
|
||||
? globalThis.Number(object.expectedMediaSizeBytes)
|
||||
: 0,
|
||||
restrictedFormats: globalThis.Array.isArray(object?.restrictedFormats)
|
||||
? object.restrictedFormats.map((e: any) => globalThis.String(e))
|
||||
: [],
|
||||
@@ -215,8 +217,8 @@ export const OnesieHeader: MessageFns<OnesieHeader> = {
|
||||
if (message.lastModified !== undefined && message.lastModified !== 0) {
|
||||
obj.lastModified = Math.round(message.lastModified);
|
||||
}
|
||||
if (message.mediaSizeBytes !== undefined && message.mediaSizeBytes !== 0) {
|
||||
obj.mediaSizeBytes = Math.round(message.mediaSizeBytes);
|
||||
if (message.expectedMediaSizeBytes !== undefined && message.expectedMediaSizeBytes !== 0) {
|
||||
obj.expectedMediaSizeBytes = Math.round(message.expectedMediaSizeBytes);
|
||||
}
|
||||
if (message.restrictedFormats?.length) {
|
||||
obj.restrictedFormats = message.restrictedFormats;
|
||||
@@ -248,7 +250,7 @@ export const OnesieHeader: MessageFns<OnesieHeader> = {
|
||||
? CryptoParams.fromPartial(object.cryptoParams)
|
||||
: undefined;
|
||||
message.lastModified = object.lastModified ?? 0;
|
||||
message.mediaSizeBytes = object.mediaSizeBytes ?? 0;
|
||||
message.expectedMediaSizeBytes = object.expectedMediaSizeBytes ?? 0;
|
||||
message.restrictedFormats = object.restrictedFormats?.map((e) => e) || [];
|
||||
message.xtags = object.xtags ?? "";
|
||||
message.sequenceNumber = object.sequenceNumber ?? 0;
|
||||
|
||||
@@ -9,31 +9,17 @@
|
||||
export const protobufPackage = "video_streaming";
|
||||
|
||||
export enum OnesieHeaderType {
|
||||
PLAYER_RESPONSE = 0,
|
||||
HEADER_TYPE_1 = 1,
|
||||
ONESIE_PLAYER_RESPONSE = 0,
|
||||
MEDIA = 1,
|
||||
MEDIA_DECRYPTION_KEY = 2,
|
||||
HEADER_TYPE_3 = 3,
|
||||
HEADER_TYPE_4 = 4,
|
||||
HEADER_TYPE_5 = 5,
|
||||
NEW_HOST = 6,
|
||||
HEADER_TYPE_7 = 7,
|
||||
HEADER_TYPE_8 = 8,
|
||||
HEADER_TYPE_9 = 9,
|
||||
HEADER_TYPE_10 = 10,
|
||||
HEADER_TYPE_11 = 11,
|
||||
HEADER_TYPE_12 = 12,
|
||||
HEADER_TYPE_13 = 13,
|
||||
RESTRICTED_FORMATS_HINT = 14,
|
||||
HEADER_TYPE_15 = 15,
|
||||
CLEAR_MEDIA = 3,
|
||||
CLEAR_INIT_SEGMENT = 4,
|
||||
ACK = 5,
|
||||
MEDIA_STREAMER_HOSTNAME = 6,
|
||||
MEDIA_SIZE_HINT = 7,
|
||||
PLAYER_SERVICE_RESPONSE_PUSH_URL = 8,
|
||||
LAST_HIGH_PRIORITY_HINT = 9,
|
||||
STREAM_METADATA = 16,
|
||||
HEADER_TYPE_17 = 17,
|
||||
HEADER_TYPE_18 = 18,
|
||||
HEADER_TYPE_19 = 19,
|
||||
HEADER_TYPE_20 = 20,
|
||||
HEADER_TYPE_21 = 21,
|
||||
HEADER_TYPE_22 = 22,
|
||||
HEADER_TYPE_23 = 23,
|
||||
HEADER_TYPE_24 = 24,
|
||||
ENCRYPTED_INNERTUBE_RESPONSE_PART = 25,
|
||||
UNRECOGNIZED = -1,
|
||||
}
|
||||
@@ -41,80 +27,38 @@ export enum OnesieHeaderType {
|
||||
export function onesieHeaderTypeFromJSON(object: any): OnesieHeaderType {
|
||||
switch (object) {
|
||||
case 0:
|
||||
case "PLAYER_RESPONSE":
|
||||
return OnesieHeaderType.PLAYER_RESPONSE;
|
||||
case "ONESIE_PLAYER_RESPONSE":
|
||||
return OnesieHeaderType.ONESIE_PLAYER_RESPONSE;
|
||||
case 1:
|
||||
case "HEADER_TYPE_1":
|
||||
return OnesieHeaderType.HEADER_TYPE_1;
|
||||
case "MEDIA":
|
||||
return OnesieHeaderType.MEDIA;
|
||||
case 2:
|
||||
case "MEDIA_DECRYPTION_KEY":
|
||||
return OnesieHeaderType.MEDIA_DECRYPTION_KEY;
|
||||
case 3:
|
||||
case "HEADER_TYPE_3":
|
||||
return OnesieHeaderType.HEADER_TYPE_3;
|
||||
case "CLEAR_MEDIA":
|
||||
return OnesieHeaderType.CLEAR_MEDIA;
|
||||
case 4:
|
||||
case "HEADER_TYPE_4":
|
||||
return OnesieHeaderType.HEADER_TYPE_4;
|
||||
case "CLEAR_INIT_SEGMENT":
|
||||
return OnesieHeaderType.CLEAR_INIT_SEGMENT;
|
||||
case 5:
|
||||
case "HEADER_TYPE_5":
|
||||
return OnesieHeaderType.HEADER_TYPE_5;
|
||||
case "ACK":
|
||||
return OnesieHeaderType.ACK;
|
||||
case 6:
|
||||
case "NEW_HOST":
|
||||
return OnesieHeaderType.NEW_HOST;
|
||||
case "MEDIA_STREAMER_HOSTNAME":
|
||||
return OnesieHeaderType.MEDIA_STREAMER_HOSTNAME;
|
||||
case 7:
|
||||
case "HEADER_TYPE_7":
|
||||
return OnesieHeaderType.HEADER_TYPE_7;
|
||||
case "MEDIA_SIZE_HINT":
|
||||
return OnesieHeaderType.MEDIA_SIZE_HINT;
|
||||
case 8:
|
||||
case "HEADER_TYPE_8":
|
||||
return OnesieHeaderType.HEADER_TYPE_8;
|
||||
case "PLAYER_SERVICE_RESPONSE_PUSH_URL":
|
||||
return OnesieHeaderType.PLAYER_SERVICE_RESPONSE_PUSH_URL;
|
||||
case 9:
|
||||
case "HEADER_TYPE_9":
|
||||
return OnesieHeaderType.HEADER_TYPE_9;
|
||||
case 10:
|
||||
case "HEADER_TYPE_10":
|
||||
return OnesieHeaderType.HEADER_TYPE_10;
|
||||
case 11:
|
||||
case "HEADER_TYPE_11":
|
||||
return OnesieHeaderType.HEADER_TYPE_11;
|
||||
case 12:
|
||||
case "HEADER_TYPE_12":
|
||||
return OnesieHeaderType.HEADER_TYPE_12;
|
||||
case 13:
|
||||
case "HEADER_TYPE_13":
|
||||
return OnesieHeaderType.HEADER_TYPE_13;
|
||||
case 14:
|
||||
case "RESTRICTED_FORMATS_HINT":
|
||||
return OnesieHeaderType.RESTRICTED_FORMATS_HINT;
|
||||
case 15:
|
||||
case "HEADER_TYPE_15":
|
||||
return OnesieHeaderType.HEADER_TYPE_15;
|
||||
case "LAST_HIGH_PRIORITY_HINT":
|
||||
return OnesieHeaderType.LAST_HIGH_PRIORITY_HINT;
|
||||
case 16:
|
||||
case "STREAM_METADATA":
|
||||
return OnesieHeaderType.STREAM_METADATA;
|
||||
case 17:
|
||||
case "HEADER_TYPE_17":
|
||||
return OnesieHeaderType.HEADER_TYPE_17;
|
||||
case 18:
|
||||
case "HEADER_TYPE_18":
|
||||
return OnesieHeaderType.HEADER_TYPE_18;
|
||||
case 19:
|
||||
case "HEADER_TYPE_19":
|
||||
return OnesieHeaderType.HEADER_TYPE_19;
|
||||
case 20:
|
||||
case "HEADER_TYPE_20":
|
||||
return OnesieHeaderType.HEADER_TYPE_20;
|
||||
case 21:
|
||||
case "HEADER_TYPE_21":
|
||||
return OnesieHeaderType.HEADER_TYPE_21;
|
||||
case 22:
|
||||
case "HEADER_TYPE_22":
|
||||
return OnesieHeaderType.HEADER_TYPE_22;
|
||||
case 23:
|
||||
case "HEADER_TYPE_23":
|
||||
return OnesieHeaderType.HEADER_TYPE_23;
|
||||
case 24:
|
||||
case "HEADER_TYPE_24":
|
||||
return OnesieHeaderType.HEADER_TYPE_24;
|
||||
case 25:
|
||||
case "ENCRYPTED_INNERTUBE_RESPONSE_PART":
|
||||
return OnesieHeaderType.ENCRYPTED_INNERTUBE_RESPONSE_PART;
|
||||
@@ -127,56 +71,28 @@ export function onesieHeaderTypeFromJSON(object: any): OnesieHeaderType {
|
||||
|
||||
export function onesieHeaderTypeToJSON(object: OnesieHeaderType): string {
|
||||
switch (object) {
|
||||
case OnesieHeaderType.PLAYER_RESPONSE:
|
||||
return "PLAYER_RESPONSE";
|
||||
case OnesieHeaderType.HEADER_TYPE_1:
|
||||
return "HEADER_TYPE_1";
|
||||
case OnesieHeaderType.ONESIE_PLAYER_RESPONSE:
|
||||
return "ONESIE_PLAYER_RESPONSE";
|
||||
case OnesieHeaderType.MEDIA:
|
||||
return "MEDIA";
|
||||
case OnesieHeaderType.MEDIA_DECRYPTION_KEY:
|
||||
return "MEDIA_DECRYPTION_KEY";
|
||||
case OnesieHeaderType.HEADER_TYPE_3:
|
||||
return "HEADER_TYPE_3";
|
||||
case OnesieHeaderType.HEADER_TYPE_4:
|
||||
return "HEADER_TYPE_4";
|
||||
case OnesieHeaderType.HEADER_TYPE_5:
|
||||
return "HEADER_TYPE_5";
|
||||
case OnesieHeaderType.NEW_HOST:
|
||||
return "NEW_HOST";
|
||||
case OnesieHeaderType.HEADER_TYPE_7:
|
||||
return "HEADER_TYPE_7";
|
||||
case OnesieHeaderType.HEADER_TYPE_8:
|
||||
return "HEADER_TYPE_8";
|
||||
case OnesieHeaderType.HEADER_TYPE_9:
|
||||
return "HEADER_TYPE_9";
|
||||
case OnesieHeaderType.HEADER_TYPE_10:
|
||||
return "HEADER_TYPE_10";
|
||||
case OnesieHeaderType.HEADER_TYPE_11:
|
||||
return "HEADER_TYPE_11";
|
||||
case OnesieHeaderType.HEADER_TYPE_12:
|
||||
return "HEADER_TYPE_12";
|
||||
case OnesieHeaderType.HEADER_TYPE_13:
|
||||
return "HEADER_TYPE_13";
|
||||
case OnesieHeaderType.RESTRICTED_FORMATS_HINT:
|
||||
return "RESTRICTED_FORMATS_HINT";
|
||||
case OnesieHeaderType.HEADER_TYPE_15:
|
||||
return "HEADER_TYPE_15";
|
||||
case OnesieHeaderType.CLEAR_MEDIA:
|
||||
return "CLEAR_MEDIA";
|
||||
case OnesieHeaderType.CLEAR_INIT_SEGMENT:
|
||||
return "CLEAR_INIT_SEGMENT";
|
||||
case OnesieHeaderType.ACK:
|
||||
return "ACK";
|
||||
case OnesieHeaderType.MEDIA_STREAMER_HOSTNAME:
|
||||
return "MEDIA_STREAMER_HOSTNAME";
|
||||
case OnesieHeaderType.MEDIA_SIZE_HINT:
|
||||
return "MEDIA_SIZE_HINT";
|
||||
case OnesieHeaderType.PLAYER_SERVICE_RESPONSE_PUSH_URL:
|
||||
return "PLAYER_SERVICE_RESPONSE_PUSH_URL";
|
||||
case OnesieHeaderType.LAST_HIGH_PRIORITY_HINT:
|
||||
return "LAST_HIGH_PRIORITY_HINT";
|
||||
case OnesieHeaderType.STREAM_METADATA:
|
||||
return "STREAM_METADATA";
|
||||
case OnesieHeaderType.HEADER_TYPE_17:
|
||||
return "HEADER_TYPE_17";
|
||||
case OnesieHeaderType.HEADER_TYPE_18:
|
||||
return "HEADER_TYPE_18";
|
||||
case OnesieHeaderType.HEADER_TYPE_19:
|
||||
return "HEADER_TYPE_19";
|
||||
case OnesieHeaderType.HEADER_TYPE_20:
|
||||
return "HEADER_TYPE_20";
|
||||
case OnesieHeaderType.HEADER_TYPE_21:
|
||||
return "HEADER_TYPE_21";
|
||||
case OnesieHeaderType.HEADER_TYPE_22:
|
||||
return "HEADER_TYPE_22";
|
||||
case OnesieHeaderType.HEADER_TYPE_23:
|
||||
return "HEADER_TYPE_23";
|
||||
case OnesieHeaderType.HEADER_TYPE_24:
|
||||
return "HEADER_TYPE_24";
|
||||
case OnesieHeaderType.ENCRYPTED_INNERTUBE_RESPONSE_PART:
|
||||
return "ENCRYPTED_INNERTUBE_RESPONSE_PART";
|
||||
case OnesieHeaderType.UNRECOGNIZED:
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
/* eslint-disable */
|
||||
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
||||
import { OnesieRequestTarget, onesieRequestTargetFromJSON, onesieRequestTargetToJSON } from "../misc/common.js";
|
||||
import { BufferedRange } from "./buffered_range.js";
|
||||
import { ClientAbrState } from "./client_abr_state.js";
|
||||
import { EncryptedPlayerRequest } from "./encrypted_player_request.js";
|
||||
@@ -24,7 +25,7 @@ export interface OnesieRequest {
|
||||
| StreamerContext
|
||||
| undefined;
|
||||
/** MLOnesieRequestTarget */
|
||||
requestTarget?: number | undefined;
|
||||
requestTarget?: OnesieRequestTarget | undefined;
|
||||
bufferedRanges: BufferedRange[];
|
||||
}
|
||||
|
||||
@@ -135,7 +136,7 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
|
||||
break;
|
||||
}
|
||||
|
||||
message.requestTarget = reader.int32();
|
||||
message.requestTarget = reader.int32() as any;
|
||||
continue;
|
||||
case 14:
|
||||
if (tag !== 114) {
|
||||
@@ -164,7 +165,7 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
|
||||
maxVp9Height: isSet(object.maxVp9Height) ? globalThis.Number(object.maxVp9Height) : 0,
|
||||
clientDisplayHeight: isSet(object.clientDisplayHeight) ? globalThis.Number(object.clientDisplayHeight) : 0,
|
||||
streamerContext: isSet(object.streamerContext) ? StreamerContext.fromJSON(object.streamerContext) : undefined,
|
||||
requestTarget: isSet(object.requestTarget) ? globalThis.Number(object.requestTarget) : 0,
|
||||
requestTarget: isSet(object.requestTarget) ? onesieRequestTargetFromJSON(object.requestTarget) : 0,
|
||||
bufferedRanges: globalThis.Array.isArray(object?.bufferedRanges)
|
||||
? object.bufferedRanges.map((e: any) => BufferedRange.fromJSON(e))
|
||||
: [],
|
||||
@@ -195,7 +196,7 @@ export const OnesieRequest: MessageFns<OnesieRequest> = {
|
||||
obj.streamerContext = StreamerContext.toJSON(message.streamerContext);
|
||||
}
|
||||
if (message.requestTarget !== undefined && message.requestTarget !== 0) {
|
||||
obj.requestTarget = Math.round(message.requestTarget);
|
||||
obj.requestTarget = onesieRequestTargetToJSON(message.requestTarget);
|
||||
}
|
||||
if (message.bufferedRanges?.length) {
|
||||
obj.bufferedRanges = message.bufferedRanges.map((e) => BufferedRange.toJSON(e));
|
||||
|
||||
@@ -25,4 +25,160 @@ message IndexRange {
|
||||
message KeyValuePair {
|
||||
optional string key = 1;
|
||||
optional string value = 2;
|
||||
}
|
||||
|
||||
enum AudioQuality {
|
||||
AUDIO_QUALITY_UNKNOWN = 0;
|
||||
AUDIO_QUALITY_ULTRALOW = 5;
|
||||
AUDIO_QUALITY_LOW = 10;
|
||||
AUDIO_QUALITY_MEDIUM = 20;
|
||||
AUDIO_QUALITY_HIGH = 30;
|
||||
}
|
||||
|
||||
enum VideoQualitySetting {
|
||||
VIDEO_QUALITY_SETTING_UNKNOWN = 0;
|
||||
VIDEO_QUALITY_SETTING_HIGHER_QUALITY = 1;
|
||||
VIDEO_QUALITY_SETTING_DATA_SAVER = 2;
|
||||
VIDEO_QUALITY_SETTING_ADVANCED_MENU = 3;
|
||||
}
|
||||
|
||||
enum PlaybackAudioRouteOutputType {
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_UNKNOWN = 0;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_LINE_OUT = 1;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HEADPHONES = 2;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_A2DP = 3;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_RECEIVER = 4;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BUILT_IN_SPEAKER = 5;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_HDMI = 6;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_AIR_PLAY = 7;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_LE = 8;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_BLUETOOTH_HFP = 9;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_USB_AUDIO = 10;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_CAR_PLAY = 11;
|
||||
PLAYBACK_AUDIO_ROUTE_OUTPUT_TYPE_ANDROID_AUDIO = 12;
|
||||
}
|
||||
|
||||
enum NetworkMeteredState {
|
||||
NETWORK_METERED_STATE_UNKNOWN = 0;
|
||||
NETWORK_METERED_STATE_UNMETERED = 1;
|
||||
NETWORK_METERED_STATE_METERED = 2;
|
||||
}
|
||||
|
||||
enum SeekSource {
|
||||
SEEK_SOURCE_UNKNOWN = 0;
|
||||
SEEK_SOURCE_TIMESTAMP_IN_COMMENTS = 1;
|
||||
SEEK_SOURCE_TIMESTAMP_IN_DESCRIPTION = 2;
|
||||
SEEK_SOURCE_MACRO_MARKER_LIST_ITEM = 3;
|
||||
SEEK_SOURCE_DOUBLE_TAP_TO_SEEK = 4;
|
||||
SEEK_SOURCE_DOUBLE_TAP_TO_SKIP_CHAPTER = 5;
|
||||
SEEK_SOURCE_PICK_UP_PLAY_HEAD = 6;
|
||||
SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR = 7;
|
||||
SEEK_SOURCE_SLIDE_ON_PLAYER = 8;
|
||||
SEEK_SOURCE_SABR_PARTIAL_CHUNK = 9;
|
||||
SEEK_SOURCE_SABR_SEEK_TO_HEAD = 10;
|
||||
SEEK_SOURCE_SABR_LIVE_DVR_USER_SEEK = 11;
|
||||
SEEK_SOURCE_SABR_SEEK_TO_DVR_LOWER_BOUND = 12;
|
||||
SEEK_SOURCE_SABR_SEEK_TO_DVR_UPPER_BOUND = 13;
|
||||
SEEK_SOURCE_SSDAI_INTERNAL = 14;
|
||||
SEEK_SOURCE_START_PLAYBACK = 15;
|
||||
SEEK_SOURCE_SABR_ACCURATE_SEEK = 17;
|
||||
SEEK_SOURCE_START_PLAYBACK_SEEK_TO_END = 18;
|
||||
SEEK_SOURCE_IOS_PLAYER_REMOVED_SEGMENTS = 19;
|
||||
SEEK_SOURCE_IOS_PLAYER_SEGMENT_LIST = 20;
|
||||
SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK = 21;
|
||||
SEEK_SOURCE_IOS_PLAYER_ITEM_SEEK_TO_END = 22;
|
||||
SEEK_SOURCE_IOS_PLAYER_SEEK_TO_END_TO_RESYNC = 23;
|
||||
SEEK_SOURCE_IOS_SEEK_ACCESSIBILITY_BUTTON = 24;
|
||||
SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_FILMSTRIP = 25;
|
||||
SEEK_SOURCE_FINE_SCRUBBER_TAP_ON_FILMSTRIP = 26;
|
||||
SEEK_SOURCE_FINE_SCRUBBER_SLIDE_ON_SCRUBBER_BAR = 27;
|
||||
SEEK_SOURCE_SEEK_BUTTON_ON_PLAYER_CONTROL = 28;
|
||||
SEEK_SOURCE_SABR_INGESTION_WALL_TIME_SEEK = 29;
|
||||
SEEK_SOURCE_PLAYER_VIEW_REPARENT_INTERNAL = 30;
|
||||
SEEK_SOURCE_PRESS_REWIND_PLAY_BACK_CONTROL = 31;
|
||||
SEEK_SOURCE_PRESS_FAST_FORWARD_PLAY_BACK_CONTROL = 32;
|
||||
SEEK_SOURCE_PRESS_LIVE_SYNC_ICON = 33;
|
||||
SEEK_SOURCE_PEG_TO_LIVE = 34;
|
||||
SEEK_SOURCE_ANDROID_MEDIA_SESSION = 35;
|
||||
SEEK_SOURCE_TAP_ON_REPLAY_ACTION = 36;
|
||||
SEEK_SOURCE_AUTOMATIC_REPLAY_ACTION = 37;
|
||||
SEEK_SOURCE_NON_USER_SEEK_TO_PREVIOUS = 38;
|
||||
SEEK_SOURCE_NON_USER_SEEK_TO_NEXT = 39;
|
||||
SEEK_SOURCE_HIGHLIGHTS_TAP_PREVIOUS_PLAY = 66;
|
||||
SEEK_SOURCE_HIGHLIGHTS_TAP_NEXT_PLAY = 40;
|
||||
SEEK_SOURCE_HIGHLIGHTS_TAP_HIDDEN_NEXT_PLAY = 41;
|
||||
SEEK_SOURCE_HIGHLIGHTS_TAP_LIST_ITEM = 42;
|
||||
SEEK_SOURCE_HIGHLIGHTS_AUTOMATIC_NEXT_PLAY = 43;
|
||||
SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_FIRST_PLAY = 44;
|
||||
SEEK_SOURCE_HIGHLIGHTS_SEEK_TO_END = 45;
|
||||
SEEK_SOURCE_SEGMENTS_TAP_LIST_ITEM = 46;
|
||||
SEEK_SOURCE_PIP_FAST_FORWARD_BUTTON = 47;
|
||||
SEEK_SOURCE_PIP_REWIND_BUTTON = 48;
|
||||
SEEK_SOURCE_PIP_RESUME_ON_HEAD = 49;
|
||||
SEEK_SOURCE_MOVING_CLIP_FRAME = 50;
|
||||
SEEK_SOURCE_RESUME_CLIP_PREVIOUS_POSITION = 51;
|
||||
SEEK_SOURCE_SEEK_TO_NEXT_CHAPTER = 52;
|
||||
SEEK_SOURCE_SEEK_TO_PREVIOUS_CHAPTER = 53;
|
||||
SEEK_SOURCE_IOS_SHAREPLAY_PAUSE = 54;
|
||||
SEEK_SOURCE_IOS_SHAREPLAY_SEEK = 55;
|
||||
SEEK_SOURCE_IOS_SHAREPLAY_SYNC_RESPONSE = 56;
|
||||
SEEK_SOURCE_SEEK_TO_HEAD_IMMERSIVE_LIVE_VIDEO = 57;
|
||||
SEEK_SOURCE_SEEK_TO_START_OF_LOOPING_RANGE_OF_SHORTS = 58;
|
||||
SEEK_SOURCE_SABR_SEEK_TO_CLOSEST_KEYFRAME = 59;
|
||||
SEEK_SOURCE_SEEK_TO_END_OF_LOOPING_RANGE_OF_SHORTS = 60;
|
||||
SEEK_SOURCE_CLIP_SLIDE_ON_FLIMSTRIP = 61;
|
||||
SEEK_SOURCE_PICK_UP_CLIP_SLIDER = 62;
|
||||
SEEK_SOURCE_FINE_SCRUBBER_CANCELLED = 63;
|
||||
SEEK_SOURCE_INLINE_PLAYER_SEEK_CHAPTER = 64;
|
||||
SEEK_SOURCE_INLINE_PLAYER_SEEK_SECONDS = 65;
|
||||
SEEK_SOURCE_HIGHLIGHTS_PLAYER_EXIT_FULLSCREEN = 67;
|
||||
SEEK_SOURCE_LARGE_CONTROLS_FORWARD_BUTTON = 68;
|
||||
SEEK_SOURCE_LARGE_CONTROLS_REWIND_BUTTON = 69;
|
||||
SEEK_SOURCE_LARGE_CONTROLS_SCRUBBER_BAR = 70;
|
||||
SEEK_SOURCE_SEEK_BACKWARD_5S = 71;
|
||||
SEEK_SOURCE_SEEK_FORWARD_5S = 72;
|
||||
SEEK_SOURCE_SEEK_BACKWARD_10S = 73;
|
||||
SEEK_SOURCE_SEEK_FORWARD_10S = 74;
|
||||
SEEK_SOURCE_SEEK_FORWARD_60S = 75;
|
||||
SEEK_SOURCE_SEEK_BACKWARD_60S = 76;
|
||||
SEEK_SOURCE_SEEK_TO_NEXT_FRAME = 77;
|
||||
SEEK_SOURCE_SEEK_TO_PREV_FRAME = 78;
|
||||
SEEK_SOURCE_KEYBOARD_SEEK_TO_BEGINNING = 79;
|
||||
SEEK_SOURCE_KEYBOARD_SEEK_TO_END = 80;
|
||||
SEEK_SOURCE_SEEK_PERCENT_OF_VIDEO = 81;
|
||||
SEEK_SOURCE_HIDDEN_FAST_FORWARD_BUTTON = 82;
|
||||
SEEK_SOURCE_HIDDEN_REWIND_BUTTON = 83;
|
||||
SEEK_SOURCE_TIMESTAMP = 84;
|
||||
SEEK_SOURCE_LR_MEDIA_SESSION_SEEK = 87;
|
||||
SEEK_SOURCE_MIDROLLS_WITH_TIME_RANGE = 88;
|
||||
SEEK_SOURCE_SKIP_AD = 89;
|
||||
SEEK_SOURCE_SEEK_TO_PREVIOUS = 90;
|
||||
SEEK_SOURCE_SEEK_TO_NEXT = 91;
|
||||
SEEK_SOURCE_LR_QUICK_SEEK = 92;
|
||||
SEEK_SOURCE_ONESIE_LIVE = 93;
|
||||
SEEK_SOURCE_LR_PLAYER_CONTROL_ACTION = 94;
|
||||
SEEK_SOURCE_UNPLUGGED_LENS_START_CLIP = 95;
|
||||
SEEK_SOURCE_LR_KEY_PLAYS = 96;
|
||||
SEEK_SOURCE_SSAP_AD_FMT_FATAL = 97;
|
||||
SEEK_SOURCE_TVHTML5_INPUT_SOURCE_KEY_EVENT = 98;
|
||||
SEEK_SOURCE_TVHTML5_INPUT_SOURCE_CONTROLS = 99;
|
||||
SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCH = 100;
|
||||
SEEK_SOURCE_TVHTML5_INPUT_SOURCE_TOUCHPAD = 101;
|
||||
SEEK_SOURCE_SEEK_TO_HEAD = 102;
|
||||
SEEK_SOURCE_AUTOMATIC_PREVIEW_REPLAY_ACTION = 103;
|
||||
SEEK_SOURCE_H5_MEDIA_ELEMENT_EVENT = 104;
|
||||
SEEK_SOURCE_H5_WORKAROUND_SEEK = 105;
|
||||
SEEK_SOURCE_MINIPLAYER_REWIND_BUTTON = 106;
|
||||
SEEK_SOURCE_MINIPLAYER_FAST_FORWARD_BUTTON = 107;
|
||||
SEEK_SOURCE_SABR_RELOAD_PLAYER_RESPONSE_TOKEN_SEEK = 108;
|
||||
SEEK_SOURCE_SLIDE_ON_SCRUBBER_BAR_CHAPTER = 109;
|
||||
SEEK_SOURCE_ANDROID_CLEAR_BUFFER = 110;
|
||||
}
|
||||
|
||||
enum OnesieRequestTarget {
|
||||
ONESIE_REQUEST_TARGET_UNKNOWN = 0;
|
||||
ONESIE_REQUEST_TARGET_ENCRYPTED_PLAYER_SERVICE = 1;
|
||||
ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE_DEPRECATED = 2;
|
||||
ONESIE_REQUEST_TARGET_ENCRYPTED_WATCH_SERVICE = 3;
|
||||
ONESIE_REQUEST_TARGET_INNERTUBE_ENCRYPTED_SERVICE = 4;
|
||||
}
|
||||
@@ -1,20 +1,27 @@
|
||||
syntax = "proto2";
|
||||
package video_streaming;
|
||||
|
||||
import "misc/common.proto";
|
||||
|
||||
message ClientAbrState {
|
||||
optional int32 time_since_last_manual_format_selection_ms = 13;
|
||||
optional int32 last_manual_direction = 14;
|
||||
optional int64 time_since_last_manual_format_selection_ms = 13;
|
||||
optional sint32 last_manual_direction = 14;
|
||||
optional int32 last_manual_selected_resolution = 16;
|
||||
optional int32 detailed_network_type = 17;
|
||||
optional int32 client_viewport_width = 18;
|
||||
optional int32 client_viewport_height = 19;
|
||||
optional int64 client_bitrate_cap = 20;
|
||||
optional int64 client_bitrate_cap_bytes_per_sec = 20;
|
||||
optional int32 sticky_resolution = 21;
|
||||
optional bool client_viewport_is_flexible = 22;
|
||||
optional int32 bandwidth_estimate = 23;
|
||||
optional int64 bandwidth_estimate = 23;
|
||||
optional .misc.AudioQuality min_audio_quality = 24;
|
||||
optional .misc.AudioQuality max_audio_quality = 25;
|
||||
optional .misc.VideoQualitySetting video_quality_setting = 26;
|
||||
optional .misc.PlaybackAudioRouteOutputType audio_route = 27;
|
||||
optional int64 player_time_ms = 28;
|
||||
optional int64 time_since_last_seek = 29;
|
||||
optional bool data_saver_mode = 30;
|
||||
optional .misc.NetworkMeteredState network_metered_state = 32;
|
||||
optional int32 visibility = 34;
|
||||
optional float playback_rate = 35;
|
||||
optional int64 elapsed_wall_time_ms = 36;
|
||||
|
||||
@@ -3,10 +3,11 @@ package video_streaming;
|
||||
|
||||
message CryptoParams {
|
||||
enum CompressionType {
|
||||
VAL_0 = 0;
|
||||
VAL_1 = 1;
|
||||
VAL_2 = 2;
|
||||
NONE = 0;
|
||||
GZIP = 1;
|
||||
BROTLI = 2;
|
||||
}
|
||||
|
||||
optional bytes hmac = 4;
|
||||
optional bytes iv = 5;
|
||||
optional CompressionType compression_type = 6;
|
||||
|
||||
@@ -9,8 +9,15 @@ message EncryptedPlayerRequest {
|
||||
optional bytes hmac = 7;
|
||||
optional string reverse_proxy_config = 9;
|
||||
optional bool serialize_response_as_json = 10;
|
||||
optional bool pM = 13;
|
||||
optional bool enable_ad_placements_preroll = 13;
|
||||
optional bool enable_compression = 14;
|
||||
optional bytes unencrypted_onesie_player_request = 16;
|
||||
optional bool TQ = 17;
|
||||
|
||||
message UstreamerFlags {
|
||||
optional bool send_video_playback_config = 2;
|
||||
}
|
||||
|
||||
optional UstreamerFlags ustreamer_flags = 15;
|
||||
|
||||
optional bytes unencrypted_onesie_player_request = 16;
|
||||
optional bool use_jsonformatter_to_parse_player_response = 17;
|
||||
}
|
||||
@@ -7,7 +7,7 @@ message FormatInitializationMetadata {
|
||||
optional string video_id = 1;
|
||||
optional .misc.FormatId format_id = 2;
|
||||
optional int32 end_time_ms = 3;
|
||||
optional int32 field4 = 4;
|
||||
optional int64 end_segment_number = 4;
|
||||
optional string mime_type = 5;
|
||||
optional .misc.InitRange init_range = 6;
|
||||
optional .misc.IndexRange index_range = 7;
|
||||
|
||||
@@ -2,12 +2,15 @@ syntax = "proto2";
|
||||
package video_streaming;
|
||||
|
||||
message LiveMetadata {
|
||||
optional uint32 head_sequence_number = 3;
|
||||
optional uint64 head_time_ms = 4;
|
||||
optional uint64 wall_time_ms = 5;
|
||||
optional uint64 field10 = 10;
|
||||
optional uint64 field12 = 12;
|
||||
optional uint64 field13 = 13;
|
||||
optional uint64 head_time_usec = 14;
|
||||
optional uint64 field15 = 15;
|
||||
optional string broadcast_id = 1;
|
||||
optional int64 head_sequence_number = 3;
|
||||
optional int64 head_time_ms = 4;
|
||||
optional int64 wall_time_ms = 5;
|
||||
optional string video_id = 6;
|
||||
optional bool post_live_dvr = 8;
|
||||
optional int64 headm = 10;
|
||||
optional int64 min_seekable_time_ticks = 12;
|
||||
optional int32 min_seekable_timescale = 13;
|
||||
optional int64 max_seekable_time_ticks = 14;
|
||||
optional int32 max_seekable_timescale = 15;
|
||||
}
|
||||
@@ -3,8 +3,8 @@ package video_streaming;
|
||||
|
||||
message MediaCapabilities {
|
||||
repeated VideoFormatCapability video_format_capabilities = 1;
|
||||
repeated AudioFormatCapability audio_format_capabilities = 2;
|
||||
optional int32 hdr_mode_bitmask = 5;
|
||||
repeated AudioFormatCapability audio_format_capabilities = 2;
|
||||
optional int32 hdr_mode_bitmask = 5;
|
||||
|
||||
message VideoFormatCapability {
|
||||
optional int32 video_codec = 1;
|
||||
|
||||
@@ -5,26 +5,25 @@ import "misc/common.proto";
|
||||
import "video_streaming/time_range.proto";
|
||||
|
||||
message MediaHeader {
|
||||
optional uint32 header_id = 1;
|
||||
optional uint32 header_id = 1;
|
||||
optional string video_id = 2;
|
||||
optional int32 itag = 3;
|
||||
optional uint64 lmt = 4;
|
||||
optional string xtags = 5;
|
||||
optional int32 start_data_range = 6;
|
||||
optional Compression compression = 7;
|
||||
optional int64 start_range = 6;
|
||||
optional CompressionAlgorithm compression_algorithm = 7;
|
||||
optional bool is_init_seg = 8;
|
||||
optional int64 sequence_number = 9;
|
||||
optional int64 field10 = 10;
|
||||
optional int32 start_ms = 11;
|
||||
optional int32 duration_ms = 12;
|
||||
optional int64 start_ms = 11;
|
||||
optional int64 duration_ms = 12;
|
||||
optional .misc.FormatId format_id = 13;
|
||||
optional int64 content_length = 14;
|
||||
optional TimeRange time_range = 15;
|
||||
optional TimeRange time_range = 15;
|
||||
|
||||
enum Compression {
|
||||
VAL0 = 0;
|
||||
VAL1 = 1;
|
||||
enum CompressionAlgorithm {
|
||||
UNKNOWN = 0;
|
||||
NONE = 1;
|
||||
GZIP = 2;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -18,7 +18,7 @@ message OnesieHeader {
|
||||
optional string itag = 3;
|
||||
optional CryptoParams crypto_params = 4;
|
||||
optional uint64 last_modified = 5;
|
||||
optional int64 media_size_bytes = 7;
|
||||
optional int64 expected_media_size_bytes = 7;
|
||||
repeated string restricted_formats = 11;
|
||||
optional string xtags = 15;
|
||||
optional int64 sequence_number = 18;
|
||||
|
||||
@@ -2,30 +2,16 @@ syntax = "proto2";
|
||||
package video_streaming;
|
||||
|
||||
enum OnesieHeaderType {
|
||||
PLAYER_RESPONSE = 0;
|
||||
HEADER_TYPE_1 = 1;
|
||||
MEDIA_DECRYPTION_KEY = 2;
|
||||
HEADER_TYPE_3 = 3;
|
||||
HEADER_TYPE_4 = 4;
|
||||
HEADER_TYPE_5 = 5;
|
||||
NEW_HOST = 6;
|
||||
HEADER_TYPE_7 = 7;
|
||||
HEADER_TYPE_8 = 8;
|
||||
HEADER_TYPE_9 = 9;
|
||||
HEADER_TYPE_10 = 10;
|
||||
HEADER_TYPE_11 = 11;
|
||||
HEADER_TYPE_12 = 12;
|
||||
HEADER_TYPE_13 = 13;
|
||||
RESTRICTED_FORMATS_HINT = 14;
|
||||
HEADER_TYPE_15 = 15;
|
||||
STREAM_METADATA = 16;
|
||||
HEADER_TYPE_17 = 17;
|
||||
HEADER_TYPE_18 = 18;
|
||||
HEADER_TYPE_19 = 19;
|
||||
HEADER_TYPE_20 = 20;
|
||||
HEADER_TYPE_21 = 21;
|
||||
HEADER_TYPE_22 = 22;
|
||||
HEADER_TYPE_23 = 23;
|
||||
HEADER_TYPE_24 = 24;
|
||||
ENCRYPTED_INNERTUBE_RESPONSE_PART = 25;
|
||||
ONESIE_PLAYER_RESPONSE = 0;
|
||||
MEDIA = 1;
|
||||
MEDIA_DECRYPTION_KEY = 2;
|
||||
CLEAR_MEDIA = 3;
|
||||
CLEAR_INIT_SEGMENT = 4;
|
||||
ACK = 5;
|
||||
MEDIA_STREAMER_HOSTNAME = 6;
|
||||
MEDIA_SIZE_HINT = 7;
|
||||
PLAYER_SERVICE_RESPONSE_PUSH_URL = 8;
|
||||
LAST_HIGH_PRIORITY_HINT = 9;
|
||||
STREAM_METADATA = 16;
|
||||
ENCRYPTED_INNERTUBE_RESPONSE_PART = 25;
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import "video_streaming/client_abr_state.proto";
|
||||
import "video_streaming/encrypted_player_request.proto";
|
||||
import "video_streaming/streamer_context.proto";
|
||||
import "video_streaming/buffered_range.proto";
|
||||
import "misc/common.proto";
|
||||
|
||||
message OnesieRequest {
|
||||
repeated string urls = 1;
|
||||
@@ -14,6 +15,6 @@ message OnesieRequest {
|
||||
optional int32 max_vp9_height = 5;
|
||||
optional int32 client_display_height = 6;
|
||||
optional StreamerContext streamer_context = 10;
|
||||
optional int32 request_target = 13; // MLOnesieRequestTarget
|
||||
optional .misc.OnesieRequestTarget request_target = 13; // MLOnesieRequestTarget
|
||||
repeated BufferedRange buffered_ranges = 14;
|
||||
}
|
||||
10
protos/video_streaming/sabr_seek.proto
Normal file
10
protos/video_streaming/sabr_seek.proto
Normal file
@@ -0,0 +1,10 @@
|
||||
syntax = "proto2";
|
||||
package video_streaming;
|
||||
|
||||
import "misc/common.proto";
|
||||
|
||||
message SabrSeek {
|
||||
optional int64 seek_media_time = 1;
|
||||
optional int32 seek_media_timescale = 2;
|
||||
optional .misc.SeekSource seek_source = 3;
|
||||
}
|
||||
@@ -240,7 +240,7 @@ export class ServerAbrStream extends EventEmitterLike {
|
||||
isInitSegment: mediaHeader.isInitSeg,
|
||||
durationMs: mediaHeader.durationMs,
|
||||
startMs: mediaHeader.startMs,
|
||||
startDataRange: mediaHeader.startDataRange,
|
||||
startDataRange: mediaHeader.startRange,
|
||||
sequenceNumber: mediaHeader.sequenceNumber,
|
||||
contentLength: mediaHeader.contentLength,
|
||||
timeRange: mediaHeader.timeRange
|
||||
@@ -300,7 +300,7 @@ export class ServerAbrStream extends EventEmitterLike {
|
||||
formatKey: formatKey,
|
||||
durationMs: data.durationMs,
|
||||
mimeType: 'mimeType' in data ? data.mimeType : undefined,
|
||||
sequenceCount: 'field4' in data ? data.field4 : undefined,
|
||||
sequenceCount: 'endSegmentNumber' in data ? data.endSegmentNumber : undefined,
|
||||
sequenceList: [],
|
||||
mediaChunks: [],
|
||||
_state: {
|
||||
|
||||
@@ -21,4 +21,5 @@ export { ProxyStatus } from '../../protos/generated/video_streaming/proxy_status
|
||||
export { MediaCapabilities } from '../../protos/generated/video_streaming/media_capabilities.js';
|
||||
export { CryptoParams } from '../../protos/generated/video_streaming/crypto_params.js';
|
||||
export { LiveMetadata } from '../../protos/generated/video_streaming/live_metadata.js';
|
||||
export { FormatId, KeyValuePair, InitRange, IndexRange, HttpHeader } from '../../protos/generated/misc/common.js';
|
||||
export { FormatId, KeyValuePair, InitRange, IndexRange, HttpHeader } from '../../protos/generated/misc/common.js';
|
||||
export { CryptoParams_CompressionType as CompressionType } from '../../protos/generated/video_streaming/crypto_params.js';
|
||||
Reference in New Issue
Block a user