googlevideo 1.1.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +13 -0
  2. package/dist/protos/generated/misc/common.d.ts +0 -15
  3. package/dist/protos/generated/misc/common.js +0 -133
  4. package/dist/protos/generated/video_streaming/buffered_range.d.ts +0 -15
  5. package/dist/protos/generated/video_streaming/buffered_range.js +0 -146
  6. package/dist/protos/generated/video_streaming/client_abr_state.d.ts +16 -38
  7. package/dist/protos/generated/video_streaming/client_abr_state.js +94 -318
  8. package/dist/protos/generated/video_streaming/crypto_params.d.ts +0 -17
  9. package/dist/protos/generated/video_streaming/crypto_params.js +0 -78
  10. package/dist/protos/generated/video_streaming/encrypted_player_request.d.ts +2 -17
  11. package/dist/protos/generated/video_streaming/encrypted_player_request.js +14 -91
  12. package/dist/protos/generated/video_streaming/format_initialization_metadata.d.ts +0 -15
  13. package/dist/protos/generated/video_streaming/format_initialization_metadata.js +0 -74
  14. package/dist/protos/generated/video_streaming/live_metadata.d.ts +17 -0
  15. package/dist/protos/generated/video_streaming/live_metadata.js +122 -0
  16. package/dist/protos/generated/video_streaming/media_capabilities.d.ts +0 -15
  17. package/dist/protos/generated/video_streaming/media_capabilities.js +0 -121
  18. package/dist/protos/generated/video_streaming/media_header.d.ts +0 -17
  19. package/dist/protos/generated/video_streaming/media_header.js +0 -127
  20. package/dist/protos/generated/video_streaming/next_request_policy.d.ts +0 -15
  21. package/dist/protos/generated/video_streaming/next_request_policy.js +0 -49
  22. package/dist/protos/generated/video_streaming/onesie_header.d.ts +0 -15
  23. package/dist/protos/generated/video_streaming/onesie_header.js +0 -122
  24. package/dist/protos/generated/video_streaming/onesie_header_type.d.ts +0 -2
  25. package/dist/protos/generated/video_streaming/onesie_header_type.js +0 -145
  26. package/dist/protos/generated/video_streaming/onesie_player_request.d.ts +1 -17
  27. package/dist/protos/generated/video_streaming/onesie_player_request.js +4 -49
  28. package/dist/protos/generated/video_streaming/onesie_player_response.d.ts +18 -16
  29. package/dist/protos/generated/video_streaming/onesie_player_response.js +18 -53
  30. package/dist/protos/generated/video_streaming/onesie_request.d.ts +2 -15
  31. package/dist/protos/generated/video_streaming/onesie_request.js +10 -83
  32. package/dist/protos/generated/video_streaming/playback_cookie.d.ts +0 -15
  33. package/dist/protos/generated/video_streaming/playback_cookie.js +0 -42
  34. package/dist/protos/generated/video_streaming/playback_start_policy.d.ts +0 -15
  35. package/dist/protos/generated/video_streaming/playback_start_policy.js +0 -65
  36. package/dist/protos/generated/video_streaming/proxy_status.d.ts +0 -2
  37. package/dist/protos/generated/video_streaming/proxy_status.js +0 -65
  38. package/dist/protos/generated/video_streaming/request_cancellation_policy.d.ts +0 -15
  39. package/dist/protos/generated/video_streaming/request_cancellation_policy.js +0 -65
  40. package/dist/protos/generated/video_streaming/sabr_error.d.ts +0 -15
  41. package/dist/protos/generated/video_streaming/sabr_error.js +0 -28
  42. package/dist/protos/generated/video_streaming/sabr_redirect.d.ts +0 -15
  43. package/dist/protos/generated/video_streaming/sabr_redirect.js +0 -21
  44. package/dist/protos/generated/video_streaming/stream_protection_status.d.ts +0 -15
  45. package/dist/protos/generated/video_streaming/stream_protection_status.js +0 -28
  46. package/dist/protos/generated/video_streaming/streamer_context.d.ts +0 -17
  47. package/dist/protos/generated/video_streaming/streamer_context.js +0 -350
  48. package/dist/protos/generated/video_streaming/time_range.d.ts +0 -15
  49. package/dist/protos/generated/video_streaming/time_range.js +0 -33
  50. package/dist/protos/generated/video_streaming/video_playback_abr_request.d.ts +1 -15
  51. package/dist/protos/generated/video_streaming/video_playback_abr_request.js +18 -256
  52. package/dist/src/core/ServerAbrStream.d.ts +1 -0
  53. package/dist/src/core/ServerAbrStream.js +34 -47
  54. package/dist/src/core/UMP.d.ts +25 -1
  55. package/dist/src/core/UMP.js +35 -20
  56. package/dist/src/utils/Protos.d.ts +3 -2
  57. package/dist/src/utils/Protos.js +3 -2
  58. package/package.json +25 -24
  59. package/bundle/index.cjs +0 -7134
  60. package/bundle/index.cjs.map +0 -7
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../dist/src/index.js", "../dist/src/core/index.js", "../dist/src/core/ChunkedDataBuffer.js", "../dist/src/core/UMP.js", "../dist/src/utils/helpers.js", "../dist/src/utils/EventEmitterLike.js", "../dist/src/utils/Protos.js", "../node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js", "../node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js", "../node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js", "../node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js", "../dist/protos/generated/misc/common.js", "../dist/protos/generated/video_streaming/format_initialization_metadata.js", "../dist/protos/generated/video_streaming/time_range.js", "../dist/protos/generated/video_streaming/buffered_range.js", "../dist/protos/generated/video_streaming/media_header.js", "../dist/protos/generated/video_streaming/playback_cookie.js", "../dist/protos/generated/video_streaming/next_request_policy.js", "../dist/protos/generated/video_streaming/playback_start_policy.js", "../dist/protos/generated/video_streaming/request_cancellation_policy.js", "../dist/protos/generated/video_streaming/sabr_error.js", "../dist/protos/generated/video_streaming/sabr_redirect.js", "../dist/protos/generated/video_streaming/stream_protection_status.js", "../dist/protos/generated/video_streaming/media_capabilities.js", "../dist/protos/generated/video_streaming/client_abr_state.js", "../dist/protos/generated/video_streaming/streamer_context.js", "../dist/protos/generated/video_streaming/video_playback_abr_request.js", "../dist/protos/generated/video_streaming/encrypted_player_request.js", "../dist/protos/generated/video_streaming/onesie_request.js", "../dist/protos/generated/video_streaming/crypto_params.js", "../dist/protos/generated/video_streaming/onesie_header_type.js", "../dist/protos/generated/video_streaming/onesie_header.js", "../dist/protos/generated/video_streaming/onesie_player_request.js", "../dist/protos/generated/video_streaming/onesie_player_response.js", "../dist/protos/generated/video_streaming/proxy_status.js", "../dist/src/core/ServerAbrStream.js"],
4
- "sourcesContent": ["import * as GoogleVideo from './core/index.js';\nexport { GoogleVideo };\nexport default GoogleVideo;\nexport * from './utils/index.js';\n", "export * from './ChunkedDataBuffer.js';\nexport * from './UMP.js';\nexport * from './ServerAbrStream.js';\n", "export class ChunkedDataBuffer {\n constructor(chunks = []) {\n this.chunks = [];\n this.currentChunkOffset = this.currentChunkIndex = 0;\n this.currentDataView = undefined;\n this.totalLength = 0;\n chunks.forEach((chunk) => {\n this.append(chunk);\n });\n }\n getLength() {\n return this.totalLength;\n }\n append(chunk) {\n if (this.canMergeWithLastChunk(chunk)) {\n const lastChunk = this.chunks[this.chunks.length - 1];\n this.chunks[this.chunks.length - 1] = new Uint8Array(lastChunk.buffer, lastChunk.byteOffset, lastChunk.length + chunk.length);\n this.resetFocus();\n }\n else {\n this.chunks.push(chunk);\n }\n this.totalLength += chunk.length;\n }\n split(position) {\n const extractedBuffer = new ChunkedDataBuffer();\n const remainingBuffer = new ChunkedDataBuffer();\n const iterator = this.chunks[Symbol.iterator]();\n let item = iterator.next();\n while (!item.done) {\n const chunk = item.value;\n if (position >= chunk.length) {\n extractedBuffer.append(chunk);\n position -= chunk.length;\n }\n else if (position > 0) {\n extractedBuffer.append(new Uint8Array(chunk.buffer, chunk.byteOffset, position));\n remainingBuffer.append(new Uint8Array(chunk.buffer, chunk.byteOffset + position, chunk.length - position));\n position = 0;\n }\n else {\n remainingBuffer.append(chunk);\n }\n item = iterator.next();\n }\n return { extractedBuffer, remainingBuffer };\n }\n isFocused(position) {\n return position >= this.currentChunkOffset && position < this.currentChunkOffset + this.chunks[this.currentChunkIndex].length;\n }\n focus(position) {\n if (!this.isFocused(position)) {\n if (position < this.currentChunkOffset)\n this.resetFocus();\n while (this.currentChunkOffset + this.chunks[this.currentChunkIndex].length <= position &&\n this.currentChunkIndex < this.chunks.length - 1) {\n this.currentChunkOffset += this.chunks[this.currentChunkIndex].length;\n this.currentChunkIndex += 1;\n }\n this.currentDataView = undefined;\n }\n }\n canReadBytes(position, length) {\n return position + length <= this.totalLength;\n }\n getUint8(position) {\n this.focus(position);\n return this.chunks[this.currentChunkIndex][position - this.currentChunkOffset];\n }\n canMergeWithLastChunk(chunk) {\n if (this.chunks.length === 0)\n return false;\n const lastChunk = this.chunks[this.chunks.length - 1];\n return (lastChunk.buffer === chunk.buffer &&\n lastChunk.byteOffset + lastChunk.length === chunk.byteOffset);\n }\n resetFocus() {\n this.currentDataView = undefined;\n this.currentChunkIndex = 0;\n this.currentChunkOffset = 0;\n }\n}\n", "export class UMP {\n constructor(chunkedDataBuffer) {\n this.chunkedDataBuffer = chunkedDataBuffer;\n }\n parse(handlePart) {\n while (true) {\n let offset = 0;\n const [partType, newOffset] = this.readVarInt(offset);\n offset = newOffset;\n const [partSize, finalOffset] = this.readVarInt(offset);\n offset = finalOffset;\n if (partType < 0 || partSize < 0)\n break;\n // Note that we don't handle cases like this YET..\n if (!this.chunkedDataBuffer.canReadBytes(offset, partSize))\n break;\n const splitResult = this.chunkedDataBuffer.split(offset).remainingBuffer.split(partSize);\n offset = 0;\n handlePart({\n type: partType,\n size: partSize,\n data: splitResult.extractedBuffer\n });\n this.chunkedDataBuffer = splitResult.remainingBuffer;\n }\n }\n readVarInt(offset) {\n let byteLength;\n if (this.chunkedDataBuffer.canReadBytes(offset, 1)) {\n const firstByte = this.chunkedDataBuffer.getUint8(offset);\n // Determine the length of the val\n if (firstByte < 128) {\n byteLength = 1;\n }\n else if (firstByte < 192) {\n byteLength = 2;\n }\n else if (firstByte < 224) {\n byteLength = 3;\n }\n else if (firstByte < 240) {\n byteLength = 4;\n }\n else {\n byteLength = 5;\n }\n }\n else {\n byteLength = 0;\n }\n if (byteLength < 1 || !this.chunkedDataBuffer.canReadBytes(offset, byteLength)) {\n return [-1, offset];\n }\n let value;\n // Now read it based on the length\n switch (byteLength) {\n case 1:\n value = this.chunkedDataBuffer.getUint8(offset++);\n break;\n case 2: {\n const byte1 = this.chunkedDataBuffer.getUint8(offset++);\n const byte2 = this.chunkedDataBuffer.getUint8(offset++);\n value = (byte1 & 0x3f) + 64 * byte2;\n break;\n }\n case 3: {\n const byte1 = this.chunkedDataBuffer.getUint8(offset++);\n const byte2 = this.chunkedDataBuffer.getUint8(offset++);\n const byte3 = this.chunkedDataBuffer.getUint8(offset++);\n value = (byte1 & 0x1f) + 32 * (byte2 + 256 * byte3);\n break;\n }\n case 4: {\n const byte1 = this.chunkedDataBuffer.getUint8(offset++);\n const byte2 = this.chunkedDataBuffer.getUint8(offset++);\n const byte3 = this.chunkedDataBuffer.getUint8(offset++);\n const byte4 = this.chunkedDataBuffer.getUint8(offset++);\n value = (byte1 & 0x0f) + 16 * (byte2 + 256 * (byte3 + 256 * byte4));\n break;\n }\n default: {\n const tempOffset = offset + 1;\n this.chunkedDataBuffer.focus(tempOffset);\n if (this.canReadFromCurrentChunk(tempOffset, 4)) {\n value = this.getCurrentDataView().getUint32(tempOffset - this.chunkedDataBuffer.currentChunkOffset, true);\n }\n else {\n const byte3 = this.chunkedDataBuffer.getUint8(tempOffset + 2) + 256 * this.chunkedDataBuffer.getUint8(tempOffset + 3);\n value =\n this.chunkedDataBuffer.getUint8(tempOffset) +\n 256 * (this.chunkedDataBuffer.getUint8(tempOffset + 1) + 256 * byte3);\n }\n offset += 5;\n break;\n }\n }\n return [value, offset];\n }\n canReadFromCurrentChunk(offset, length) {\n this.chunkedDataBuffer.isFocused(offset);\n return offset - this.chunkedDataBuffer.currentChunkOffset + length <= this.chunkedDataBuffer.chunks[this.chunkedDataBuffer.currentChunkIndex].length;\n }\n getCurrentDataView() {\n if (!this.chunkedDataBuffer.currentDataView) {\n const currentChunk = this.chunkedDataBuffer.chunks[this.chunkedDataBuffer.currentChunkIndex];\n this.chunkedDataBuffer.currentDataView = new DataView(currentChunk.buffer, currentChunk.byteOffset, currentChunk.length);\n }\n return this.chunkedDataBuffer.currentDataView;\n }\n}\n", "var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CustomEvent_detail;\nexport var QUALITY;\n(function (QUALITY) {\n QUALITY[QUALITY[\"AUTO\"] = 0] = \"AUTO\";\n QUALITY[QUALITY[\"TINY\"] = 144] = \"TINY\";\n QUALITY[QUALITY[\"SMALL\"] = 240] = \"SMALL\";\n QUALITY[QUALITY[\"MEDIUM\"] = 360] = \"MEDIUM\";\n // eslint-disable-next-line @typescript-eslint/no-duplicate-enum-values\n QUALITY[QUALITY[\"LIGHT\"] = 144] = \"LIGHT\";\n QUALITY[QUALITY[\"LARGE\"] = 480] = \"LARGE\";\n QUALITY[QUALITY[\"HD720\"] = 720] = \"HD720\";\n QUALITY[QUALITY[\"HD1080\"] = 1080] = \"HD1080\";\n QUALITY[QUALITY[\"HD1440\"] = 1440] = \"HD1440\";\n QUALITY[QUALITY[\"HD2160\"] = 2160] = \"HD2160\";\n QUALITY[QUALITY[\"HD2880\"] = 2880] = \"HD2880\";\n QUALITY[QUALITY[\"HIGHRES\"] = 4320] = \"HIGHRES\";\n})(QUALITY || (QUALITY = {}));\nexport var PART;\n(function (PART) {\n PART[PART[\"ONESIE_HEADER\"] = 10] = \"ONESIE_HEADER\";\n PART[PART[\"ONESIE_DATA\"] = 11] = \"ONESIE_DATA\";\n PART[PART[\"MEDIA_HEADER\"] = 20] = \"MEDIA_HEADER\";\n PART[PART[\"MEDIA\"] = 21] = \"MEDIA\";\n PART[PART[\"MEDIA_END\"] = 22] = \"MEDIA_END\";\n PART[PART[\"LIVE_METADATA\"] = 31] = \"LIVE_METADATA\";\n PART[PART[\"HOSTNAME_CHANGE_HINT\"] = 32] = \"HOSTNAME_CHANGE_HINT\";\n PART[PART[\"LIVE_METADATA_PROMISE\"] = 33] = \"LIVE_METADATA_PROMISE\";\n PART[PART[\"LIVE_METADATA_PROMISE_CANCELLATION\"] = 34] = \"LIVE_METADATA_PROMISE_CANCELLATION\";\n PART[PART[\"NEXT_REQUEST_POLICY\"] = 35] = \"NEXT_REQUEST_POLICY\";\n PART[PART[\"USTREAMER_VIDEO_AND_FORMAT_DATA\"] = 36] = \"USTREAMER_VIDEO_AND_FORMAT_DATA\";\n PART[PART[\"FORMAT_SELECTION_CONFIG\"] = 37] = \"FORMAT_SELECTION_CONFIG\";\n PART[PART[\"USTREAMER_SELECTED_MEDIA_STREAM\"] = 38] = \"USTREAMER_SELECTED_MEDIA_STREAM\";\n PART[PART[\"FORMAT_INITIALIZATION_METADATA\"] = 42] = \"FORMAT_INITIALIZATION_METADATA\";\n PART[PART[\"SABR_REDIRECT\"] = 43] = \"SABR_REDIRECT\";\n PART[PART[\"SABR_ERROR\"] = 44] = \"SABR_ERROR\";\n PART[PART[\"SABR_SEEK\"] = 45] = \"SABR_SEEK\";\n PART[PART[\"RELOAD_PLAYER_RESPONSE\"] = 46] = \"RELOAD_PLAYER_RESPONSE\";\n PART[PART[\"PLAYBACK_START_POLICY\"] = 47] = \"PLAYBACK_START_POLICY\";\n PART[PART[\"ALLOWED_CACHED_FORMATS\"] = 48] = \"ALLOWED_CACHED_FORMATS\";\n PART[PART[\"START_BW_SAMPLING_HINT\"] = 49] = \"START_BW_SAMPLING_HINT\";\n PART[PART[\"PAUSE_BW_SAMPLING_HINT\"] = 50] = \"PAUSE_BW_SAMPLING_HINT\";\n PART[PART[\"SELECTABLE_FORMATS\"] = 51] = \"SELECTABLE_FORMATS\";\n PART[PART[\"REQUEST_IDENTIFIER\"] = 52] = \"REQUEST_IDENTIFIER\";\n PART[PART[\"REQUEST_CANCELLATION_POLICY\"] = 53] = \"REQUEST_CANCELLATION_POLICY\";\n PART[PART[\"ONESIE_PREFETCH_REJECTION\"] = 54] = \"ONESIE_PREFETCH_REJECTION\";\n PART[PART[\"TIMELINE_CONTEXT\"] = 55] = \"TIMELINE_CONTEXT\";\n PART[PART[\"REQUEST_PIPELINING\"] = 56] = \"REQUEST_PIPELINING\";\n PART[PART[\"SABR_CONTEXT_UPDATE\"] = 57] = \"SABR_CONTEXT_UPDATE\";\n PART[PART[\"STREAM_PROTECTION_STATUS\"] = 58] = \"STREAM_PROTECTION_STATUS\";\n PART[PART[\"SABR_CONTEXT_SENDING_POLICY\"] = 59] = \"SABR_CONTEXT_SENDING_POLICY\";\n PART[PART[\"LAWNMOWER_POLICY\"] = 60] = \"LAWNMOWER_POLICY\";\n PART[PART[\"SABR_ACK\"] = 61] = \"SABR_ACK\";\n PART[PART[\"END_OF_TRACK\"] = 62] = \"END_OF_TRACK\";\n PART[PART[\"CACHE_LOAD_POLICY\"] = 63] = \"CACHE_LOAD_POLICY\";\n PART[PART[\"LAWNMOWER_MESSAGING_POLICY\"] = 64] = \"LAWNMOWER_MESSAGING_POLICY\";\n PART[PART[\"PREWARM_CONNECTION\"] = 65] = \"PREWARM_CONNECTION\";\n})(PART || (PART = {}));\nexport function u8ToBase64(u8) {\n return btoa(String.fromCharCode.apply(null, Array.from(u8)));\n}\nexport function base64ToU8(base64) {\n const standard_base64 = base64.replace(/-/g, '+').replace(/_/g, '/');\n const padded_base64 = standard_base64.padEnd(standard_base64.length + (4 - standard_base64.length % 4) % 4, '=');\n return new Uint8Array(atob(padded_base64).split('').map((char) => char.charCodeAt(0)));\n}\nexport function getFormatKey(formatId) {\n return `${formatId.itag};${formatId.lastModified};`;\n}\nexport function concatenateChunks(chunks) {\n const totalLength = chunks.reduce((sum, chunk) => sum + chunk.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of chunks) {\n result.set(chunk, offset);\n offset += chunk.length;\n }\n return result;\n}\n// See https://github.com/nodejs/node/issues/40678#issuecomment-1126944677\nexport class CustomEvent extends Event {\n constructor(type, options) {\n super(type, options);\n _CustomEvent_detail.set(this, void 0);\n __classPrivateFieldSet(this, _CustomEvent_detail, options?.detail ?? null, \"f\");\n }\n get detail() {\n return __classPrivateFieldGet(this, _CustomEvent_detail, \"f\");\n }\n}\n_CustomEvent_detail = new WeakMap();\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EventEmitterLike_legacy_listeners;\nimport { CustomEvent } from './index.js';\nexport class EventEmitterLike extends EventTarget {\n constructor() {\n super();\n _EventEmitterLike_legacy_listeners.set(this, new Map());\n }\n emit(type, ...args) {\n const event = new CustomEvent(type, { detail: args });\n this.dispatchEvent(event);\n }\n on(type, listener) {\n const wrapper = (ev) => {\n if (ev instanceof CustomEvent) {\n listener(...ev.detail);\n }\n else {\n listener(ev);\n }\n };\n __classPrivateFieldGet(this, _EventEmitterLike_legacy_listeners, \"f\").set(listener, wrapper);\n this.addEventListener(type, wrapper);\n }\n once(type, listener) {\n const wrapper = (ev) => {\n if (ev instanceof CustomEvent) {\n listener(...ev.detail);\n }\n else {\n listener(ev);\n }\n this.off(type, listener);\n };\n __classPrivateFieldGet(this, _EventEmitterLike_legacy_listeners, \"f\").set(listener, wrapper);\n this.addEventListener(type, wrapper);\n }\n off(type, listener) {\n const wrapper = __classPrivateFieldGet(this, _EventEmitterLike_legacy_listeners, \"f\").get(listener);\n if (wrapper) {\n this.removeEventListener(type, wrapper);\n __classPrivateFieldGet(this, _EventEmitterLike_legacy_listeners, \"f\").delete(listener);\n }\n }\n}\n_EventEmitterLike_legacy_listeners = new WeakMap();\n", "export { FormatInitializationMetadata } from '../../protos/generated/video_streaming/format_initialization_metadata.js';\nexport { BufferedRange } from '../../protos/generated/video_streaming/buffered_range.js';\nexport { MediaHeader } from '../../protos/generated/video_streaming/media_header.js';\nexport { NextRequestPolicy } from '../../protos/generated/video_streaming/next_request_policy.js';\nexport { PlaybackCookie } from '../../protos/generated/video_streaming/playback_cookie.js';\nexport { PlaybackStartPolicy } from '../../protos/generated/video_streaming/playback_start_policy.js';\nexport { RequestCancellationPolicy } from '../../protos/generated/video_streaming/request_cancellation_policy.js';\nexport { SabrError } from '../../protos/generated/video_streaming/sabr_error.js';\nexport { SabrRedirect } from '../../protos/generated/video_streaming/sabr_redirect.js';\nexport { StreamProtectionStatus } from '../../protos/generated/video_streaming/stream_protection_status.js';\nexport { VideoPlaybackAbrRequest } from '../../protos/generated/video_streaming/video_playback_abr_request.js';\nexport { OnesieRequest } from '../../protos/generated/video_streaming/onesie_request.js';\nexport { EncryptedPlayerRequest } from '../../protos/generated/video_streaming/encrypted_player_request.js';\nexport { OnesieHeader } from '../../protos/generated/video_streaming/onesie_header.js';\nexport { OnesieHeaderType } from '../../protos/generated/video_streaming/onesie_header_type.js';\nexport { OnesiePlayerRequest } from '../../protos/generated/video_streaming/onesie_player_request.js';\nexport { OnesiePlayerResponse } from '../../protos/generated/video_streaming/onesie_player_response.js';\nexport { ClientAbrState } from '../../protos/generated/video_streaming/client_abr_state.js';\nexport { StreamerContext } from '../../protos/generated/video_streaming/streamer_context.js';\nexport { ProxyStatus } from '../../protos/generated/video_streaming/proxy_status.js';\nexport { MediaCapabilities } from '../../protos/generated/video_streaming/media_capabilities.js';\nexport { CryptoParams } from '../../protos/generated/video_streaming/crypto_params.js';\nexport { ClientAbrState_MediaType as MediaType } from '../../protos/generated/video_streaming/client_abr_state.js';\n", "// Copyright 2008 Google Inc. All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it. This code is not\n// standalone and requires a support library to be linked with it. This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nexport function varint64read() {\n let lowBits = 0;\n let highBits = 0;\n for (let shift = 0; shift < 28; shift += 7) {\n let b = this.buf[this.pos++];\n lowBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n let middleByte = this.buf[this.pos++];\n // last four bits of the first 32 bit number\n lowBits |= (middleByte & 0x0f) << 28;\n // 3 upper bits are part of the next 32 bit number\n highBits = (middleByte & 0x70) >> 4;\n if ((middleByte & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n for (let shift = 3; shift <= 31; shift += 7) {\n let b = this.buf[this.pos++];\n highBits |= (b & 0x7f) << shift;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return [lowBits, highBits];\n }\n }\n throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nexport function varint64write(lo, hi, bytes) {\n for (let i = 0; i < 28; i = i + 7) {\n const shift = lo >>> i;\n const hasNext = !(shift >>> 7 == 0 && hi == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n const hasMoreBits = !(hi >> 3 == 0);\n bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n if (!hasMoreBits) {\n return;\n }\n for (let i = 3; i < 31; i = i + 7) {\n const shift = hi >>> i;\n const hasNext = !(shift >>> 7 == 0);\n const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n bytes.push(byte);\n if (!hasNext) {\n return;\n }\n }\n bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64FromString(dec) {\n // Check for minus sign.\n const minus = dec[0] === \"-\";\n if (minus) {\n dec = dec.slice(1);\n }\n // Work 6 decimal digits at a time, acting like we're converting base 1e6\n // digits to binary. This is safe to do with floating point math because\n // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n const base = 1e6;\n let lowBits = 0;\n let highBits = 0;\n function add1e6digit(begin, end) {\n // Note: Number('') is 0.\n const digit1e6 = Number(dec.slice(begin, end));\n highBits *= base;\n lowBits = lowBits * base + digit1e6;\n // Carry bits from lowBits to\n if (lowBits >= TWO_PWR_32_DBL) {\n highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n lowBits = lowBits % TWO_PWR_32_DBL;\n }\n }\n add1e6digit(-24, -18);\n add1e6digit(-18, -12);\n add1e6digit(-12, -6);\n add1e6digit(-6);\n return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function int64ToString(lo, hi) {\n let bits = newBits(lo, hi);\n // If we're treating the input as a signed value and the high bit is set, do\n // a manual two's complement conversion before the decimal conversion.\n const negative = bits.hi & 0x80000000;\n if (negative) {\n bits = negate(bits.lo, bits.hi);\n }\n const result = uInt64ToString(bits.lo, bits.hi);\n return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nexport function uInt64ToString(lo, hi) {\n ({ lo, hi } = toUnsigned(lo, hi));\n // Skip the expensive conversion if the number is small enough to use the\n // built-in conversions.\n // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n // integer precision.\n // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n if (hi <= 0x1fffff) {\n return String(TWO_PWR_32_DBL * hi + lo);\n }\n // What this code is doing is essentially converting the input number from\n // base-2 to base-1e7, which allows us to represent the 64-bit range with\n // only 3 (very large) digits. Those digits are then trivial to convert to\n // a base-10 string.\n // The magic numbers used here are -\n // 2^24 = 16777216 = (1,6777216) in base-1e7.\n // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n // Split 32:32 representation into 16:24:24 representation so our\n // intermediate digits don't overflow.\n const low = lo & 0xffffff;\n const mid = ((lo >>> 24) | (hi << 8)) & 0xffffff;\n const high = (hi >> 16) & 0xffff;\n // Assemble our three base-1e7 digits, ignoring carries. The maximum\n // value in a digit at this step is representable as a 48-bit integer, which\n // can be stored in a 64-bit floating point number.\n let digitA = low + mid * 6777216 + high * 6710656;\n let digitB = mid + high * 8147497;\n let digitC = high * 2;\n // Apply carries from A to B and from B to C.\n const base = 10000000;\n if (digitA >= base) {\n digitB += Math.floor(digitA / base);\n digitA %= base;\n }\n if (digitB >= base) {\n digitC += Math.floor(digitB / base);\n digitB %= base;\n }\n // If digitC is 0, then we should have returned in the trivial code path\n // at the top for non-safe integers. Given this, we can assume both digitB\n // and digitA need leading zeros.\n return (digitC.toString() +\n decimalFrom1e7WithLeadingZeros(digitB) +\n decimalFrom1e7WithLeadingZeros(digitA));\n}\nfunction toUnsigned(lo, hi) {\n return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n highBits = ~highBits;\n if (lowBits) {\n lowBits = ~lowBits + 1;\n }\n else {\n // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n // adding 1 to that, results in 0x100000000, which leaves\n // the low bits 0x0 and simply adds one to the high bits.\n highBits += 1;\n }\n return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n const partial = String(digit1e7);\n return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc. All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nexport function varint32write(value, bytes) {\n if (value >= 0) {\n // write value as varint 32\n while (value > 0x7f) {\n bytes.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n bytes.push(value);\n }\n else {\n for (let i = 0; i < 9; i++) {\n bytes.push((value & 127) | 128);\n value = value >> 7;\n }\n bytes.push(1);\n }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nexport function varint32read() {\n let b = this.buf[this.pos++];\n let result = b & 0x7f;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 7;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 14;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n b = this.buf[this.pos++];\n result |= (b & 0x7f) << 21;\n if ((b & 0x80) == 0) {\n this.assertBounds();\n return result;\n }\n // Extract only last 4 bits\n b = this.buf[this.pos++];\n result |= (b & 0x0f) << 28;\n for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n b = this.buf[this.pos++];\n if ((b & 0x80) != 0)\n throw new Error(\"invalid varint\");\n this.assertBounds();\n // Result can have 32 bits, convert it to unsigned\n return result >>> 0;\n}\n", "// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { int64FromString, int64ToString, uInt64ToString, } from \"./wire/varint.js\";\n/**\n * Int64Support for the current environment.\n */\nexport const protoInt64 = /*@__PURE__*/ makeInt64Support();\nfunction makeInt64Support() {\n const dv = new DataView(new ArrayBuffer(8));\n // note that Safari 14 implements BigInt, but not the DataView methods\n const ok = typeof BigInt === \"function\" &&\n typeof dv.getBigInt64 === \"function\" &&\n typeof dv.getBigUint64 === \"function\" &&\n typeof dv.setBigInt64 === \"function\" &&\n typeof dv.setBigUint64 === \"function\" &&\n (typeof process != \"object\" ||\n typeof process.env != \"object\" ||\n process.env.BUF_BIGINT_DISABLE !== \"1\");\n if (ok) {\n const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n return {\n zero: BigInt(0),\n supported: true,\n parse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > MAX || bi < MIN) {\n throw new Error(`invalid int64: ${value}`);\n }\n return bi;\n },\n uParse(value) {\n const bi = typeof value == \"bigint\" ? value : BigInt(value);\n if (bi > UMAX || bi < UMIN) {\n throw new Error(`invalid uint64: ${value}`);\n }\n return bi;\n },\n enc(value) {\n dv.setBigInt64(0, this.parse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n uEnc(value) {\n dv.setBigInt64(0, this.uParse(value), true);\n return {\n lo: dv.getInt32(0, true),\n hi: dv.getInt32(4, true),\n };\n },\n dec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigInt64(0, true);\n },\n uDec(lo, hi) {\n dv.setInt32(0, lo, true);\n dv.setInt32(4, hi, true);\n return dv.getBigUint64(0, true);\n },\n };\n }\n return {\n zero: \"0\",\n supported: false,\n parse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return value;\n },\n uParse(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return value;\n },\n enc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertInt64String(value);\n return int64FromString(value);\n },\n uEnc(value) {\n if (typeof value != \"string\") {\n value = value.toString();\n }\n assertUInt64String(value);\n return int64FromString(value);\n },\n dec(lo, hi) {\n return int64ToString(lo, hi);\n },\n uDec(lo, hi) {\n return uInt64ToString(lo, hi);\n },\n };\n}\nfunction assertInt64String(value) {\n if (!/^-?[0-9]+$/.test(value)) {\n throw new Error(\"invalid int64: \" + value);\n }\n}\nfunction assertUInt64String(value) {\n if (!/^[0-9]+$/.test(value)) {\n throw new Error(\"invalid uint64: \" + value);\n }\n}\n", "// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nconst symbol = Symbol.for(\"@bufbuild/protobuf/text-encoding\");\n/**\n * Protobuf-ES requires the Text Encoding API to convert UTF-8 from and to\n * binary. This WHATWG API is widely available, but it is not part of the\n * ECMAScript standard. On runtimes where it is not available, use this\n * function to provide your own implementation.\n *\n * Note that the Text Encoding API does not provide a way to validate UTF-8.\n * Our implementation falls back to use encodeURIComponent().\n */\nexport function configureTextEncoding(textEncoding) {\n globalThis[symbol] = textEncoding;\n}\nexport function getTextEncoding() {\n if (globalThis[symbol] == undefined) {\n const te = new globalThis.TextEncoder();\n const td = new globalThis.TextDecoder();\n globalThis[symbol] = {\n encodeUtf8(text) {\n return te.encode(text);\n },\n decodeUtf8(bytes) {\n return td.decode(bytes);\n },\n checkUtf8(text) {\n try {\n encodeURIComponent(text);\n return true;\n }\n catch (e) {\n return false;\n }\n },\n };\n }\n return globalThis[symbol];\n}\n", "// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nimport { varint32read, varint32write, varint64read, varint64write, } from \"./varint.js\";\nimport { protoInt64 } from \"../proto-int64.js\";\nimport { getTextEncoding } from \"./text-encoding.js\";\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nexport var WireType;\n(function (WireType) {\n /**\n * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n */\n WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n /**\n * Used for fixed64, sfixed64, double.\n * Always 8 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n /**\n * Used for string, bytes, embedded messages, packed repeated fields\n *\n * Only repeated numeric types (types which use the varint, 32-bit,\n * or 64-bit wire types) can be packed. In proto3, such fields are\n * packed by default.\n */\n WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n /**\n * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n * in editions with message_encoding = DELIMITED.\n */\n WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n /**\n * End of a tag-delimited aggregate.\n */\n WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n /**\n * Used for fixed32, sfixed32, float.\n * Always 4 bytes with little-endian byte order.\n */\n WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\n/**\n * Maximum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MAX = 3.4028234663852886e38;\n/**\n * Minimum value for a 32-bit floating point value (Protobuf FLOAT).\n */\nexport const FLOAT32_MIN = -3.4028234663852886e38;\n/**\n * Maximum value for an unsigned 32-bit integer (Protobuf UINT32, FIXED32).\n */\nexport const UINT32_MAX = 0xffffffff;\n/**\n * Maximum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MAX = 0x7fffffff;\n/**\n * Minimum value for a signed 32-bit integer (Protobuf INT32, SFIXED32, SINT32).\n */\nexport const INT32_MIN = -0x80000000;\nexport class BinaryWriter {\n constructor(encodeUtf8 = getTextEncoding().encodeUtf8) {\n this.encodeUtf8 = encodeUtf8;\n /**\n * Previous fork states.\n */\n this.stack = [];\n this.chunks = [];\n this.buf = [];\n }\n /**\n * Return all bytes written and reset this writer.\n */\n finish() {\n this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n let len = 0;\n for (let i = 0; i < this.chunks.length; i++)\n len += this.chunks[i].length;\n let bytes = new Uint8Array(len);\n let offset = 0;\n for (let i = 0; i < this.chunks.length; i++) {\n bytes.set(this.chunks[i], offset);\n offset += this.chunks[i].length;\n }\n this.chunks = [];\n return bytes;\n }\n /**\n * Start a new fork for length-delimited data like a message\n * or a packed repeated field.\n *\n * Must be joined later with `join()`.\n */\n fork() {\n this.stack.push({ chunks: this.chunks, buf: this.buf });\n this.chunks = [];\n this.buf = [];\n return this;\n }\n /**\n * Join the last fork. Write its length and bytes, then\n * return to the previous state.\n */\n join() {\n // get chunk of fork\n let chunk = this.finish();\n // restore previous state\n let prev = this.stack.pop();\n if (!prev)\n throw new Error(\"invalid state, fork stack empty\");\n this.chunks = prev.chunks;\n this.buf = prev.buf;\n // write length of chunk as varint\n this.uint32(chunk.byteLength);\n return this.raw(chunk);\n }\n /**\n * Writes a tag (field number and wire type).\n *\n * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n *\n * Generated code should compute the tag ahead of time and call `uint32()`.\n */\n tag(fieldNo, type) {\n return this.uint32(((fieldNo << 3) | type) >>> 0);\n }\n /**\n * Write a chunk of raw bytes.\n */\n raw(chunk) {\n if (this.buf.length) {\n this.chunks.push(new Uint8Array(this.buf));\n this.buf = [];\n }\n this.chunks.push(chunk);\n return this;\n }\n /**\n * Write a `uint32` value, an unsigned 32 bit varint.\n */\n uint32(value) {\n assertUInt32(value);\n // write value as varint 32, inlined for speed\n while (value > 0x7f) {\n this.buf.push((value & 0x7f) | 0x80);\n value = value >>> 7;\n }\n this.buf.push(value);\n return this;\n }\n /**\n * Write a `int32` value, a signed 32 bit varint.\n */\n int32(value) {\n assertInt32(value);\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `bool` value, a variant.\n */\n bool(value) {\n this.buf.push(value ? 1 : 0);\n return this;\n }\n /**\n * Write a `bytes` value, length-delimited arbitrary data.\n */\n bytes(value) {\n this.uint32(value.byteLength); // write length of chunk as varint\n return this.raw(value);\n }\n /**\n * Write a `string` value, length-delimited data converted to UTF-8 text.\n */\n string(value) {\n let chunk = this.encodeUtf8(value);\n this.uint32(chunk.byteLength); // write length of chunk as varint\n return this.raw(chunk);\n }\n /**\n * Write a `float` value, 32-bit floating point number.\n */\n float(value) {\n assertFloat32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setFloat32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `double` value, a 64-bit floating point number.\n */\n double(value) {\n let chunk = new Uint8Array(8);\n new DataView(chunk.buffer).setFloat64(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n */\n fixed32(value) {\n assertUInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setUint32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n */\n sfixed32(value) {\n assertInt32(value);\n let chunk = new Uint8Array(4);\n new DataView(chunk.buffer).setInt32(0, value, true);\n return this.raw(chunk);\n }\n /**\n * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n */\n sint32(value) {\n assertInt32(value);\n // zigzag encode\n value = ((value << 1) ^ (value >> 31)) >>> 0;\n varint32write(value, this.buf);\n return this;\n }\n /**\n * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n */\n sfixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n */\n fixed64(value) {\n let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n view.setInt32(0, tc.lo, true);\n view.setInt32(4, tc.hi, true);\n return this.raw(chunk);\n }\n /**\n * Write a `int64` value, a signed 64-bit varint.\n */\n int64(value) {\n let tc = protoInt64.enc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n /**\n * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64(value) {\n let tc = protoInt64.enc(value), \n // zigzag encode\n sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n varint64write(lo, hi, this.buf);\n return this;\n }\n /**\n * Write a `uint64` value, an unsigned 64-bit varint.\n */\n uint64(value) {\n let tc = protoInt64.uEnc(value);\n varint64write(tc.lo, tc.hi, this.buf);\n return this;\n }\n}\nexport class BinaryReader {\n constructor(buf, decodeUtf8 = getTextEncoding().decodeUtf8) {\n this.decodeUtf8 = decodeUtf8;\n this.varint64 = varint64read; // dirty cast for `this`\n /**\n * Read a `uint32` field, an unsigned 32 bit varint.\n */\n this.uint32 = varint32read;\n this.buf = buf;\n this.len = buf.length;\n this.pos = 0;\n this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n /**\n * Reads a tag - field number and wire type.\n */\n tag() {\n let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n return [fieldNo, wireType];\n }\n /**\n * Skip one element and return the skipped data.\n *\n * When skipping StartGroup, provide the tags field number to check for\n * matching field number in the EndGroup tag.\n */\n skip(wireType, fieldNo) {\n let start = this.pos;\n switch (wireType) {\n case WireType.Varint:\n while (this.buf[this.pos++] & 0x80) {\n // ignore\n }\n break;\n // eslint-disable-next-line\n // @ts-expect-error TS7029: Fallthrough case in switch\n case WireType.Bit64:\n this.pos += 4;\n // eslint-disable-next-line no-fallthrough\n case WireType.Bit32:\n this.pos += 4;\n break;\n case WireType.LengthDelimited:\n let len = this.uint32();\n this.pos += len;\n break;\n case WireType.StartGroup:\n for (;;) {\n const [fn, wt] = this.tag();\n if (wt === WireType.EndGroup) {\n if (fieldNo !== undefined && fn !== fieldNo) {\n throw new Error(\"invalid end group tag\");\n }\n break;\n }\n this.skip(wt, fn);\n }\n break;\n default:\n throw new Error(\"cant skip wire type \" + wireType);\n }\n this.assertBounds();\n return this.buf.subarray(start, this.pos);\n }\n /**\n * Throws error if position in byte array is out of range.\n */\n assertBounds() {\n if (this.pos > this.len)\n throw new RangeError(\"premature EOF\");\n }\n /**\n * Read a `int32` field, a signed 32 bit varint.\n */\n int32() {\n return this.uint32() | 0;\n }\n /**\n * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n */\n sint32() {\n let zze = this.uint32();\n // decode zigzag\n return (zze >>> 1) ^ -(zze & 1);\n }\n /**\n * Read a `int64` field, a signed 64-bit varint.\n */\n int64() {\n return protoInt64.dec(...this.varint64());\n }\n /**\n * Read a `uint64` field, an unsigned 64-bit varint.\n */\n uint64() {\n return protoInt64.uDec(...this.varint64());\n }\n /**\n * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n */\n sint64() {\n let [lo, hi] = this.varint64();\n // decode zig zag\n let s = -(lo & 1);\n lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n hi = (hi >>> 1) ^ s;\n return protoInt64.dec(lo, hi);\n }\n /**\n * Read a `bool` field, a variant.\n */\n bool() {\n let [lo, hi] = this.varint64();\n return lo !== 0 || hi !== 0;\n }\n /**\n * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n */\n fixed32() {\n return this.view.getUint32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n */\n sfixed32() {\n return this.view.getInt32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n */\n fixed64() {\n return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n */\n sfixed64() {\n return protoInt64.dec(this.sfixed32(), this.sfixed32());\n }\n /**\n * Read a `float` field, 32-bit floating point number.\n */\n float() {\n return this.view.getFloat32((this.pos += 4) - 4, true);\n }\n /**\n * Read a `double` field, a 64-bit floating point number.\n */\n double() {\n return this.view.getFloat64((this.pos += 8) - 8, true);\n }\n /**\n * Read a `bytes` field, length-delimited arbitrary data.\n */\n bytes() {\n let len = this.uint32(), start = this.pos;\n this.pos += len;\n this.assertBounds();\n return this.buf.subarray(start, start + len);\n }\n /**\n * Read a `string` field, length-delimited data converted to UTF-8 text.\n */\n string() {\n return this.decodeUtf8(this.bytes());\n }\n}\n/**\n * Assert a valid signed protobuf 32-bit integer as a number or string.\n */\nfunction assertInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid int32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > INT32_MAX ||\n arg < INT32_MIN)\n throw new Error(\"invalid int32: \" + arg);\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer as a number or string.\n */\nfunction assertUInt32(arg) {\n if (typeof arg == \"string\") {\n arg = Number(arg);\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid uint32: \" + typeof arg);\n }\n if (!Number.isInteger(arg) ||\n arg > UINT32_MAX ||\n arg < 0)\n throw new Error(\"invalid uint32: \" + arg);\n}\n/**\n * Assert a valid protobuf float value as a number or string.\n */\nfunction assertFloat32(arg) {\n if (typeof arg == \"string\") {\n const o = arg;\n arg = Number(arg);\n if (isNaN(arg) && o !== \"NaN\") {\n throw new Error(\"invalid float32: \" + o);\n }\n }\n else if (typeof arg != \"number\") {\n throw new Error(\"invalid float32: \" + typeof arg);\n }\n if (Number.isFinite(arg) &&\n (arg > FLOAT32_MAX || arg < FLOAT32_MIN))\n throw new Error(\"invalid float32: \" + arg);\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: misc/common.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"misc\";\nfunction createBaseHttpHeader() {\n return { name: \"\", value: \"\" };\n}\nexport const HttpHeader = {\n encode(message, writer = new BinaryWriter()) {\n if (message.name !== undefined && message.name !== \"\") {\n writer.uint32(10).string(message.name);\n }\n if (message.value !== undefined && message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseHttpHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.name = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.value = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n name: isSet(object.name) ? globalThis.String(object.name) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.name !== undefined && message.name !== \"\") {\n obj.name = message.name;\n }\n if (message.value !== undefined && message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n create(base) {\n return HttpHeader.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseHttpHeader();\n message.name = object.name ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\nfunction createBaseFormatId() {\n return { itag: 0, lastModified: 0, xtags: \"\" };\n}\nexport const FormatId = {\n encode(message, writer = new BinaryWriter()) {\n if (message.itag !== undefined && message.itag !== 0) {\n writer.uint32(8).int32(message.itag);\n }\n if (message.lastModified !== undefined && message.lastModified !== 0) {\n writer.uint32(16).uint64(message.lastModified);\n }\n if (message.xtags !== undefined && message.xtags !== \"\") {\n writer.uint32(26).string(message.xtags);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFormatId();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.itag = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.lastModified = longToNumber(reader.uint64());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.xtags = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n itag: isSet(object.itag) ? globalThis.Number(object.itag) : 0,\n lastModified: isSet(object.lastModified) ? globalThis.Number(object.lastModified) : 0,\n xtags: isSet(object.xtags) ? globalThis.String(object.xtags) : \"\",\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.itag !== undefined && message.itag !== 0) {\n obj.itag = Math.round(message.itag);\n }\n if (message.lastModified !== undefined && message.lastModified !== 0) {\n obj.lastModified = Math.round(message.lastModified);\n }\n if (message.xtags !== undefined && message.xtags !== \"\") {\n obj.xtags = message.xtags;\n }\n return obj;\n },\n create(base) {\n return FormatId.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseFormatId();\n message.itag = object.itag ?? 0;\n message.lastModified = object.lastModified ?? 0;\n message.xtags = object.xtags ?? \"\";\n return message;\n },\n};\nfunction createBaseInitRange() {\n return { start: 0, end: 0 };\n}\nexport const InitRange = {\n encode(message, writer = new BinaryWriter()) {\n if (message.start !== undefined && message.start !== 0) {\n writer.uint32(8).int32(message.start);\n }\n if (message.end !== undefined && message.end !== 0) {\n writer.uint32(16).int32(message.end);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseInitRange();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.start = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.end = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n start: isSet(object.start) ? globalThis.Number(object.start) : 0,\n end: isSet(object.end) ? globalThis.Number(object.end) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.start !== undefined && message.start !== 0) {\n obj.start = Math.round(message.start);\n }\n if (message.end !== undefined && message.end !== 0) {\n obj.end = Math.round(message.end);\n }\n return obj;\n },\n create(base) {\n return InitRange.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseInitRange();\n message.start = object.start ?? 0;\n message.end = object.end ?? 0;\n return message;\n },\n};\nfunction createBaseIndexRange() {\n return { start: 0, end: 0 };\n}\nexport const IndexRange = {\n encode(message, writer = new BinaryWriter()) {\n if (message.start !== undefined && message.start !== 0) {\n writer.uint32(8).int32(message.start);\n }\n if (message.end !== undefined && message.end !== 0) {\n writer.uint32(16).int32(message.end);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseIndexRange();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.start = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.end = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n start: isSet(object.start) ? globalThis.Number(object.start) : 0,\n end: isSet(object.end) ? globalThis.Number(object.end) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.start !== undefined && message.start !== 0) {\n obj.start = Math.round(message.start);\n }\n if (message.end !== undefined && message.end !== 0) {\n obj.end = Math.round(message.end);\n }\n return obj;\n },\n create(base) {\n return IndexRange.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseIndexRange();\n message.start = object.start ?? 0;\n message.end = object.end ?? 0;\n return message;\n },\n};\nfunction createBaseKeyValuePair() {\n return { key: \"\", value: \"\" };\n}\nexport const KeyValuePair = {\n encode(message, writer = new BinaryWriter()) {\n if (message.key !== undefined && message.key !== \"\") {\n writer.uint32(10).string(message.key);\n }\n if (message.value !== undefined && message.value !== \"\") {\n writer.uint32(18).string(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseKeyValuePair();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.key = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.value = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n key: isSet(object.key) ? globalThis.String(object.key) : \"\",\n value: isSet(object.value) ? globalThis.String(object.value) : \"\",\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.key !== undefined && message.key !== \"\") {\n obj.key = message.key;\n }\n if (message.value !== undefined && message.value !== \"\") {\n obj.value = message.value;\n }\n return obj;\n },\n create(base) {\n return KeyValuePair.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseKeyValuePair();\n message.key = object.key ?? \"\";\n message.value = object.value ?? \"\";\n return message;\n },\n};\nfunction longToNumber(int64) {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/format_initialization_metadata.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { FormatId, IndexRange, InitRange } from \"../misc/common.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseFormatInitializationMetadata() {\n return {\n videoId: \"\",\n formatId: undefined,\n endTimeMs: 0,\n field4: 0,\n mimeType: \"\",\n initRange: undefined,\n indexRange: undefined,\n field8: 0,\n durationMs: 0,\n field10: 0,\n };\n}\nexport const FormatInitializationMetadata = {\n encode(message, writer = new BinaryWriter()) {\n if (message.videoId !== undefined && message.videoId !== \"\") {\n writer.uint32(10).string(message.videoId);\n }\n if (message.formatId !== undefined) {\n FormatId.encode(message.formatId, writer.uint32(18).fork()).join();\n }\n if (message.endTimeMs !== undefined && message.endTimeMs !== 0) {\n writer.uint32(24).int32(message.endTimeMs);\n }\n if (message.field4 !== undefined && message.field4 !== 0) {\n writer.uint32(32).int32(message.field4);\n }\n if (message.mimeType !== undefined && message.mimeType !== \"\") {\n writer.uint32(42).string(message.mimeType);\n }\n if (message.initRange !== undefined) {\n InitRange.encode(message.initRange, writer.uint32(50).fork()).join();\n }\n if (message.indexRange !== undefined) {\n IndexRange.encode(message.indexRange, writer.uint32(58).fork()).join();\n }\n if (message.field8 !== undefined && message.field8 !== 0) {\n writer.uint32(64).int32(message.field8);\n }\n if (message.durationMs !== undefined && message.durationMs !== 0) {\n writer.uint32(72).int32(message.durationMs);\n }\n if (message.field10 !== undefined && message.field10 !== 0) {\n writer.uint32(80).int32(message.field10);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseFormatInitializationMetadata();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.videoId = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.formatId = FormatId.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.endTimeMs = reader.int32();\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n message.field4 = reader.int32();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n message.mimeType = reader.string();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n message.initRange = InitRange.decode(reader, reader.uint32());\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n message.indexRange = IndexRange.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n message.field8 = reader.int32();\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n message.durationMs = reader.int32();\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n message.field10 = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : \"\",\n formatId: isSet(object.formatId) ? FormatId.fromJSON(object.formatId) : undefined,\n endTimeMs: isSet(object.endTimeMs) ? globalThis.Number(object.endTimeMs) : 0,\n field4: isSet(object.field4) ? globalThis.Number(object.field4) : 0,\n mimeType: isSet(object.mimeType) ? globalThis.String(object.mimeType) : \"\",\n initRange: isSet(object.initRange) ? InitRange.fromJSON(object.initRange) : undefined,\n indexRange: isSet(object.indexRange) ? IndexRange.fromJSON(object.indexRange) : undefined,\n field8: isSet(object.field8) ? globalThis.Number(object.field8) : 0,\n durationMs: isSet(object.durationMs) ? globalThis.Number(object.durationMs) : 0,\n field10: isSet(object.field10) ? globalThis.Number(object.field10) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.videoId !== undefined && message.videoId !== \"\") {\n obj.videoId = message.videoId;\n }\n if (message.formatId !== undefined) {\n obj.formatId = FormatId.toJSON(message.formatId);\n }\n if (message.endTimeMs !== undefined && message.endTimeMs !== 0) {\n obj.endTimeMs = Math.round(message.endTimeMs);\n }\n if (message.field4 !== undefined && message.field4 !== 0) {\n obj.field4 = Math.round(message.field4);\n }\n if (message.mimeType !== undefined && message.mimeType !== \"\") {\n obj.mimeType = message.mimeType;\n }\n if (message.initRange !== undefined) {\n obj.initRange = InitRange.toJSON(message.initRange);\n }\n if (message.indexRange !== undefined) {\n obj.indexRange = IndexRange.toJSON(message.indexRange);\n }\n if (message.field8 !== undefined && message.field8 !== 0) {\n obj.field8 = Math.round(message.field8);\n }\n if (message.durationMs !== undefined && message.durationMs !== 0) {\n obj.durationMs = Math.round(message.durationMs);\n }\n if (message.field10 !== undefined && message.field10 !== 0) {\n obj.field10 = Math.round(message.field10);\n }\n return obj;\n },\n create(base) {\n return FormatInitializationMetadata.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseFormatInitializationMetadata();\n message.videoId = object.videoId ?? \"\";\n message.formatId = (object.formatId !== undefined && object.formatId !== null)\n ? FormatId.fromPartial(object.formatId)\n : undefined;\n message.endTimeMs = object.endTimeMs ?? 0;\n message.field4 = object.field4 ?? 0;\n message.mimeType = object.mimeType ?? \"\";\n message.initRange = (object.initRange !== undefined && object.initRange !== null)\n ? InitRange.fromPartial(object.initRange)\n : undefined;\n message.indexRange = (object.indexRange !== undefined && object.indexRange !== null)\n ? IndexRange.fromPartial(object.indexRange)\n : undefined;\n message.field8 = object.field8 ?? 0;\n message.durationMs = object.durationMs ?? 0;\n message.field10 = object.field10 ?? 0;\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/time_range.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseTimeRange() {\n return { start: 0, duration: 0, timescale: 0 };\n}\nexport const TimeRange = {\n encode(message, writer = new BinaryWriter()) {\n if (message.start !== undefined && message.start !== 0) {\n writer.uint32(8).int64(message.start);\n }\n if (message.duration !== undefined && message.duration !== 0) {\n writer.uint32(16).int64(message.duration);\n }\n if (message.timescale !== undefined && message.timescale !== 0) {\n writer.uint32(24).int32(message.timescale);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseTimeRange();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.start = longToNumber(reader.int64());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.duration = longToNumber(reader.int64());\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.timescale = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n start: isSet(object.start) ? globalThis.Number(object.start) : 0,\n duration: isSet(object.duration) ? globalThis.Number(object.duration) : 0,\n timescale: isSet(object.timescale) ? globalThis.Number(object.timescale) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.start !== undefined && message.start !== 0) {\n obj.start = Math.round(message.start);\n }\n if (message.duration !== undefined && message.duration !== 0) {\n obj.duration = Math.round(message.duration);\n }\n if (message.timescale !== undefined && message.timescale !== 0) {\n obj.timescale = Math.round(message.timescale);\n }\n return obj;\n },\n create(base) {\n return TimeRange.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseTimeRange();\n message.start = object.start ?? 0;\n message.duration = object.duration ?? 0;\n message.timescale = object.timescale ?? 0;\n return message;\n },\n};\nfunction longToNumber(int64) {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/buffered_range.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { FormatId } from \"../misc/common.js\";\nimport { TimeRange } from \"./time_range.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseBufferedRange() {\n return {\n formatId: undefined,\n startTimeMs: 0,\n durationMs: 0,\n startSegmentIndex: 0,\n endSegmentIndex: 0,\n timeRange: undefined,\n field9: undefined,\n field11: undefined,\n field12: undefined,\n };\n}\nexport const BufferedRange = {\n encode(message, writer = new BinaryWriter()) {\n if (message.formatId !== undefined) {\n FormatId.encode(message.formatId, writer.uint32(10).fork()).join();\n }\n if (message.startTimeMs !== 0) {\n writer.uint32(16).int64(message.startTimeMs);\n }\n if (message.durationMs !== 0) {\n writer.uint32(24).int64(message.durationMs);\n }\n if (message.startSegmentIndex !== 0) {\n writer.uint32(32).int32(message.startSegmentIndex);\n }\n if (message.endSegmentIndex !== 0) {\n writer.uint32(40).int32(message.endSegmentIndex);\n }\n if (message.timeRange !== undefined) {\n TimeRange.encode(message.timeRange, writer.uint32(50).fork()).join();\n }\n if (message.field9 !== undefined) {\n Kob.encode(message.field9, writer.uint32(74).fork()).join();\n }\n if (message.field11 !== undefined) {\n YPa.encode(message.field11, writer.uint32(90).fork()).join();\n }\n if (message.field12 !== undefined) {\n YPa.encode(message.field12, writer.uint32(98).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseBufferedRange();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.formatId = FormatId.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.startTimeMs = longToNumber(reader.int64());\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.durationMs = longToNumber(reader.int64());\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n message.startSegmentIndex = reader.int32();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n message.endSegmentIndex = reader.int32();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n message.timeRange = TimeRange.decode(reader, reader.uint32());\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n message.field9 = Kob.decode(reader, reader.uint32());\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n message.field11 = YPa.decode(reader, reader.uint32());\n continue;\n case 12:\n if (tag !== 98) {\n break;\n }\n message.field12 = YPa.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n formatId: isSet(object.formatId) ? FormatId.fromJSON(object.formatId) : undefined,\n startTimeMs: isSet(object.startTimeMs) ? globalThis.Number(object.startTimeMs) : 0,\n durationMs: isSet(object.durationMs) ? globalThis.Number(object.durationMs) : 0,\n startSegmentIndex: isSet(object.startSegmentIndex) ? globalThis.Number(object.startSegmentIndex) : 0,\n endSegmentIndex: isSet(object.endSegmentIndex) ? globalThis.Number(object.endSegmentIndex) : 0,\n timeRange: isSet(object.timeRange) ? TimeRange.fromJSON(object.timeRange) : undefined,\n field9: isSet(object.field9) ? Kob.fromJSON(object.field9) : undefined,\n field11: isSet(object.field11) ? YPa.fromJSON(object.field11) : undefined,\n field12: isSet(object.field12) ? YPa.fromJSON(object.field12) : undefined,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.formatId !== undefined) {\n obj.formatId = FormatId.toJSON(message.formatId);\n }\n if (message.startTimeMs !== 0) {\n obj.startTimeMs = Math.round(message.startTimeMs);\n }\n if (message.durationMs !== 0) {\n obj.durationMs = Math.round(message.durationMs);\n }\n if (message.startSegmentIndex !== 0) {\n obj.startSegmentIndex = Math.round(message.startSegmentIndex);\n }\n if (message.endSegmentIndex !== 0) {\n obj.endSegmentIndex = Math.round(message.endSegmentIndex);\n }\n if (message.timeRange !== undefined) {\n obj.timeRange = TimeRange.toJSON(message.timeRange);\n }\n if (message.field9 !== undefined) {\n obj.field9 = Kob.toJSON(message.field9);\n }\n if (message.field11 !== undefined) {\n obj.field11 = YPa.toJSON(message.field11);\n }\n if (message.field12 !== undefined) {\n obj.field12 = YPa.toJSON(message.field12);\n }\n return obj;\n },\n create(base) {\n return BufferedRange.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseBufferedRange();\n message.formatId = (object.formatId !== undefined && object.formatId !== null)\n ? FormatId.fromPartial(object.formatId)\n : undefined;\n message.startTimeMs = object.startTimeMs ?? 0;\n message.durationMs = object.durationMs ?? 0;\n message.startSegmentIndex = object.startSegmentIndex ?? 0;\n message.endSegmentIndex = object.endSegmentIndex ?? 0;\n message.timeRange = (object.timeRange !== undefined && object.timeRange !== null)\n ? TimeRange.fromPartial(object.timeRange)\n : undefined;\n message.field9 = (object.field9 !== undefined && object.field9 !== null)\n ? Kob.fromPartial(object.field9)\n : undefined;\n message.field11 = (object.field11 !== undefined && object.field11 !== null)\n ? YPa.fromPartial(object.field11)\n : undefined;\n message.field12 = (object.field12 !== undefined && object.field12 !== null)\n ? YPa.fromPartial(object.field12)\n : undefined;\n return message;\n },\n};\nfunction createBaseKob() {\n return { EW: [] };\n}\nexport const Kob = {\n encode(message, writer = new BinaryWriter()) {\n for (const v of message.EW) {\n Kob_Pa.encode(v, writer.uint32(10).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseKob();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.EW.push(Kob_Pa.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return { EW: globalThis.Array.isArray(object?.EW) ? object.EW.map((e) => Kob_Pa.fromJSON(e)) : [] };\n },\n toJSON(message) {\n const obj = {};\n if (message.EW?.length) {\n obj.EW = message.EW.map((e) => Kob_Pa.toJSON(e));\n }\n return obj;\n },\n create(base) {\n return Kob.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseKob();\n message.EW = object.EW?.map((e) => Kob_Pa.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseKob_Pa() {\n return { videoId: \"\", lmt: 0 };\n}\nexport const Kob_Pa = {\n encode(message, writer = new BinaryWriter()) {\n if (message.videoId !== undefined && message.videoId !== \"\") {\n writer.uint32(10).string(message.videoId);\n }\n if (message.lmt !== undefined && message.lmt !== 0) {\n writer.uint32(16).uint64(message.lmt);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseKob_Pa();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.videoId = reader.string();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.lmt = longToNumber(reader.uint64());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : \"\",\n lmt: isSet(object.lmt) ? globalThis.Number(object.lmt) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.videoId !== undefined && message.videoId !== \"\") {\n obj.videoId = message.videoId;\n }\n if (message.lmt !== undefined && message.lmt !== 0) {\n obj.lmt = Math.round(message.lmt);\n }\n return obj;\n },\n create(base) {\n return Kob_Pa.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseKob_Pa();\n message.videoId = object.videoId ?? \"\";\n message.lmt = object.lmt ?? 0;\n return message;\n },\n};\nfunction createBaseYPa() {\n return { field1: 0, field2: 0, field3: 0 };\n}\nexport const YPa = {\n encode(message, writer = new BinaryWriter()) {\n if (message.field1 !== undefined && message.field1 !== 0) {\n writer.uint32(8).int32(message.field1);\n }\n if (message.field2 !== undefined && message.field2 !== 0) {\n writer.uint32(16).int32(message.field2);\n }\n if (message.field3 !== undefined && message.field3 !== 0) {\n writer.uint32(24).int32(message.field3);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseYPa();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.field1 = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.field2 = reader.int32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.field3 = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n field1: isSet(object.field1) ? globalThis.Number(object.field1) : 0,\n field2: isSet(object.field2) ? globalThis.Number(object.field2) : 0,\n field3: isSet(object.field3) ? globalThis.Number(object.field3) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.field1 !== undefined && message.field1 !== 0) {\n obj.field1 = Math.round(message.field1);\n }\n if (message.field2 !== undefined && message.field2 !== 0) {\n obj.field2 = Math.round(message.field2);\n }\n if (message.field3 !== undefined && message.field3 !== 0) {\n obj.field3 = Math.round(message.field3);\n }\n return obj;\n },\n create(base) {\n return YPa.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseYPa();\n message.field1 = object.field1 ?? 0;\n message.field2 = object.field2 ?? 0;\n message.field3 = object.field3 ?? 0;\n return message;\n },\n};\nfunction longToNumber(int64) {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/media_header.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { FormatId } from \"../misc/common.js\";\nimport { TimeRange } from \"./time_range.js\";\nexport const protobufPackage = \"video_streaming\";\nexport var MediaHeader_Compression;\n(function (MediaHeader_Compression) {\n MediaHeader_Compression[MediaHeader_Compression[\"VAL0\"] = 0] = \"VAL0\";\n MediaHeader_Compression[MediaHeader_Compression[\"VAL1\"] = 1] = \"VAL1\";\n MediaHeader_Compression[MediaHeader_Compression[\"GZIP\"] = 2] = \"GZIP\";\n MediaHeader_Compression[MediaHeader_Compression[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(MediaHeader_Compression || (MediaHeader_Compression = {}));\nexport function mediaHeader_CompressionFromJSON(object) {\n switch (object) {\n case 0:\n case \"VAL0\":\n return MediaHeader_Compression.VAL0;\n case 1:\n case \"VAL1\":\n return MediaHeader_Compression.VAL1;\n case 2:\n case \"GZIP\":\n return MediaHeader_Compression.GZIP;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return MediaHeader_Compression.UNRECOGNIZED;\n }\n}\nexport function mediaHeader_CompressionToJSON(object) {\n switch (object) {\n case MediaHeader_Compression.VAL0:\n return \"VAL0\";\n case MediaHeader_Compression.VAL1:\n return \"VAL1\";\n case MediaHeader_Compression.GZIP:\n return \"GZIP\";\n case MediaHeader_Compression.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nfunction createBaseMediaHeader() {\n return {\n headerId: 0,\n videoId: \"\",\n itag: 0,\n lmt: 0,\n xtags: \"\",\n startDataRange: 0,\n compression: 0,\n isInitSeg: false,\n sequenceNumber: 0,\n field10: 0,\n startMs: 0,\n durationMs: 0,\n formatId: undefined,\n contentLength: 0,\n timeRange: undefined,\n };\n}\nexport const MediaHeader = {\n encode(message, writer = new BinaryWriter()) {\n if (message.headerId !== undefined && message.headerId !== 0) {\n writer.uint32(8).uint32(message.headerId);\n }\n if (message.videoId !== undefined && message.videoId !== \"\") {\n writer.uint32(18).string(message.videoId);\n }\n if (message.itag !== undefined && message.itag !== 0) {\n writer.uint32(24).int32(message.itag);\n }\n if (message.lmt !== undefined && message.lmt !== 0) {\n writer.uint32(32).uint64(message.lmt);\n }\n if (message.xtags !== undefined && message.xtags !== \"\") {\n writer.uint32(42).string(message.xtags);\n }\n if (message.startDataRange !== undefined && message.startDataRange !== 0) {\n writer.uint32(48).int32(message.startDataRange);\n }\n if (message.compression !== undefined && message.compression !== 0) {\n writer.uint32(56).int32(message.compression);\n }\n if (message.isInitSeg !== undefined && message.isInitSeg !== false) {\n writer.uint32(64).bool(message.isInitSeg);\n }\n if (message.sequenceNumber !== undefined && message.sequenceNumber !== 0) {\n writer.uint32(72).int64(message.sequenceNumber);\n }\n if (message.field10 !== undefined && message.field10 !== 0) {\n writer.uint32(80).int64(message.field10);\n }\n if (message.startMs !== undefined && message.startMs !== 0) {\n writer.uint32(88).int32(message.startMs);\n }\n if (message.durationMs !== undefined && message.durationMs !== 0) {\n writer.uint32(96).int32(message.durationMs);\n }\n if (message.formatId !== undefined) {\n FormatId.encode(message.formatId, writer.uint32(106).fork()).join();\n }\n if (message.contentLength !== undefined && message.contentLength !== 0) {\n writer.uint32(112).int64(message.contentLength);\n }\n if (message.timeRange !== undefined) {\n TimeRange.encode(message.timeRange, writer.uint32(122).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMediaHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.headerId = reader.uint32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.videoId = reader.string();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.itag = reader.int32();\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n message.lmt = longToNumber(reader.uint64());\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n message.xtags = reader.string();\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n message.startDataRange = reader.int32();\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n message.compression = reader.int32();\n continue;\n case 8:\n if (tag !== 64) {\n break;\n }\n message.isInitSeg = reader.bool();\n continue;\n case 9:\n if (tag !== 72) {\n break;\n }\n message.sequenceNumber = longToNumber(reader.int64());\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n message.field10 = longToNumber(reader.int64());\n continue;\n case 11:\n if (tag !== 88) {\n break;\n }\n message.startMs = reader.int32();\n continue;\n case 12:\n if (tag !== 96) {\n break;\n }\n message.durationMs = reader.int32();\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n message.formatId = FormatId.decode(reader, reader.uint32());\n continue;\n case 14:\n if (tag !== 112) {\n break;\n }\n message.contentLength = longToNumber(reader.int64());\n continue;\n case 15:\n if (tag !== 122) {\n break;\n }\n message.timeRange = TimeRange.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n headerId: isSet(object.headerId) ? globalThis.Number(object.headerId) : 0,\n videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : \"\",\n itag: isSet(object.itag) ? globalThis.Number(object.itag) : 0,\n lmt: isSet(object.lmt) ? globalThis.Number(object.lmt) : 0,\n xtags: isSet(object.xtags) ? globalThis.String(object.xtags) : \"\",\n startDataRange: isSet(object.startDataRange) ? globalThis.Number(object.startDataRange) : 0,\n compression: isSet(object.compression) ? mediaHeader_CompressionFromJSON(object.compression) : 0,\n isInitSeg: isSet(object.isInitSeg) ? globalThis.Boolean(object.isInitSeg) : false,\n sequenceNumber: isSet(object.sequenceNumber) ? globalThis.Number(object.sequenceNumber) : 0,\n field10: isSet(object.field10) ? globalThis.Number(object.field10) : 0,\n startMs: isSet(object.startMs) ? globalThis.Number(object.startMs) : 0,\n durationMs: isSet(object.durationMs) ? globalThis.Number(object.durationMs) : 0,\n formatId: isSet(object.formatId) ? FormatId.fromJSON(object.formatId) : undefined,\n contentLength: isSet(object.contentLength) ? globalThis.Number(object.contentLength) : 0,\n timeRange: isSet(object.timeRange) ? TimeRange.fromJSON(object.timeRange) : undefined,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.headerId !== undefined && message.headerId !== 0) {\n obj.headerId = Math.round(message.headerId);\n }\n if (message.videoId !== undefined && message.videoId !== \"\") {\n obj.videoId = message.videoId;\n }\n if (message.itag !== undefined && message.itag !== 0) {\n obj.itag = Math.round(message.itag);\n }\n if (message.lmt !== undefined && message.lmt !== 0) {\n obj.lmt = Math.round(message.lmt);\n }\n if (message.xtags !== undefined && message.xtags !== \"\") {\n obj.xtags = message.xtags;\n }\n if (message.startDataRange !== undefined && message.startDataRange !== 0) {\n obj.startDataRange = Math.round(message.startDataRange);\n }\n if (message.compression !== undefined && message.compression !== 0) {\n obj.compression = mediaHeader_CompressionToJSON(message.compression);\n }\n if (message.isInitSeg !== undefined && message.isInitSeg !== false) {\n obj.isInitSeg = message.isInitSeg;\n }\n if (message.sequenceNumber !== undefined && message.sequenceNumber !== 0) {\n obj.sequenceNumber = Math.round(message.sequenceNumber);\n }\n if (message.field10 !== undefined && message.field10 !== 0) {\n obj.field10 = Math.round(message.field10);\n }\n if (message.startMs !== undefined && message.startMs !== 0) {\n obj.startMs = Math.round(message.startMs);\n }\n if (message.durationMs !== undefined && message.durationMs !== 0) {\n obj.durationMs = Math.round(message.durationMs);\n }\n if (message.formatId !== undefined) {\n obj.formatId = FormatId.toJSON(message.formatId);\n }\n if (message.contentLength !== undefined && message.contentLength !== 0) {\n obj.contentLength = Math.round(message.contentLength);\n }\n if (message.timeRange !== undefined) {\n obj.timeRange = TimeRange.toJSON(message.timeRange);\n }\n return obj;\n },\n create(base) {\n return MediaHeader.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseMediaHeader();\n message.headerId = object.headerId ?? 0;\n message.videoId = object.videoId ?? \"\";\n message.itag = object.itag ?? 0;\n message.lmt = object.lmt ?? 0;\n message.xtags = object.xtags ?? \"\";\n message.startDataRange = object.startDataRange ?? 0;\n message.compression = object.compression ?? 0;\n message.isInitSeg = object.isInitSeg ?? false;\n message.sequenceNumber = object.sequenceNumber ?? 0;\n message.field10 = object.field10 ?? 0;\n message.startMs = object.startMs ?? 0;\n message.durationMs = object.durationMs ?? 0;\n message.formatId = (object.formatId !== undefined && object.formatId !== null)\n ? FormatId.fromPartial(object.formatId)\n : undefined;\n message.contentLength = object.contentLength ?? 0;\n message.timeRange = (object.timeRange !== undefined && object.timeRange !== null)\n ? TimeRange.fromPartial(object.timeRange)\n : undefined;\n return message;\n },\n};\nfunction longToNumber(int64) {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/playback_cookie.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { FormatId } from \"../misc/common.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBasePlaybackCookie() {\n return { field1: 0, field2: 0, videoFmt: undefined, audioFmt: undefined };\n}\nexport const PlaybackCookie = {\n encode(message, writer = new BinaryWriter()) {\n if (message.field1 !== undefined && message.field1 !== 0) {\n writer.uint32(8).int32(message.field1);\n }\n if (message.field2 !== undefined && message.field2 !== 0) {\n writer.uint32(16).int32(message.field2);\n }\n if (message.videoFmt !== undefined) {\n FormatId.encode(message.videoFmt, writer.uint32(58).fork()).join();\n }\n if (message.audioFmt !== undefined) {\n FormatId.encode(message.audioFmt, writer.uint32(66).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlaybackCookie();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.field1 = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.field2 = reader.int32();\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n message.videoFmt = FormatId.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n message.audioFmt = FormatId.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n field1: isSet(object.field1) ? globalThis.Number(object.field1) : 0,\n field2: isSet(object.field2) ? globalThis.Number(object.field2) : 0,\n videoFmt: isSet(object.videoFmt) ? FormatId.fromJSON(object.videoFmt) : undefined,\n audioFmt: isSet(object.audioFmt) ? FormatId.fromJSON(object.audioFmt) : undefined,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.field1 !== undefined && message.field1 !== 0) {\n obj.field1 = Math.round(message.field1);\n }\n if (message.field2 !== undefined && message.field2 !== 0) {\n obj.field2 = Math.round(message.field2);\n }\n if (message.videoFmt !== undefined) {\n obj.videoFmt = FormatId.toJSON(message.videoFmt);\n }\n if (message.audioFmt !== undefined) {\n obj.audioFmt = FormatId.toJSON(message.audioFmt);\n }\n return obj;\n },\n create(base) {\n return PlaybackCookie.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBasePlaybackCookie();\n message.field1 = object.field1 ?? 0;\n message.field2 = object.field2 ?? 0;\n message.videoFmt = (object.videoFmt !== undefined && object.videoFmt !== null)\n ? FormatId.fromPartial(object.videoFmt)\n : undefined;\n message.audioFmt = (object.audioFmt !== undefined && object.audioFmt !== null)\n ? FormatId.fromPartial(object.audioFmt)\n : undefined;\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/next_request_policy.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { PlaybackCookie } from \"./playback_cookie.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseNextRequestPolicy() {\n return {\n targetAudioReadaheadMs: 0,\n targetVideoReadaheadMs: 0,\n backoffTimeMs: 0,\n playbackCookie: undefined,\n videoId: \"\",\n };\n}\nexport const NextRequestPolicy = {\n encode(message, writer = new BinaryWriter()) {\n if (message.targetAudioReadaheadMs !== undefined && message.targetAudioReadaheadMs !== 0) {\n writer.uint32(8).int32(message.targetAudioReadaheadMs);\n }\n if (message.targetVideoReadaheadMs !== undefined && message.targetVideoReadaheadMs !== 0) {\n writer.uint32(16).int32(message.targetVideoReadaheadMs);\n }\n if (message.backoffTimeMs !== undefined && message.backoffTimeMs !== 0) {\n writer.uint32(32).int32(message.backoffTimeMs);\n }\n if (message.playbackCookie !== undefined) {\n PlaybackCookie.encode(message.playbackCookie, writer.uint32(58).fork()).join();\n }\n if (message.videoId !== undefined && message.videoId !== \"\") {\n writer.uint32(66).string(message.videoId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseNextRequestPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.targetAudioReadaheadMs = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.targetVideoReadaheadMs = reader.int32();\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n message.backoffTimeMs = reader.int32();\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n message.playbackCookie = PlaybackCookie.decode(reader, reader.uint32());\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n message.videoId = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n targetAudioReadaheadMs: isSet(object.targetAudioReadaheadMs)\n ? globalThis.Number(object.targetAudioReadaheadMs)\n : 0,\n targetVideoReadaheadMs: isSet(object.targetVideoReadaheadMs)\n ? globalThis.Number(object.targetVideoReadaheadMs)\n : 0,\n backoffTimeMs: isSet(object.backoffTimeMs) ? globalThis.Number(object.backoffTimeMs) : 0,\n playbackCookie: isSet(object.playbackCookie) ? PlaybackCookie.fromJSON(object.playbackCookie) : undefined,\n videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : \"\",\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.targetAudioReadaheadMs !== undefined && message.targetAudioReadaheadMs !== 0) {\n obj.targetAudioReadaheadMs = Math.round(message.targetAudioReadaheadMs);\n }\n if (message.targetVideoReadaheadMs !== undefined && message.targetVideoReadaheadMs !== 0) {\n obj.targetVideoReadaheadMs = Math.round(message.targetVideoReadaheadMs);\n }\n if (message.backoffTimeMs !== undefined && message.backoffTimeMs !== 0) {\n obj.backoffTimeMs = Math.round(message.backoffTimeMs);\n }\n if (message.playbackCookie !== undefined) {\n obj.playbackCookie = PlaybackCookie.toJSON(message.playbackCookie);\n }\n if (message.videoId !== undefined && message.videoId !== \"\") {\n obj.videoId = message.videoId;\n }\n return obj;\n },\n create(base) {\n return NextRequestPolicy.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseNextRequestPolicy();\n message.targetAudioReadaheadMs = object.targetAudioReadaheadMs ?? 0;\n message.targetVideoReadaheadMs = object.targetVideoReadaheadMs ?? 0;\n message.backoffTimeMs = object.backoffTimeMs ?? 0;\n message.playbackCookie = (object.playbackCookie !== undefined && object.playbackCookie !== null)\n ? PlaybackCookie.fromPartial(object.playbackCookie)\n : undefined;\n message.videoId = object.videoId ?? \"\";\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/playback_start_policy.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBasePlaybackStartPolicy() {\n return { startMinReadaheadPolicy: undefined, resumeMinReadaheadPolicy: undefined };\n}\nexport const PlaybackStartPolicy = {\n encode(message, writer = new BinaryWriter()) {\n if (message.startMinReadaheadPolicy !== undefined) {\n PlaybackStartPolicy_ReadaheadPolicy.encode(message.startMinReadaheadPolicy, writer.uint32(10).fork()).join();\n }\n if (message.resumeMinReadaheadPolicy !== undefined) {\n PlaybackStartPolicy_ReadaheadPolicy.encode(message.resumeMinReadaheadPolicy, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlaybackStartPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.startMinReadaheadPolicy = PlaybackStartPolicy_ReadaheadPolicy.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.resumeMinReadaheadPolicy = PlaybackStartPolicy_ReadaheadPolicy.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n startMinReadaheadPolicy: isSet(object.startMinReadaheadPolicy)\n ? PlaybackStartPolicy_ReadaheadPolicy.fromJSON(object.startMinReadaheadPolicy)\n : undefined,\n resumeMinReadaheadPolicy: isSet(object.resumeMinReadaheadPolicy)\n ? PlaybackStartPolicy_ReadaheadPolicy.fromJSON(object.resumeMinReadaheadPolicy)\n : undefined,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.startMinReadaheadPolicy !== undefined) {\n obj.startMinReadaheadPolicy = PlaybackStartPolicy_ReadaheadPolicy.toJSON(message.startMinReadaheadPolicy);\n }\n if (message.resumeMinReadaheadPolicy !== undefined) {\n obj.resumeMinReadaheadPolicy = PlaybackStartPolicy_ReadaheadPolicy.toJSON(message.resumeMinReadaheadPolicy);\n }\n return obj;\n },\n create(base) {\n return PlaybackStartPolicy.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBasePlaybackStartPolicy();\n message.startMinReadaheadPolicy =\n (object.startMinReadaheadPolicy !== undefined && object.startMinReadaheadPolicy !== null)\n ? PlaybackStartPolicy_ReadaheadPolicy.fromPartial(object.startMinReadaheadPolicy)\n : undefined;\n message.resumeMinReadaheadPolicy =\n (object.resumeMinReadaheadPolicy !== undefined && object.resumeMinReadaheadPolicy !== null)\n ? PlaybackStartPolicy_ReadaheadPolicy.fromPartial(object.resumeMinReadaheadPolicy)\n : undefined;\n return message;\n },\n};\nfunction createBasePlaybackStartPolicy_ReadaheadPolicy() {\n return { minReadaheadMs: 0, minBandwidthBytesPerSec: 0 };\n}\nexport const PlaybackStartPolicy_ReadaheadPolicy = {\n encode(message, writer = new BinaryWriter()) {\n if (message.minReadaheadMs !== undefined && message.minReadaheadMs !== 0) {\n writer.uint32(16).int32(message.minReadaheadMs);\n }\n if (message.minBandwidthBytesPerSec !== undefined && message.minBandwidthBytesPerSec !== 0) {\n writer.uint32(8).int32(message.minBandwidthBytesPerSec);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePlaybackStartPolicy_ReadaheadPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n if (tag !== 16) {\n break;\n }\n message.minReadaheadMs = reader.int32();\n continue;\n case 1:\n if (tag !== 8) {\n break;\n }\n message.minBandwidthBytesPerSec = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n minReadaheadMs: isSet(object.minReadaheadMs) ? globalThis.Number(object.minReadaheadMs) : 0,\n minBandwidthBytesPerSec: isSet(object.minBandwidthBytesPerSec)\n ? globalThis.Number(object.minBandwidthBytesPerSec)\n : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.minReadaheadMs !== undefined && message.minReadaheadMs !== 0) {\n obj.minReadaheadMs = Math.round(message.minReadaheadMs);\n }\n if (message.minBandwidthBytesPerSec !== undefined && message.minBandwidthBytesPerSec !== 0) {\n obj.minBandwidthBytesPerSec = Math.round(message.minBandwidthBytesPerSec);\n }\n return obj;\n },\n create(base) {\n return PlaybackStartPolicy_ReadaheadPolicy.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBasePlaybackStartPolicy_ReadaheadPolicy();\n message.minReadaheadMs = object.minReadaheadMs ?? 0;\n message.minBandwidthBytesPerSec = object.minBandwidthBytesPerSec ?? 0;\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/request_cancellation_policy.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseRequestCancellationPolicy() {\n return { N0: 0, items: [], jq: 0 };\n}\nexport const RequestCancellationPolicy = {\n encode(message, writer = new BinaryWriter()) {\n if (message.N0 !== undefined && message.N0 !== 0) {\n writer.uint32(8).int32(message.N0);\n }\n for (const v of message.items) {\n RequestCancellationPolicy_Item.encode(v, writer.uint32(18).fork()).join();\n }\n if (message.jq !== undefined && message.jq !== 0) {\n writer.uint32(24).int32(message.jq);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestCancellationPolicy();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.N0 = reader.int32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.items.push(RequestCancellationPolicy_Item.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.jq = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n N0: isSet(object.N0) ? globalThis.Number(object.N0) : 0,\n items: globalThis.Array.isArray(object?.items)\n ? object.items.map((e) => RequestCancellationPolicy_Item.fromJSON(e))\n : [],\n jq: isSet(object.jq) ? globalThis.Number(object.jq) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.N0 !== undefined && message.N0 !== 0) {\n obj.N0 = Math.round(message.N0);\n }\n if (message.items?.length) {\n obj.items = message.items.map((e) => RequestCancellationPolicy_Item.toJSON(e));\n }\n if (message.jq !== undefined && message.jq !== 0) {\n obj.jq = Math.round(message.jq);\n }\n return obj;\n },\n create(base) {\n return RequestCancellationPolicy.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseRequestCancellationPolicy();\n message.N0 = object.N0 ?? 0;\n message.items = object.items?.map((e) => RequestCancellationPolicy_Item.fromPartial(e)) || [];\n message.jq = object.jq ?? 0;\n return message;\n },\n};\nfunction createBaseRequestCancellationPolicy_Item() {\n return { fR: 0, NK: 0, minReadaheadMs: 0 };\n}\nexport const RequestCancellationPolicy_Item = {\n encode(message, writer = new BinaryWriter()) {\n if (message.fR !== undefined && message.fR !== 0) {\n writer.uint32(8).int32(message.fR);\n }\n if (message.NK !== undefined && message.NK !== 0) {\n writer.uint32(16).int32(message.NK);\n }\n if (message.minReadaheadMs !== undefined && message.minReadaheadMs !== 0) {\n writer.uint32(24).int32(message.minReadaheadMs);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseRequestCancellationPolicy_Item();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.fR = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.NK = reader.int32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.minReadaheadMs = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n fR: isSet(object.fR) ? globalThis.Number(object.fR) : 0,\n NK: isSet(object.NK) ? globalThis.Number(object.NK) : 0,\n minReadaheadMs: isSet(object.minReadaheadMs) ? globalThis.Number(object.minReadaheadMs) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.fR !== undefined && message.fR !== 0) {\n obj.fR = Math.round(message.fR);\n }\n if (message.NK !== undefined && message.NK !== 0) {\n obj.NK = Math.round(message.NK);\n }\n if (message.minReadaheadMs !== undefined && message.minReadaheadMs !== 0) {\n obj.minReadaheadMs = Math.round(message.minReadaheadMs);\n }\n return obj;\n },\n create(base) {\n return RequestCancellationPolicy_Item.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseRequestCancellationPolicy_Item();\n message.fR = object.fR ?? 0;\n message.NK = object.NK ?? 0;\n message.minReadaheadMs = object.minReadaheadMs ?? 0;\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/sabr_error.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseSabrError() {\n return { type: \"\", code: 0 };\n}\nexport const SabrError = {\n encode(message, writer = new BinaryWriter()) {\n if (message.type !== undefined && message.type !== \"\") {\n writer.uint32(10).string(message.type);\n }\n if (message.code !== undefined && message.code !== 0) {\n writer.uint32(16).int32(message.code);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSabrError();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.type = reader.string();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.code = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n type: isSet(object.type) ? globalThis.String(object.type) : \"\",\n code: isSet(object.code) ? globalThis.Number(object.code) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.type !== undefined && message.type !== \"\") {\n obj.type = message.type;\n }\n if (message.code !== undefined && message.code !== 0) {\n obj.code = Math.round(message.code);\n }\n return obj;\n },\n create(base) {\n return SabrError.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseSabrError();\n message.type = object.type ?? \"\";\n message.code = object.code ?? 0;\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/sabr_redirect.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseSabrRedirect() {\n return { url: \"\" };\n}\nexport const SabrRedirect = {\n encode(message, writer = new BinaryWriter()) {\n if (message.url !== undefined && message.url !== \"\") {\n writer.uint32(10).string(message.url);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseSabrRedirect();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.url = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return { url: isSet(object.url) ? globalThis.String(object.url) : \"\" };\n },\n toJSON(message) {\n const obj = {};\n if (message.url !== undefined && message.url !== \"\") {\n obj.url = message.url;\n }\n return obj;\n },\n create(base) {\n return SabrRedirect.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseSabrRedirect();\n message.url = object.url ?? \"\";\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/stream_protection_status.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseStreamProtectionStatus() {\n return { status: 0, field2: 0 };\n}\nexport const StreamProtectionStatus = {\n encode(message, writer = new BinaryWriter()) {\n if (message.status !== undefined && message.status !== 0) {\n writer.uint32(8).int32(message.status);\n }\n if (message.field2 !== undefined && message.field2 !== 0) {\n writer.uint32(16).int32(message.field2);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamProtectionStatus();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.status = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.field2 = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n status: isSet(object.status) ? globalThis.Number(object.status) : 0,\n field2: isSet(object.field2) ? globalThis.Number(object.field2) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.status !== undefined && message.status !== 0) {\n obj.status = Math.round(message.status);\n }\n if (message.field2 !== undefined && message.field2 !== 0) {\n obj.field2 = Math.round(message.field2);\n }\n return obj;\n },\n create(base) {\n return StreamProtectionStatus.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseStreamProtectionStatus();\n message.status = object.status ?? 0;\n message.field2 = object.field2 ?? 0;\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/media_capabilities.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseMediaCapabilities() {\n return { videoFormatCapabilities: [], audioFormatCapabilities: [], hdrModeBitmask: 0 };\n}\nexport const MediaCapabilities = {\n encode(message, writer = new BinaryWriter()) {\n for (const v of message.videoFormatCapabilities) {\n MediaCapabilities_VideoFormatCapability.encode(v, writer.uint32(10).fork()).join();\n }\n for (const v of message.audioFormatCapabilities) {\n MediaCapabilities_AudioFormatCapability.encode(v, writer.uint32(18).fork()).join();\n }\n if (message.hdrModeBitmask !== undefined && message.hdrModeBitmask !== 0) {\n writer.uint32(40).int32(message.hdrModeBitmask);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMediaCapabilities();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.videoFormatCapabilities.push(MediaCapabilities_VideoFormatCapability.decode(reader, reader.uint32()));\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.audioFormatCapabilities.push(MediaCapabilities_AudioFormatCapability.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n message.hdrModeBitmask = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n videoFormatCapabilities: globalThis.Array.isArray(object?.videoFormatCapabilities)\n ? object.videoFormatCapabilities.map((e) => MediaCapabilities_VideoFormatCapability.fromJSON(e))\n : [],\n audioFormatCapabilities: globalThis.Array.isArray(object?.audioFormatCapabilities)\n ? object.audioFormatCapabilities.map((e) => MediaCapabilities_AudioFormatCapability.fromJSON(e))\n : [],\n hdrModeBitmask: isSet(object.hdrModeBitmask) ? globalThis.Number(object.hdrModeBitmask) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.videoFormatCapabilities?.length) {\n obj.videoFormatCapabilities = message.videoFormatCapabilities.map((e) => MediaCapabilities_VideoFormatCapability.toJSON(e));\n }\n if (message.audioFormatCapabilities?.length) {\n obj.audioFormatCapabilities = message.audioFormatCapabilities.map((e) => MediaCapabilities_AudioFormatCapability.toJSON(e));\n }\n if (message.hdrModeBitmask !== undefined && message.hdrModeBitmask !== 0) {\n obj.hdrModeBitmask = Math.round(message.hdrModeBitmask);\n }\n return obj;\n },\n create(base) {\n return MediaCapabilities.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseMediaCapabilities();\n message.videoFormatCapabilities =\n object.videoFormatCapabilities?.map((e) => MediaCapabilities_VideoFormatCapability.fromPartial(e)) || [];\n message.audioFormatCapabilities =\n object.audioFormatCapabilities?.map((e) => MediaCapabilities_AudioFormatCapability.fromPartial(e)) || [];\n message.hdrModeBitmask = object.hdrModeBitmask ?? 0;\n return message;\n },\n};\nfunction createBaseMediaCapabilities_VideoFormatCapability() {\n return { videoCodec: 0, maxHeight: 0, maxWidth: 0, maxFramerate: 0, maxBitrateBps: 0, is10BitSupported: false };\n}\nexport const MediaCapabilities_VideoFormatCapability = {\n encode(message, writer = new BinaryWriter()) {\n if (message.videoCodec !== undefined && message.videoCodec !== 0) {\n writer.uint32(8).int32(message.videoCodec);\n }\n if (message.maxHeight !== undefined && message.maxHeight !== 0) {\n writer.uint32(24).int32(message.maxHeight);\n }\n if (message.maxWidth !== undefined && message.maxWidth !== 0) {\n writer.uint32(32).int32(message.maxWidth);\n }\n if (message.maxFramerate !== undefined && message.maxFramerate !== 0) {\n writer.uint32(88).int32(message.maxFramerate);\n }\n if (message.maxBitrateBps !== undefined && message.maxBitrateBps !== 0) {\n writer.uint32(96).int32(message.maxBitrateBps);\n }\n if (message.is10BitSupported !== undefined && message.is10BitSupported !== false) {\n writer.uint32(120).bool(message.is10BitSupported);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMediaCapabilities_VideoFormatCapability();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.videoCodec = reader.int32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.maxHeight = reader.int32();\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n message.maxWidth = reader.int32();\n continue;\n case 11:\n if (tag !== 88) {\n break;\n }\n message.maxFramerate = reader.int32();\n continue;\n case 12:\n if (tag !== 96) {\n break;\n }\n message.maxBitrateBps = reader.int32();\n continue;\n case 15:\n if (tag !== 120) {\n break;\n }\n message.is10BitSupported = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n videoCodec: isSet(object.videoCodec) ? globalThis.Number(object.videoCodec) : 0,\n maxHeight: isSet(object.maxHeight) ? globalThis.Number(object.maxHeight) : 0,\n maxWidth: isSet(object.maxWidth) ? globalThis.Number(object.maxWidth) : 0,\n maxFramerate: isSet(object.maxFramerate) ? globalThis.Number(object.maxFramerate) : 0,\n maxBitrateBps: isSet(object.maxBitrateBps) ? globalThis.Number(object.maxBitrateBps) : 0,\n is10BitSupported: isSet(object.is10BitSupported) ? globalThis.Boolean(object.is10BitSupported) : false,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.videoCodec !== undefined && message.videoCodec !== 0) {\n obj.videoCodec = Math.round(message.videoCodec);\n }\n if (message.maxHeight !== undefined && message.maxHeight !== 0) {\n obj.maxHeight = Math.round(message.maxHeight);\n }\n if (message.maxWidth !== undefined && message.maxWidth !== 0) {\n obj.maxWidth = Math.round(message.maxWidth);\n }\n if (message.maxFramerate !== undefined && message.maxFramerate !== 0) {\n obj.maxFramerate = Math.round(message.maxFramerate);\n }\n if (message.maxBitrateBps !== undefined && message.maxBitrateBps !== 0) {\n obj.maxBitrateBps = Math.round(message.maxBitrateBps);\n }\n if (message.is10BitSupported !== undefined && message.is10BitSupported !== false) {\n obj.is10BitSupported = message.is10BitSupported;\n }\n return obj;\n },\n create(base) {\n return MediaCapabilities_VideoFormatCapability.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseMediaCapabilities_VideoFormatCapability();\n message.videoCodec = object.videoCodec ?? 0;\n message.maxHeight = object.maxHeight ?? 0;\n message.maxWidth = object.maxWidth ?? 0;\n message.maxFramerate = object.maxFramerate ?? 0;\n message.maxBitrateBps = object.maxBitrateBps ?? 0;\n message.is10BitSupported = object.is10BitSupported ?? false;\n return message;\n },\n};\nfunction createBaseMediaCapabilities_AudioFormatCapability() {\n return { audioCodec: 0, numChannels: 0, maxBitrateBps: 0, spatialCapabilityBitmask: 0 };\n}\nexport const MediaCapabilities_AudioFormatCapability = {\n encode(message, writer = new BinaryWriter()) {\n if (message.audioCodec !== undefined && message.audioCodec !== 0) {\n writer.uint32(8).int32(message.audioCodec);\n }\n if (message.numChannels !== undefined && message.numChannels !== 0) {\n writer.uint32(16).int32(message.numChannels);\n }\n if (message.maxBitrateBps !== undefined && message.maxBitrateBps !== 0) {\n writer.uint32(24).int32(message.maxBitrateBps);\n }\n if (message.spatialCapabilityBitmask !== undefined && message.spatialCapabilityBitmask !== 0) {\n writer.uint32(48).int32(message.spatialCapabilityBitmask);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseMediaCapabilities_AudioFormatCapability();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.audioCodec = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.numChannels = reader.int32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.maxBitrateBps = reader.int32();\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n message.spatialCapabilityBitmask = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n audioCodec: isSet(object.audioCodec) ? globalThis.Number(object.audioCodec) : 0,\n numChannels: isSet(object.numChannels) ? globalThis.Number(object.numChannels) : 0,\n maxBitrateBps: isSet(object.maxBitrateBps) ? globalThis.Number(object.maxBitrateBps) : 0,\n spatialCapabilityBitmask: isSet(object.spatialCapabilityBitmask)\n ? globalThis.Number(object.spatialCapabilityBitmask)\n : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.audioCodec !== undefined && message.audioCodec !== 0) {\n obj.audioCodec = Math.round(message.audioCodec);\n }\n if (message.numChannels !== undefined && message.numChannels !== 0) {\n obj.numChannels = Math.round(message.numChannels);\n }\n if (message.maxBitrateBps !== undefined && message.maxBitrateBps !== 0) {\n obj.maxBitrateBps = Math.round(message.maxBitrateBps);\n }\n if (message.spatialCapabilityBitmask !== undefined && message.spatialCapabilityBitmask !== 0) {\n obj.spatialCapabilityBitmask = Math.round(message.spatialCapabilityBitmask);\n }\n return obj;\n },\n create(base) {\n return MediaCapabilities_AudioFormatCapability.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseMediaCapabilities_AudioFormatCapability();\n message.audioCodec = object.audioCodec ?? 0;\n message.numChannels = object.numChannels ?? 0;\n message.maxBitrateBps = object.maxBitrateBps ?? 0;\n message.spatialCapabilityBitmask = object.spatialCapabilityBitmask ?? 0;\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/client_abr_state.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { MediaCapabilities } from \"./media_capabilities.js\";\nexport const protobufPackage = \"video_streaming\";\nexport var ClientAbrState_MediaType;\n(function (ClientAbrState_MediaType) {\n ClientAbrState_MediaType[ClientAbrState_MediaType[\"MEDIA_TYPE_DEFAULT\"] = 0] = \"MEDIA_TYPE_DEFAULT\";\n ClientAbrState_MediaType[ClientAbrState_MediaType[\"MEDIA_TYPE_AUDIO\"] = 1] = \"MEDIA_TYPE_AUDIO\";\n ClientAbrState_MediaType[ClientAbrState_MediaType[\"MEDIA_TYPE_VIDEO\"] = 2] = \"MEDIA_TYPE_VIDEO\";\n ClientAbrState_MediaType[ClientAbrState_MediaType[\"USE_SERVER_FORMAT_FILTER\"] = 3] = \"USE_SERVER_FORMAT_FILTER\";\n ClientAbrState_MediaType[ClientAbrState_MediaType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ClientAbrState_MediaType || (ClientAbrState_MediaType = {}));\nexport function clientAbrState_MediaTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"MEDIA_TYPE_DEFAULT\":\n return ClientAbrState_MediaType.MEDIA_TYPE_DEFAULT;\n case 1:\n case \"MEDIA_TYPE_AUDIO\":\n return ClientAbrState_MediaType.MEDIA_TYPE_AUDIO;\n case 2:\n case \"MEDIA_TYPE_VIDEO\":\n return ClientAbrState_MediaType.MEDIA_TYPE_VIDEO;\n case 3:\n case \"USE_SERVER_FORMAT_FILTER\":\n return ClientAbrState_MediaType.USE_SERVER_FORMAT_FILTER;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ClientAbrState_MediaType.UNRECOGNIZED;\n }\n}\nexport function clientAbrState_MediaTypeToJSON(object) {\n switch (object) {\n case ClientAbrState_MediaType.MEDIA_TYPE_DEFAULT:\n return \"MEDIA_TYPE_DEFAULT\";\n case ClientAbrState_MediaType.MEDIA_TYPE_AUDIO:\n return \"MEDIA_TYPE_AUDIO\";\n case ClientAbrState_MediaType.MEDIA_TYPE_VIDEO:\n return \"MEDIA_TYPE_VIDEO\";\n case ClientAbrState_MediaType.USE_SERVER_FORMAT_FILTER:\n return \"USE_SERVER_FORMAT_FILTER\";\n case ClientAbrState_MediaType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nfunction createBaseClientAbrState() {\n return {\n timeSinceLastManualFormatSelectionMs: 0,\n lastManualDirection: 0,\n quality: 0,\n detailedNetworkType: 0,\n maxWidth: 0,\n maxHeight: 0,\n selectedQualityHeight: 0,\n r7: 0,\n startTimeMs: 0,\n timeSinceLastSeek: 0,\n visibility: 0,\n timeSinceLastReq: 0,\n mediaCapabilities: undefined,\n timeSinceLastAction: 0,\n mediaType: 0,\n playerState: 0,\n rangeCompression: false,\n Jda: 0,\n qw: 0,\n Ky: 0,\n sabrReportRequestCancellationInfo: 0,\n l: false,\n G7: 0,\n preferVp9: false,\n qj: 0,\n Hx: 0,\n isPrefetch: false,\n sabrSupportQualityConstraints: 0,\n sabrLicenseConstraint: new Uint8Array(0),\n allowProximaLiveLatency: 0,\n sabrForceProxima: 0,\n Tqb: 0,\n sabrForceMaxNetworkInterruptionDurationMs: 0,\n playbackRate: 0,\n };\n}\nexport const ClientAbrState = {\n encode(message, writer = new BinaryWriter()) {\n if (message.timeSinceLastManualFormatSelectionMs !== undefined && message.timeSinceLastManualFormatSelectionMs !== 0) {\n writer.uint32(104).int32(message.timeSinceLastManualFormatSelectionMs);\n }\n if (message.lastManualDirection !== undefined && message.lastManualDirection !== 0) {\n writer.uint32(112).int32(message.lastManualDirection);\n }\n if (message.quality !== undefined && message.quality !== 0) {\n writer.uint32(128).int32(message.quality);\n }\n if (message.detailedNetworkType !== undefined && message.detailedNetworkType !== 0) {\n writer.uint32(136).int32(message.detailedNetworkType);\n }\n if (message.maxWidth !== undefined && message.maxWidth !== 0) {\n writer.uint32(144).int32(message.maxWidth);\n }\n if (message.maxHeight !== undefined && message.maxHeight !== 0) {\n writer.uint32(152).int32(message.maxHeight);\n }\n if (message.selectedQualityHeight !== undefined && message.selectedQualityHeight !== 0) {\n writer.uint32(168).int32(message.selectedQualityHeight);\n }\n if (message.r7 !== undefined && message.r7 !== 0) {\n writer.uint32(184).int32(message.r7);\n }\n if (message.startTimeMs !== undefined && message.startTimeMs !== 0) {\n writer.uint32(224).int64(message.startTimeMs);\n }\n if (message.timeSinceLastSeek !== undefined && message.timeSinceLastSeek !== 0) {\n writer.uint32(232).int64(message.timeSinceLastSeek);\n }\n if (message.visibility !== undefined && message.visibility !== 0) {\n writer.uint32(272).int32(message.visibility);\n }\n if (message.timeSinceLastReq !== undefined && message.timeSinceLastReq !== 0) {\n writer.uint32(288).int64(message.timeSinceLastReq);\n }\n if (message.mediaCapabilities !== undefined) {\n MediaCapabilities.encode(message.mediaCapabilities, writer.uint32(306).fork()).join();\n }\n if (message.timeSinceLastAction !== undefined && message.timeSinceLastAction !== 0) {\n writer.uint32(312).int64(message.timeSinceLastAction);\n }\n if (message.mediaType !== undefined && message.mediaType !== 0) {\n writer.uint32(320).int32(message.mediaType);\n }\n if (message.playerState !== undefined && message.playerState !== 0) {\n writer.uint32(352).int64(message.playerState);\n }\n if (message.rangeCompression !== undefined && message.rangeCompression !== false) {\n writer.uint32(368).bool(message.rangeCompression);\n }\n if (message.Jda !== undefined && message.Jda !== 0) {\n writer.uint32(384).int32(message.Jda);\n }\n if (message.qw !== undefined && message.qw !== 0) {\n writer.uint32(400).int32(message.qw);\n }\n if (message.Ky !== undefined && message.Ky !== 0) {\n writer.uint32(408).int32(message.Ky);\n }\n if (message.sabrReportRequestCancellationInfo !== undefined && message.sabrReportRequestCancellationInfo !== 0) {\n writer.uint32(432).int32(message.sabrReportRequestCancellationInfo);\n }\n if (message.l !== undefined && message.l !== false) {\n writer.uint32(448).bool(message.l);\n }\n if (message.G7 !== undefined && message.G7 !== 0) {\n writer.uint32(456).int64(message.G7);\n }\n if (message.preferVp9 !== undefined && message.preferVp9 !== false) {\n writer.uint32(464).bool(message.preferVp9);\n }\n if (message.qj !== undefined && message.qj !== 0) {\n writer.uint32(472).int32(message.qj);\n }\n if (message.Hx !== undefined && message.Hx !== 0) {\n writer.uint32(480).int32(message.Hx);\n }\n if (message.isPrefetch !== undefined && message.isPrefetch !== false) {\n writer.uint32(488).bool(message.isPrefetch);\n }\n if (message.sabrSupportQualityConstraints !== undefined && message.sabrSupportQualityConstraints !== 0) {\n writer.uint32(496).int32(message.sabrSupportQualityConstraints);\n }\n if (message.sabrLicenseConstraint !== undefined && message.sabrLicenseConstraint.length !== 0) {\n writer.uint32(506).bytes(message.sabrLicenseConstraint);\n }\n if (message.allowProximaLiveLatency !== undefined && message.allowProximaLiveLatency !== 0) {\n writer.uint32(512).int32(message.allowProximaLiveLatency);\n }\n if (message.sabrForceProxima !== undefined && message.sabrForceProxima !== 0) {\n writer.uint32(528).int32(message.sabrForceProxima);\n }\n if (message.Tqb !== undefined && message.Tqb !== 0) {\n writer.uint32(536).int32(message.Tqb);\n }\n if (message.sabrForceMaxNetworkInterruptionDurationMs !== undefined &&\n message.sabrForceMaxNetworkInterruptionDurationMs !== 0) {\n writer.uint32(544).int64(message.sabrForceMaxNetworkInterruptionDurationMs);\n }\n if (message.playbackRate !== undefined && message.playbackRate !== 0) {\n writer.uint32(2285).float(message.playbackRate);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseClientAbrState();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 13:\n if (tag !== 104) {\n break;\n }\n message.timeSinceLastManualFormatSelectionMs = reader.int32();\n continue;\n case 14:\n if (tag !== 112) {\n break;\n }\n message.lastManualDirection = reader.int32();\n continue;\n case 16:\n if (tag !== 128) {\n break;\n }\n message.quality = reader.int32();\n continue;\n case 17:\n if (tag !== 136) {\n break;\n }\n message.detailedNetworkType = reader.int32();\n continue;\n case 18:\n if (tag !== 144) {\n break;\n }\n message.maxWidth = reader.int32();\n continue;\n case 19:\n if (tag !== 152) {\n break;\n }\n message.maxHeight = reader.int32();\n continue;\n case 21:\n if (tag !== 168) {\n break;\n }\n message.selectedQualityHeight = reader.int32();\n continue;\n case 23:\n if (tag !== 184) {\n break;\n }\n message.r7 = reader.int32();\n continue;\n case 28:\n if (tag !== 224) {\n break;\n }\n message.startTimeMs = longToNumber(reader.int64());\n continue;\n case 29:\n if (tag !== 232) {\n break;\n }\n message.timeSinceLastSeek = longToNumber(reader.int64());\n continue;\n case 34:\n if (tag !== 272) {\n break;\n }\n message.visibility = reader.int32();\n continue;\n case 36:\n if (tag !== 288) {\n break;\n }\n message.timeSinceLastReq = longToNumber(reader.int64());\n continue;\n case 38:\n if (tag !== 306) {\n break;\n }\n message.mediaCapabilities = MediaCapabilities.decode(reader, reader.uint32());\n continue;\n case 39:\n if (tag !== 312) {\n break;\n }\n message.timeSinceLastAction = longToNumber(reader.int64());\n continue;\n case 40:\n if (tag !== 320) {\n break;\n }\n message.mediaType = reader.int32();\n continue;\n case 44:\n if (tag !== 352) {\n break;\n }\n message.playerState = longToNumber(reader.int64());\n continue;\n case 46:\n if (tag !== 368) {\n break;\n }\n message.rangeCompression = reader.bool();\n continue;\n case 48:\n if (tag !== 384) {\n break;\n }\n message.Jda = reader.int32();\n continue;\n case 50:\n if (tag !== 400) {\n break;\n }\n message.qw = reader.int32();\n continue;\n case 51:\n if (tag !== 408) {\n break;\n }\n message.Ky = reader.int32();\n continue;\n case 54:\n if (tag !== 432) {\n break;\n }\n message.sabrReportRequestCancellationInfo = reader.int32();\n continue;\n case 56:\n if (tag !== 448) {\n break;\n }\n message.l = reader.bool();\n continue;\n case 57:\n if (tag !== 456) {\n break;\n }\n message.G7 = longToNumber(reader.int64());\n continue;\n case 58:\n if (tag !== 464) {\n break;\n }\n message.preferVp9 = reader.bool();\n continue;\n case 59:\n if (tag !== 472) {\n break;\n }\n message.qj = reader.int32();\n continue;\n case 60:\n if (tag !== 480) {\n break;\n }\n message.Hx = reader.int32();\n continue;\n case 61:\n if (tag !== 488) {\n break;\n }\n message.isPrefetch = reader.bool();\n continue;\n case 62:\n if (tag !== 496) {\n break;\n }\n message.sabrSupportQualityConstraints = reader.int32();\n continue;\n case 63:\n if (tag !== 506) {\n break;\n }\n message.sabrLicenseConstraint = reader.bytes();\n continue;\n case 64:\n if (tag !== 512) {\n break;\n }\n message.allowProximaLiveLatency = reader.int32();\n continue;\n case 66:\n if (tag !== 528) {\n break;\n }\n message.sabrForceProxima = reader.int32();\n continue;\n case 67:\n if (tag !== 536) {\n break;\n }\n message.Tqb = reader.int32();\n continue;\n case 68:\n if (tag !== 544) {\n break;\n }\n message.sabrForceMaxNetworkInterruptionDurationMs = longToNumber(reader.int64());\n continue;\n case 285:\n if (tag !== 2285) {\n break;\n }\n message.playbackRate = reader.float();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n timeSinceLastManualFormatSelectionMs: isSet(object.timeSinceLastManualFormatSelectionMs)\n ? globalThis.Number(object.timeSinceLastManualFormatSelectionMs)\n : 0,\n lastManualDirection: isSet(object.lastManualDirection) ? globalThis.Number(object.lastManualDirection) : 0,\n quality: isSet(object.quality) ? globalThis.Number(object.quality) : 0,\n detailedNetworkType: isSet(object.detailedNetworkType) ? globalThis.Number(object.detailedNetworkType) : 0,\n maxWidth: isSet(object.maxWidth) ? globalThis.Number(object.maxWidth) : 0,\n maxHeight: isSet(object.maxHeight) ? globalThis.Number(object.maxHeight) : 0,\n selectedQualityHeight: isSet(object.selectedQualityHeight) ? globalThis.Number(object.selectedQualityHeight) : 0,\n r7: isSet(object.r7) ? globalThis.Number(object.r7) : 0,\n startTimeMs: isSet(object.startTimeMs) ? globalThis.Number(object.startTimeMs) : 0,\n timeSinceLastSeek: isSet(object.timeSinceLastSeek) ? globalThis.Number(object.timeSinceLastSeek) : 0,\n visibility: isSet(object.visibility) ? globalThis.Number(object.visibility) : 0,\n timeSinceLastReq: isSet(object.timeSinceLastReq) ? globalThis.Number(object.timeSinceLastReq) : 0,\n mediaCapabilities: isSet(object.mediaCapabilities)\n ? MediaCapabilities.fromJSON(object.mediaCapabilities)\n : undefined,\n timeSinceLastAction: isSet(object.timeSinceLastAction) ? globalThis.Number(object.timeSinceLastAction) : 0,\n mediaType: isSet(object.mediaType) ? clientAbrState_MediaTypeFromJSON(object.mediaType) : 0,\n playerState: isSet(object.playerState) ? globalThis.Number(object.playerState) : 0,\n rangeCompression: isSet(object.rangeCompression) ? globalThis.Boolean(object.rangeCompression) : false,\n Jda: isSet(object.Jda) ? globalThis.Number(object.Jda) : 0,\n qw: isSet(object.qw) ? globalThis.Number(object.qw) : 0,\n Ky: isSet(object.Ky) ? globalThis.Number(object.Ky) : 0,\n sabrReportRequestCancellationInfo: isSet(object.sabrReportRequestCancellationInfo)\n ? globalThis.Number(object.sabrReportRequestCancellationInfo)\n : 0,\n l: isSet(object.l) ? globalThis.Boolean(object.l) : false,\n G7: isSet(object.G7) ? globalThis.Number(object.G7) : 0,\n preferVp9: isSet(object.preferVp9) ? globalThis.Boolean(object.preferVp9) : false,\n qj: isSet(object.qj) ? globalThis.Number(object.qj) : 0,\n Hx: isSet(object.Hx) ? globalThis.Number(object.Hx) : 0,\n isPrefetch: isSet(object.isPrefetch) ? globalThis.Boolean(object.isPrefetch) : false,\n sabrSupportQualityConstraints: isSet(object.sabrSupportQualityConstraints)\n ? globalThis.Number(object.sabrSupportQualityConstraints)\n : 0,\n sabrLicenseConstraint: isSet(object.sabrLicenseConstraint)\n ? bytesFromBase64(object.sabrLicenseConstraint)\n : new Uint8Array(0),\n allowProximaLiveLatency: isSet(object.allowProximaLiveLatency)\n ? globalThis.Number(object.allowProximaLiveLatency)\n : 0,\n sabrForceProxima: isSet(object.sabrForceProxima) ? globalThis.Number(object.sabrForceProxima) : 0,\n Tqb: isSet(object.Tqb) ? globalThis.Number(object.Tqb) : 0,\n sabrForceMaxNetworkInterruptionDurationMs: isSet(object.sabrForceMaxNetworkInterruptionDurationMs)\n ? globalThis.Number(object.sabrForceMaxNetworkInterruptionDurationMs)\n : 0,\n playbackRate: isSet(object.playbackRate) ? globalThis.Number(object.playbackRate) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.timeSinceLastManualFormatSelectionMs !== undefined && message.timeSinceLastManualFormatSelectionMs !== 0) {\n obj.timeSinceLastManualFormatSelectionMs = Math.round(message.timeSinceLastManualFormatSelectionMs);\n }\n if (message.lastManualDirection !== undefined && message.lastManualDirection !== 0) {\n obj.lastManualDirection = Math.round(message.lastManualDirection);\n }\n if (message.quality !== undefined && message.quality !== 0) {\n obj.quality = Math.round(message.quality);\n }\n if (message.detailedNetworkType !== undefined && message.detailedNetworkType !== 0) {\n obj.detailedNetworkType = Math.round(message.detailedNetworkType);\n }\n if (message.maxWidth !== undefined && message.maxWidth !== 0) {\n obj.maxWidth = Math.round(message.maxWidth);\n }\n if (message.maxHeight !== undefined && message.maxHeight !== 0) {\n obj.maxHeight = Math.round(message.maxHeight);\n }\n if (message.selectedQualityHeight !== undefined && message.selectedQualityHeight !== 0) {\n obj.selectedQualityHeight = Math.round(message.selectedQualityHeight);\n }\n if (message.r7 !== undefined && message.r7 !== 0) {\n obj.r7 = Math.round(message.r7);\n }\n if (message.startTimeMs !== undefined && message.startTimeMs !== 0) {\n obj.startTimeMs = Math.round(message.startTimeMs);\n }\n if (message.timeSinceLastSeek !== undefined && message.timeSinceLastSeek !== 0) {\n obj.timeSinceLastSeek = Math.round(message.timeSinceLastSeek);\n }\n if (message.visibility !== undefined && message.visibility !== 0) {\n obj.visibility = Math.round(message.visibility);\n }\n if (message.timeSinceLastReq !== undefined && message.timeSinceLastReq !== 0) {\n obj.timeSinceLastReq = Math.round(message.timeSinceLastReq);\n }\n if (message.mediaCapabilities !== undefined) {\n obj.mediaCapabilities = MediaCapabilities.toJSON(message.mediaCapabilities);\n }\n if (message.timeSinceLastAction !== undefined && message.timeSinceLastAction !== 0) {\n obj.timeSinceLastAction = Math.round(message.timeSinceLastAction);\n }\n if (message.mediaType !== undefined && message.mediaType !== 0) {\n obj.mediaType = clientAbrState_MediaTypeToJSON(message.mediaType);\n }\n if (message.playerState !== undefined && message.playerState !== 0) {\n obj.playerState = Math.round(message.playerState);\n }\n if (message.rangeCompression !== undefined && message.rangeCompression !== false) {\n obj.rangeCompression = message.rangeCompression;\n }\n if (message.Jda !== undefined && message.Jda !== 0) {\n obj.Jda = Math.round(message.Jda);\n }\n if (message.qw !== undefined && message.qw !== 0) {\n obj.qw = Math.round(message.qw);\n }\n if (message.Ky !== undefined && message.Ky !== 0) {\n obj.Ky = Math.round(message.Ky);\n }\n if (message.sabrReportRequestCancellationInfo !== undefined && message.sabrReportRequestCancellationInfo !== 0) {\n obj.sabrReportRequestCancellationInfo = Math.round(message.sabrReportRequestCancellationInfo);\n }\n if (message.l !== undefined && message.l !== false) {\n obj.l = message.l;\n }\n if (message.G7 !== undefined && message.G7 !== 0) {\n obj.G7 = Math.round(message.G7);\n }\n if (message.preferVp9 !== undefined && message.preferVp9 !== false) {\n obj.preferVp9 = message.preferVp9;\n }\n if (message.qj !== undefined && message.qj !== 0) {\n obj.qj = Math.round(message.qj);\n }\n if (message.Hx !== undefined && message.Hx !== 0) {\n obj.Hx = Math.round(message.Hx);\n }\n if (message.isPrefetch !== undefined && message.isPrefetch !== false) {\n obj.isPrefetch = message.isPrefetch;\n }\n if (message.sabrSupportQualityConstraints !== undefined && message.sabrSupportQualityConstraints !== 0) {\n obj.sabrSupportQualityConstraints = Math.round(message.sabrSupportQualityConstraints);\n }\n if (message.sabrLicenseConstraint !== undefined && message.sabrLicenseConstraint.length !== 0) {\n obj.sabrLicenseConstraint = base64FromBytes(message.sabrLicenseConstraint);\n }\n if (message.allowProximaLiveLatency !== undefined && message.allowProximaLiveLatency !== 0) {\n obj.allowProximaLiveLatency = Math.round(message.allowProximaLiveLatency);\n }\n if (message.sabrForceProxima !== undefined && message.sabrForceProxima !== 0) {\n obj.sabrForceProxima = Math.round(message.sabrForceProxima);\n }\n if (message.Tqb !== undefined && message.Tqb !== 0) {\n obj.Tqb = Math.round(message.Tqb);\n }\n if (message.sabrForceMaxNetworkInterruptionDurationMs !== undefined &&\n message.sabrForceMaxNetworkInterruptionDurationMs !== 0) {\n obj.sabrForceMaxNetworkInterruptionDurationMs = Math.round(message.sabrForceMaxNetworkInterruptionDurationMs);\n }\n if (message.playbackRate !== undefined && message.playbackRate !== 0) {\n obj.playbackRate = message.playbackRate;\n }\n return obj;\n },\n create(base) {\n return ClientAbrState.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseClientAbrState();\n message.timeSinceLastManualFormatSelectionMs = object.timeSinceLastManualFormatSelectionMs ?? 0;\n message.lastManualDirection = object.lastManualDirection ?? 0;\n message.quality = object.quality ?? 0;\n message.detailedNetworkType = object.detailedNetworkType ?? 0;\n message.maxWidth = object.maxWidth ?? 0;\n message.maxHeight = object.maxHeight ?? 0;\n message.selectedQualityHeight = object.selectedQualityHeight ?? 0;\n message.r7 = object.r7 ?? 0;\n message.startTimeMs = object.startTimeMs ?? 0;\n message.timeSinceLastSeek = object.timeSinceLastSeek ?? 0;\n message.visibility = object.visibility ?? 0;\n message.timeSinceLastReq = object.timeSinceLastReq ?? 0;\n message.mediaCapabilities = (object.mediaCapabilities !== undefined && object.mediaCapabilities !== null)\n ? MediaCapabilities.fromPartial(object.mediaCapabilities)\n : undefined;\n message.timeSinceLastAction = object.timeSinceLastAction ?? 0;\n message.mediaType = object.mediaType ?? 0;\n message.playerState = object.playerState ?? 0;\n message.rangeCompression = object.rangeCompression ?? false;\n message.Jda = object.Jda ?? 0;\n message.qw = object.qw ?? 0;\n message.Ky = object.Ky ?? 0;\n message.sabrReportRequestCancellationInfo = object.sabrReportRequestCancellationInfo ?? 0;\n message.l = object.l ?? false;\n message.G7 = object.G7 ?? 0;\n message.preferVp9 = object.preferVp9 ?? false;\n message.qj = object.qj ?? 0;\n message.Hx = object.Hx ?? 0;\n message.isPrefetch = object.isPrefetch ?? false;\n message.sabrSupportQualityConstraints = object.sabrSupportQualityConstraints ?? 0;\n message.sabrLicenseConstraint = object.sabrLicenseConstraint ?? new Uint8Array(0);\n message.allowProximaLiveLatency = object.allowProximaLiveLatency ?? 0;\n message.sabrForceProxima = object.sabrForceProxima ?? 0;\n message.Tqb = object.Tqb ?? 0;\n message.sabrForceMaxNetworkInterruptionDurationMs = object.sabrForceMaxNetworkInterruptionDurationMs ?? 0;\n message.playbackRate = object.playbackRate ?? 0;\n return message;\n },\n};\nfunction bytesFromBase64(b64) {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n}\nfunction longToNumber(int64) {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/streamer_context.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nexport var StreamerContext_ClientFormFactor;\n(function (StreamerContext_ClientFormFactor) {\n StreamerContext_ClientFormFactor[StreamerContext_ClientFormFactor[\"UNKNOWN_FORM_FACTOR\"] = 0] = \"UNKNOWN_FORM_FACTOR\";\n StreamerContext_ClientFormFactor[StreamerContext_ClientFormFactor[\"FORM_FACTOR_VAL1\"] = 1] = \"FORM_FACTOR_VAL1\";\n StreamerContext_ClientFormFactor[StreamerContext_ClientFormFactor[\"FORM_FACTOR_VAL2\"] = 2] = \"FORM_FACTOR_VAL2\";\n StreamerContext_ClientFormFactor[StreamerContext_ClientFormFactor[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(StreamerContext_ClientFormFactor || (StreamerContext_ClientFormFactor = {}));\nexport function streamerContext_ClientFormFactorFromJSON(object) {\n switch (object) {\n case 0:\n case \"UNKNOWN_FORM_FACTOR\":\n return StreamerContext_ClientFormFactor.UNKNOWN_FORM_FACTOR;\n case 1:\n case \"FORM_FACTOR_VAL1\":\n return StreamerContext_ClientFormFactor.FORM_FACTOR_VAL1;\n case 2:\n case \"FORM_FACTOR_VAL2\":\n return StreamerContext_ClientFormFactor.FORM_FACTOR_VAL2;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return StreamerContext_ClientFormFactor.UNRECOGNIZED;\n }\n}\nexport function streamerContext_ClientFormFactorToJSON(object) {\n switch (object) {\n case StreamerContext_ClientFormFactor.UNKNOWN_FORM_FACTOR:\n return \"UNKNOWN_FORM_FACTOR\";\n case StreamerContext_ClientFormFactor.FORM_FACTOR_VAL1:\n return \"FORM_FACTOR_VAL1\";\n case StreamerContext_ClientFormFactor.FORM_FACTOR_VAL2:\n return \"FORM_FACTOR_VAL2\";\n case StreamerContext_ClientFormFactor.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nfunction createBaseStreamerContext() {\n return {\n clientInfo: undefined,\n poToken: new Uint8Array(0),\n playbackCookie: new Uint8Array(0),\n gp: new Uint8Array(0),\n field5: [],\n field6: [],\n field7: \"\",\n field8: undefined,\n };\n}\nexport const StreamerContext = {\n encode(message, writer = new BinaryWriter()) {\n if (message.clientInfo !== undefined) {\n StreamerContext_ClientInfo.encode(message.clientInfo, writer.uint32(10).fork()).join();\n }\n if (message.poToken !== undefined && message.poToken.length !== 0) {\n writer.uint32(18).bytes(message.poToken);\n }\n if (message.playbackCookie !== undefined && message.playbackCookie.length !== 0) {\n writer.uint32(26).bytes(message.playbackCookie);\n }\n if (message.gp !== undefined && message.gp.length !== 0) {\n writer.uint32(34).bytes(message.gp);\n }\n for (const v of message.field5) {\n StreamerContext_Fqa.encode(v, writer.uint32(42).fork()).join();\n }\n writer.uint32(50).fork();\n for (const v of message.field6) {\n writer.int32(v);\n }\n writer.join();\n if (message.field7 !== undefined && message.field7 !== \"\") {\n writer.uint32(58).string(message.field7);\n }\n if (message.field8 !== undefined) {\n StreamerContext_Gqa.encode(message.field8, writer.uint32(66).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamerContext();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.clientInfo = StreamerContext_ClientInfo.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.poToken = reader.bytes();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.playbackCookie = reader.bytes();\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n message.gp = reader.bytes();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n message.field5.push(StreamerContext_Fqa.decode(reader, reader.uint32()));\n continue;\n case 6:\n if (tag === 48) {\n message.field6.push(reader.int32());\n continue;\n }\n if (tag === 50) {\n const end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2) {\n message.field6.push(reader.int32());\n }\n continue;\n }\n break;\n case 7:\n if (tag !== 58) {\n break;\n }\n message.field7 = reader.string();\n continue;\n case 8:\n if (tag !== 66) {\n break;\n }\n message.field8 = StreamerContext_Gqa.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n clientInfo: isSet(object.clientInfo) ? StreamerContext_ClientInfo.fromJSON(object.clientInfo) : undefined,\n poToken: isSet(object.poToken) ? bytesFromBase64(object.poToken) : new Uint8Array(0),\n playbackCookie: isSet(object.playbackCookie) ? bytesFromBase64(object.playbackCookie) : new Uint8Array(0),\n gp: isSet(object.gp) ? bytesFromBase64(object.gp) : new Uint8Array(0),\n field5: globalThis.Array.isArray(object?.field5)\n ? object.field5.map((e) => StreamerContext_Fqa.fromJSON(e))\n : [],\n field6: globalThis.Array.isArray(object?.field6) ? object.field6.map((e) => globalThis.Number(e)) : [],\n field7: isSet(object.field7) ? globalThis.String(object.field7) : \"\",\n field8: isSet(object.field8) ? StreamerContext_Gqa.fromJSON(object.field8) : undefined,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.clientInfo !== undefined) {\n obj.clientInfo = StreamerContext_ClientInfo.toJSON(message.clientInfo);\n }\n if (message.poToken !== undefined && message.poToken.length !== 0) {\n obj.poToken = base64FromBytes(message.poToken);\n }\n if (message.playbackCookie !== undefined && message.playbackCookie.length !== 0) {\n obj.playbackCookie = base64FromBytes(message.playbackCookie);\n }\n if (message.gp !== undefined && message.gp.length !== 0) {\n obj.gp = base64FromBytes(message.gp);\n }\n if (message.field5?.length) {\n obj.field5 = message.field5.map((e) => StreamerContext_Fqa.toJSON(e));\n }\n if (message.field6?.length) {\n obj.field6 = message.field6.map((e) => Math.round(e));\n }\n if (message.field7 !== undefined && message.field7 !== \"\") {\n obj.field7 = message.field7;\n }\n if (message.field8 !== undefined) {\n obj.field8 = StreamerContext_Gqa.toJSON(message.field8);\n }\n return obj;\n },\n create(base) {\n return StreamerContext.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseStreamerContext();\n message.clientInfo = (object.clientInfo !== undefined && object.clientInfo !== null)\n ? StreamerContext_ClientInfo.fromPartial(object.clientInfo)\n : undefined;\n message.poToken = object.poToken ?? new Uint8Array(0);\n message.playbackCookie = object.playbackCookie ?? new Uint8Array(0);\n message.gp = object.gp ?? new Uint8Array(0);\n message.field5 = object.field5?.map((e) => StreamerContext_Fqa.fromPartial(e)) || [];\n message.field6 = object.field6?.map((e) => e) || [];\n message.field7 = object.field7 ?? \"\";\n message.field8 = (object.field8 !== undefined && object.field8 !== null)\n ? StreamerContext_Gqa.fromPartial(object.field8)\n : undefined;\n return message;\n },\n};\nfunction createBaseStreamerContext_ClientInfo() {\n return {\n deviceMake: \"\",\n deviceModel: \"\",\n clientName: 0,\n clientVersion: \"\",\n osName: \"\",\n osVersion: \"\",\n acceptLanguage: \"\",\n acceptRegion: \"\",\n screenWidthPoints: 0,\n screenHeightPoints: 0,\n screenWidthInches: 0,\n screenHeightInches: 0,\n screenPixelDensity: 0,\n clientFormFactor: 0,\n gmscoreVersionCode: 0,\n windowWidthPoints: 0,\n windowHeightPoints: 0,\n androidSdkVersion: 0,\n screenDensityFloat: 0,\n utcOffsetMinutes: 0,\n timeZone: \"\",\n chipset: \"\",\n glDeviceInfo: undefined,\n };\n}\nexport const StreamerContext_ClientInfo = {\n encode(message, writer = new BinaryWriter()) {\n if (message.deviceMake !== undefined && message.deviceMake !== \"\") {\n writer.uint32(98).string(message.deviceMake);\n }\n if (message.deviceModel !== undefined && message.deviceModel !== \"\") {\n writer.uint32(106).string(message.deviceModel);\n }\n if (message.clientName !== undefined && message.clientName !== 0) {\n writer.uint32(128).int32(message.clientName);\n }\n if (message.clientVersion !== undefined && message.clientVersion !== \"\") {\n writer.uint32(138).string(message.clientVersion);\n }\n if (message.osName !== undefined && message.osName !== \"\") {\n writer.uint32(146).string(message.osName);\n }\n if (message.osVersion !== undefined && message.osVersion !== \"\") {\n writer.uint32(154).string(message.osVersion);\n }\n if (message.acceptLanguage !== undefined && message.acceptLanguage !== \"\") {\n writer.uint32(170).string(message.acceptLanguage);\n }\n if (message.acceptRegion !== undefined && message.acceptRegion !== \"\") {\n writer.uint32(178).string(message.acceptRegion);\n }\n if (message.screenWidthPoints !== undefined && message.screenWidthPoints !== 0) {\n writer.uint32(296).int32(message.screenWidthPoints);\n }\n if (message.screenHeightPoints !== undefined && message.screenHeightPoints !== 0) {\n writer.uint32(304).int32(message.screenHeightPoints);\n }\n if (message.screenWidthInches !== undefined && message.screenWidthInches !== 0) {\n writer.uint32(317).float(message.screenWidthInches);\n }\n if (message.screenHeightInches !== undefined && message.screenHeightInches !== 0) {\n writer.uint32(325).float(message.screenHeightInches);\n }\n if (message.screenPixelDensity !== undefined && message.screenPixelDensity !== 0) {\n writer.uint32(328).int32(message.screenPixelDensity);\n }\n if (message.clientFormFactor !== undefined && message.clientFormFactor !== 0) {\n writer.uint32(368).int32(message.clientFormFactor);\n }\n if (message.gmscoreVersionCode !== undefined && message.gmscoreVersionCode !== 0) {\n writer.uint32(400).int32(message.gmscoreVersionCode);\n }\n if (message.windowWidthPoints !== undefined && message.windowWidthPoints !== 0) {\n writer.uint32(440).int32(message.windowWidthPoints);\n }\n if (message.windowHeightPoints !== undefined && message.windowHeightPoints !== 0) {\n writer.uint32(448).int32(message.windowHeightPoints);\n }\n if (message.androidSdkVersion !== undefined && message.androidSdkVersion !== 0) {\n writer.uint32(512).int32(message.androidSdkVersion);\n }\n if (message.screenDensityFloat !== undefined && message.screenDensityFloat !== 0) {\n writer.uint32(525).float(message.screenDensityFloat);\n }\n if (message.utcOffsetMinutes !== undefined && message.utcOffsetMinutes !== 0) {\n writer.uint32(536).int64(message.utcOffsetMinutes);\n }\n if (message.timeZone !== undefined && message.timeZone !== \"\") {\n writer.uint32(642).string(message.timeZone);\n }\n if (message.chipset !== undefined && message.chipset !== \"\") {\n writer.uint32(738).string(message.chipset);\n }\n if (message.glDeviceInfo !== undefined) {\n StreamerContext_GLDeviceInfo.encode(message.glDeviceInfo, writer.uint32(818).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamerContext_ClientInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 12:\n if (tag !== 98) {\n break;\n }\n message.deviceMake = reader.string();\n continue;\n case 13:\n if (tag !== 106) {\n break;\n }\n message.deviceModel = reader.string();\n continue;\n case 16:\n if (tag !== 128) {\n break;\n }\n message.clientName = reader.int32();\n continue;\n case 17:\n if (tag !== 138) {\n break;\n }\n message.clientVersion = reader.string();\n continue;\n case 18:\n if (tag !== 146) {\n break;\n }\n message.osName = reader.string();\n continue;\n case 19:\n if (tag !== 154) {\n break;\n }\n message.osVersion = reader.string();\n continue;\n case 21:\n if (tag !== 170) {\n break;\n }\n message.acceptLanguage = reader.string();\n continue;\n case 22:\n if (tag !== 178) {\n break;\n }\n message.acceptRegion = reader.string();\n continue;\n case 37:\n if (tag !== 296) {\n break;\n }\n message.screenWidthPoints = reader.int32();\n continue;\n case 38:\n if (tag !== 304) {\n break;\n }\n message.screenHeightPoints = reader.int32();\n continue;\n case 39:\n if (tag !== 317) {\n break;\n }\n message.screenWidthInches = reader.float();\n continue;\n case 40:\n if (tag !== 325) {\n break;\n }\n message.screenHeightInches = reader.float();\n continue;\n case 41:\n if (tag !== 328) {\n break;\n }\n message.screenPixelDensity = reader.int32();\n continue;\n case 46:\n if (tag !== 368) {\n break;\n }\n message.clientFormFactor = reader.int32();\n continue;\n case 50:\n if (tag !== 400) {\n break;\n }\n message.gmscoreVersionCode = reader.int32();\n continue;\n case 55:\n if (tag !== 440) {\n break;\n }\n message.windowWidthPoints = reader.int32();\n continue;\n case 56:\n if (tag !== 448) {\n break;\n }\n message.windowHeightPoints = reader.int32();\n continue;\n case 64:\n if (tag !== 512) {\n break;\n }\n message.androidSdkVersion = reader.int32();\n continue;\n case 65:\n if (tag !== 525) {\n break;\n }\n message.screenDensityFloat = reader.float();\n continue;\n case 67:\n if (tag !== 536) {\n break;\n }\n message.utcOffsetMinutes = longToNumber(reader.int64());\n continue;\n case 80:\n if (tag !== 642) {\n break;\n }\n message.timeZone = reader.string();\n continue;\n case 92:\n if (tag !== 738) {\n break;\n }\n message.chipset = reader.string();\n continue;\n case 102:\n if (tag !== 818) {\n break;\n }\n message.glDeviceInfo = StreamerContext_GLDeviceInfo.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n deviceMake: isSet(object.deviceMake) ? globalThis.String(object.deviceMake) : \"\",\n deviceModel: isSet(object.deviceModel) ? globalThis.String(object.deviceModel) : \"\",\n clientName: isSet(object.clientName) ? globalThis.Number(object.clientName) : 0,\n clientVersion: isSet(object.clientVersion) ? globalThis.String(object.clientVersion) : \"\",\n osName: isSet(object.osName) ? globalThis.String(object.osName) : \"\",\n osVersion: isSet(object.osVersion) ? globalThis.String(object.osVersion) : \"\",\n acceptLanguage: isSet(object.acceptLanguage) ? globalThis.String(object.acceptLanguage) : \"\",\n acceptRegion: isSet(object.acceptRegion) ? globalThis.String(object.acceptRegion) : \"\",\n screenWidthPoints: isSet(object.screenWidthPoints) ? globalThis.Number(object.screenWidthPoints) : 0,\n screenHeightPoints: isSet(object.screenHeightPoints) ? globalThis.Number(object.screenHeightPoints) : 0,\n screenWidthInches: isSet(object.screenWidthInches) ? globalThis.Number(object.screenWidthInches) : 0,\n screenHeightInches: isSet(object.screenHeightInches) ? globalThis.Number(object.screenHeightInches) : 0,\n screenPixelDensity: isSet(object.screenPixelDensity) ? globalThis.Number(object.screenPixelDensity) : 0,\n clientFormFactor: isSet(object.clientFormFactor)\n ? streamerContext_ClientFormFactorFromJSON(object.clientFormFactor)\n : 0,\n gmscoreVersionCode: isSet(object.gmscoreVersionCode) ? globalThis.Number(object.gmscoreVersionCode) : 0,\n windowWidthPoints: isSet(object.windowWidthPoints) ? globalThis.Number(object.windowWidthPoints) : 0,\n windowHeightPoints: isSet(object.windowHeightPoints) ? globalThis.Number(object.windowHeightPoints) : 0,\n androidSdkVersion: isSet(object.androidSdkVersion) ? globalThis.Number(object.androidSdkVersion) : 0,\n screenDensityFloat: isSet(object.screenDensityFloat) ? globalThis.Number(object.screenDensityFloat) : 0,\n utcOffsetMinutes: isSet(object.utcOffsetMinutes) ? globalThis.Number(object.utcOffsetMinutes) : 0,\n timeZone: isSet(object.timeZone) ? globalThis.String(object.timeZone) : \"\",\n chipset: isSet(object.chipset) ? globalThis.String(object.chipset) : \"\",\n glDeviceInfo: isSet(object.glDeviceInfo) ? StreamerContext_GLDeviceInfo.fromJSON(object.glDeviceInfo) : undefined,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.deviceMake !== undefined && message.deviceMake !== \"\") {\n obj.deviceMake = message.deviceMake;\n }\n if (message.deviceModel !== undefined && message.deviceModel !== \"\") {\n obj.deviceModel = message.deviceModel;\n }\n if (message.clientName !== undefined && message.clientName !== 0) {\n obj.clientName = Math.round(message.clientName);\n }\n if (message.clientVersion !== undefined && message.clientVersion !== \"\") {\n obj.clientVersion = message.clientVersion;\n }\n if (message.osName !== undefined && message.osName !== \"\") {\n obj.osName = message.osName;\n }\n if (message.osVersion !== undefined && message.osVersion !== \"\") {\n obj.osVersion = message.osVersion;\n }\n if (message.acceptLanguage !== undefined && message.acceptLanguage !== \"\") {\n obj.acceptLanguage = message.acceptLanguage;\n }\n if (message.acceptRegion !== undefined && message.acceptRegion !== \"\") {\n obj.acceptRegion = message.acceptRegion;\n }\n if (message.screenWidthPoints !== undefined && message.screenWidthPoints !== 0) {\n obj.screenWidthPoints = Math.round(message.screenWidthPoints);\n }\n if (message.screenHeightPoints !== undefined && message.screenHeightPoints !== 0) {\n obj.screenHeightPoints = Math.round(message.screenHeightPoints);\n }\n if (message.screenWidthInches !== undefined && message.screenWidthInches !== 0) {\n obj.screenWidthInches = message.screenWidthInches;\n }\n if (message.screenHeightInches !== undefined && message.screenHeightInches !== 0) {\n obj.screenHeightInches = message.screenHeightInches;\n }\n if (message.screenPixelDensity !== undefined && message.screenPixelDensity !== 0) {\n obj.screenPixelDensity = Math.round(message.screenPixelDensity);\n }\n if (message.clientFormFactor !== undefined && message.clientFormFactor !== 0) {\n obj.clientFormFactor = streamerContext_ClientFormFactorToJSON(message.clientFormFactor);\n }\n if (message.gmscoreVersionCode !== undefined && message.gmscoreVersionCode !== 0) {\n obj.gmscoreVersionCode = Math.round(message.gmscoreVersionCode);\n }\n if (message.windowWidthPoints !== undefined && message.windowWidthPoints !== 0) {\n obj.windowWidthPoints = Math.round(message.windowWidthPoints);\n }\n if (message.windowHeightPoints !== undefined && message.windowHeightPoints !== 0) {\n obj.windowHeightPoints = Math.round(message.windowHeightPoints);\n }\n if (message.androidSdkVersion !== undefined && message.androidSdkVersion !== 0) {\n obj.androidSdkVersion = Math.round(message.androidSdkVersion);\n }\n if (message.screenDensityFloat !== undefined && message.screenDensityFloat !== 0) {\n obj.screenDensityFloat = message.screenDensityFloat;\n }\n if (message.utcOffsetMinutes !== undefined && message.utcOffsetMinutes !== 0) {\n obj.utcOffsetMinutes = Math.round(message.utcOffsetMinutes);\n }\n if (message.timeZone !== undefined && message.timeZone !== \"\") {\n obj.timeZone = message.timeZone;\n }\n if (message.chipset !== undefined && message.chipset !== \"\") {\n obj.chipset = message.chipset;\n }\n if (message.glDeviceInfo !== undefined) {\n obj.glDeviceInfo = StreamerContext_GLDeviceInfo.toJSON(message.glDeviceInfo);\n }\n return obj;\n },\n create(base) {\n return StreamerContext_ClientInfo.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseStreamerContext_ClientInfo();\n message.deviceMake = object.deviceMake ?? \"\";\n message.deviceModel = object.deviceModel ?? \"\";\n message.clientName = object.clientName ?? 0;\n message.clientVersion = object.clientVersion ?? \"\";\n message.osName = object.osName ?? \"\";\n message.osVersion = object.osVersion ?? \"\";\n message.acceptLanguage = object.acceptLanguage ?? \"\";\n message.acceptRegion = object.acceptRegion ?? \"\";\n message.screenWidthPoints = object.screenWidthPoints ?? 0;\n message.screenHeightPoints = object.screenHeightPoints ?? 0;\n message.screenWidthInches = object.screenWidthInches ?? 0;\n message.screenHeightInches = object.screenHeightInches ?? 0;\n message.screenPixelDensity = object.screenPixelDensity ?? 0;\n message.clientFormFactor = object.clientFormFactor ?? 0;\n message.gmscoreVersionCode = object.gmscoreVersionCode ?? 0;\n message.windowWidthPoints = object.windowWidthPoints ?? 0;\n message.windowHeightPoints = object.windowHeightPoints ?? 0;\n message.androidSdkVersion = object.androidSdkVersion ?? 0;\n message.screenDensityFloat = object.screenDensityFloat ?? 0;\n message.utcOffsetMinutes = object.utcOffsetMinutes ?? 0;\n message.timeZone = object.timeZone ?? \"\";\n message.chipset = object.chipset ?? \"\";\n message.glDeviceInfo = (object.glDeviceInfo !== undefined && object.glDeviceInfo !== null)\n ? StreamerContext_GLDeviceInfo.fromPartial(object.glDeviceInfo)\n : undefined;\n return message;\n },\n};\nfunction createBaseStreamerContext_GLDeviceInfo() {\n return { glRenderer: \"\", glEsVersionMajor: 0, glEsVersionMinor: 0 };\n}\nexport const StreamerContext_GLDeviceInfo = {\n encode(message, writer = new BinaryWriter()) {\n if (message.glRenderer !== undefined && message.glRenderer !== \"\") {\n writer.uint32(10).string(message.glRenderer);\n }\n if (message.glEsVersionMajor !== undefined && message.glEsVersionMajor !== 0) {\n writer.uint32(16).int32(message.glEsVersionMajor);\n }\n if (message.glEsVersionMinor !== undefined && message.glEsVersionMinor !== 0) {\n writer.uint32(24).int32(message.glEsVersionMinor);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamerContext_GLDeviceInfo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.glRenderer = reader.string();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.glEsVersionMajor = reader.int32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.glEsVersionMinor = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n glRenderer: isSet(object.glRenderer) ? globalThis.String(object.glRenderer) : \"\",\n glEsVersionMajor: isSet(object.glEsVersionMajor) ? globalThis.Number(object.glEsVersionMajor) : 0,\n glEsVersionMinor: isSet(object.glEsVersionMinor) ? globalThis.Number(object.glEsVersionMinor) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.glRenderer !== undefined && message.glRenderer !== \"\") {\n obj.glRenderer = message.glRenderer;\n }\n if (message.glEsVersionMajor !== undefined && message.glEsVersionMajor !== 0) {\n obj.glEsVersionMajor = Math.round(message.glEsVersionMajor);\n }\n if (message.glEsVersionMinor !== undefined && message.glEsVersionMinor !== 0) {\n obj.glEsVersionMinor = Math.round(message.glEsVersionMinor);\n }\n return obj;\n },\n create(base) {\n return StreamerContext_GLDeviceInfo.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseStreamerContext_GLDeviceInfo();\n message.glRenderer = object.glRenderer ?? \"\";\n message.glEsVersionMajor = object.glEsVersionMajor ?? 0;\n message.glEsVersionMinor = object.glEsVersionMinor ?? 0;\n return message;\n },\n};\nfunction createBaseStreamerContext_Fqa() {\n return { type: 0, value: new Uint8Array(0) };\n}\nexport const StreamerContext_Fqa = {\n encode(message, writer = new BinaryWriter()) {\n if (message.type !== undefined && message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.value !== undefined && message.value.length !== 0) {\n writer.uint32(18).bytes(message.value);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamerContext_Fqa();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.type = reader.int32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.value = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n type: isSet(object.type) ? globalThis.Number(object.type) : 0,\n value: isSet(object.value) ? bytesFromBase64(object.value) : new Uint8Array(0),\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.type !== undefined && message.type !== 0) {\n obj.type = Math.round(message.type);\n }\n if (message.value !== undefined && message.value.length !== 0) {\n obj.value = base64FromBytes(message.value);\n }\n return obj;\n },\n create(base) {\n return StreamerContext_Fqa.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseStreamerContext_Fqa();\n message.type = object.type ?? 0;\n message.value = object.value ?? new Uint8Array(0);\n return message;\n },\n};\nfunction createBaseStreamerContext_Gqa() {\n return { field1: new Uint8Array(0), field2: undefined };\n}\nexport const StreamerContext_Gqa = {\n encode(message, writer = new BinaryWriter()) {\n if (message.field1 !== undefined && message.field1.length !== 0) {\n writer.uint32(10).bytes(message.field1);\n }\n if (message.field2 !== undefined) {\n StreamerContext_Gqa_Hqa.encode(message.field2, writer.uint32(18).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamerContext_Gqa();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.field1 = reader.bytes();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.field2 = StreamerContext_Gqa_Hqa.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n field1: isSet(object.field1) ? bytesFromBase64(object.field1) : new Uint8Array(0),\n field2: isSet(object.field2) ? StreamerContext_Gqa_Hqa.fromJSON(object.field2) : undefined,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.field1 !== undefined && message.field1.length !== 0) {\n obj.field1 = base64FromBytes(message.field1);\n }\n if (message.field2 !== undefined) {\n obj.field2 = StreamerContext_Gqa_Hqa.toJSON(message.field2);\n }\n return obj;\n },\n create(base) {\n return StreamerContext_Gqa.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseStreamerContext_Gqa();\n message.field1 = object.field1 ?? new Uint8Array(0);\n message.field2 = (object.field2 !== undefined && object.field2 !== null)\n ? StreamerContext_Gqa_Hqa.fromPartial(object.field2)\n : undefined;\n return message;\n },\n};\nfunction createBaseStreamerContext_Gqa_Hqa() {\n return { code: 0, message: \"\" };\n}\nexport const StreamerContext_Gqa_Hqa = {\n encode(message, writer = new BinaryWriter()) {\n if (message.code !== undefined && message.code !== 0) {\n writer.uint32(8).int32(message.code);\n }\n if (message.message !== undefined && message.message !== \"\") {\n writer.uint32(18).string(message.message);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseStreamerContext_Gqa_Hqa();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.code = reader.int32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.message = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n code: isSet(object.code) ? globalThis.Number(object.code) : 0,\n message: isSet(object.message) ? globalThis.String(object.message) : \"\",\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.code !== undefined && message.code !== 0) {\n obj.code = Math.round(message.code);\n }\n if (message.message !== undefined && message.message !== \"\") {\n obj.message = message.message;\n }\n return obj;\n },\n create(base) {\n return StreamerContext_Gqa_Hqa.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseStreamerContext_Gqa_Hqa();\n message.code = object.code ?? 0;\n message.message = object.message ?? \"\";\n return message;\n },\n};\nfunction bytesFromBase64(b64) {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n}\nfunction longToNumber(int64) {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/video_playback_abr_request.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { FormatId } from \"../misc/common.js\";\nimport { BufferedRange } from \"./buffered_range.js\";\nimport { ClientAbrState } from \"./client_abr_state.js\";\nimport { StreamerContext } from \"./streamer_context.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseVideoPlaybackAbrRequest() {\n return {\n clientAbrState: undefined,\n selectedFormatIds: [],\n bufferedRanges: [],\n videoPlaybackUstreamerConfig: new Uint8Array(0),\n lo: undefined,\n selectedAudioFormatIds: [],\n selectedVideoFormatIds: [],\n streamerContext: undefined,\n field21: undefined,\n field22: 0,\n field23: 0,\n field1000: [],\n };\n}\nexport const VideoPlaybackAbrRequest = {\n encode(message, writer = new BinaryWriter()) {\n if (message.clientAbrState !== undefined) {\n ClientAbrState.encode(message.clientAbrState, writer.uint32(10).fork()).join();\n }\n for (const v of message.selectedFormatIds) {\n FormatId.encode(v, writer.uint32(18).fork()).join();\n }\n for (const v of message.bufferedRanges) {\n BufferedRange.encode(v, writer.uint32(26).fork()).join();\n }\n if (message.videoPlaybackUstreamerConfig !== undefined && message.videoPlaybackUstreamerConfig.length !== 0) {\n writer.uint32(42).bytes(message.videoPlaybackUstreamerConfig);\n }\n if (message.lo !== undefined) {\n Lo.encode(message.lo, writer.uint32(50).fork()).join();\n }\n for (const v of message.selectedAudioFormatIds) {\n FormatId.encode(v, writer.uint32(130).fork()).join();\n }\n for (const v of message.selectedVideoFormatIds) {\n FormatId.encode(v, writer.uint32(138).fork()).join();\n }\n if (message.streamerContext !== undefined) {\n StreamerContext.encode(message.streamerContext, writer.uint32(154).fork()).join();\n }\n if (message.field21 !== undefined) {\n OQa.encode(message.field21, writer.uint32(170).fork()).join();\n }\n if (message.field22 !== undefined && message.field22 !== 0) {\n writer.uint32(176).int32(message.field22);\n }\n if (message.field23 !== undefined && message.field23 !== 0) {\n writer.uint32(184).int32(message.field23);\n }\n for (const v of message.field1000) {\n Pqa.encode(v, writer.uint32(8002).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseVideoPlaybackAbrRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.clientAbrState = ClientAbrState.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.selectedFormatIds.push(FormatId.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.bufferedRanges.push(BufferedRange.decode(reader, reader.uint32()));\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n message.videoPlaybackUstreamerConfig = reader.bytes();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n message.lo = Lo.decode(reader, reader.uint32());\n continue;\n case 16:\n if (tag !== 130) {\n break;\n }\n message.selectedAudioFormatIds.push(FormatId.decode(reader, reader.uint32()));\n continue;\n case 17:\n if (tag !== 138) {\n break;\n }\n message.selectedVideoFormatIds.push(FormatId.decode(reader, reader.uint32()));\n continue;\n case 19:\n if (tag !== 154) {\n break;\n }\n message.streamerContext = StreamerContext.decode(reader, reader.uint32());\n continue;\n case 21:\n if (tag !== 170) {\n break;\n }\n message.field21 = OQa.decode(reader, reader.uint32());\n continue;\n case 22:\n if (tag !== 176) {\n break;\n }\n message.field22 = reader.int32();\n continue;\n case 23:\n if (tag !== 184) {\n break;\n }\n message.field23 = reader.int32();\n continue;\n case 1000:\n if (tag !== 8002) {\n break;\n }\n message.field1000.push(Pqa.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n clientAbrState: isSet(object.clientAbrState) ? ClientAbrState.fromJSON(object.clientAbrState) : undefined,\n selectedFormatIds: globalThis.Array.isArray(object?.selectedFormatIds)\n ? object.selectedFormatIds.map((e) => FormatId.fromJSON(e))\n : [],\n bufferedRanges: globalThis.Array.isArray(object?.bufferedRanges)\n ? object.bufferedRanges.map((e) => BufferedRange.fromJSON(e))\n : [],\n videoPlaybackUstreamerConfig: isSet(object.videoPlaybackUstreamerConfig)\n ? bytesFromBase64(object.videoPlaybackUstreamerConfig)\n : new Uint8Array(0),\n lo: isSet(object.lo) ? Lo.fromJSON(object.lo) : undefined,\n selectedAudioFormatIds: globalThis.Array.isArray(object?.selectedAudioFormatIds)\n ? object.selectedAudioFormatIds.map((e) => FormatId.fromJSON(e))\n : [],\n selectedVideoFormatIds: globalThis.Array.isArray(object?.selectedVideoFormatIds)\n ? object.selectedVideoFormatIds.map((e) => FormatId.fromJSON(e))\n : [],\n streamerContext: isSet(object.streamerContext) ? StreamerContext.fromJSON(object.streamerContext) : undefined,\n field21: isSet(object.field21) ? OQa.fromJSON(object.field21) : undefined,\n field22: isSet(object.field22) ? globalThis.Number(object.field22) : 0,\n field23: isSet(object.field23) ? globalThis.Number(object.field23) : 0,\n field1000: globalThis.Array.isArray(object?.field1000) ? object.field1000.map((e) => Pqa.fromJSON(e)) : [],\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.clientAbrState !== undefined) {\n obj.clientAbrState = ClientAbrState.toJSON(message.clientAbrState);\n }\n if (message.selectedFormatIds?.length) {\n obj.selectedFormatIds = message.selectedFormatIds.map((e) => FormatId.toJSON(e));\n }\n if (message.bufferedRanges?.length) {\n obj.bufferedRanges = message.bufferedRanges.map((e) => BufferedRange.toJSON(e));\n }\n if (message.videoPlaybackUstreamerConfig !== undefined && message.videoPlaybackUstreamerConfig.length !== 0) {\n obj.videoPlaybackUstreamerConfig = base64FromBytes(message.videoPlaybackUstreamerConfig);\n }\n if (message.lo !== undefined) {\n obj.lo = Lo.toJSON(message.lo);\n }\n if (message.selectedAudioFormatIds?.length) {\n obj.selectedAudioFormatIds = message.selectedAudioFormatIds.map((e) => FormatId.toJSON(e));\n }\n if (message.selectedVideoFormatIds?.length) {\n obj.selectedVideoFormatIds = message.selectedVideoFormatIds.map((e) => FormatId.toJSON(e));\n }\n if (message.streamerContext !== undefined) {\n obj.streamerContext = StreamerContext.toJSON(message.streamerContext);\n }\n if (message.field21 !== undefined) {\n obj.field21 = OQa.toJSON(message.field21);\n }\n if (message.field22 !== undefined && message.field22 !== 0) {\n obj.field22 = Math.round(message.field22);\n }\n if (message.field23 !== undefined && message.field23 !== 0) {\n obj.field23 = Math.round(message.field23);\n }\n if (message.field1000?.length) {\n obj.field1000 = message.field1000.map((e) => Pqa.toJSON(e));\n }\n return obj;\n },\n create(base) {\n return VideoPlaybackAbrRequest.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseVideoPlaybackAbrRequest();\n message.clientAbrState = (object.clientAbrState !== undefined && object.clientAbrState !== null)\n ? ClientAbrState.fromPartial(object.clientAbrState)\n : undefined;\n message.selectedFormatIds = object.selectedFormatIds?.map((e) => FormatId.fromPartial(e)) || [];\n message.bufferedRanges = object.bufferedRanges?.map((e) => BufferedRange.fromPartial(e)) || [];\n message.videoPlaybackUstreamerConfig = object.videoPlaybackUstreamerConfig ?? new Uint8Array(0);\n message.lo = (object.lo !== undefined && object.lo !== null) ? Lo.fromPartial(object.lo) : undefined;\n message.selectedAudioFormatIds = object.selectedAudioFormatIds?.map((e) => FormatId.fromPartial(e)) || [];\n message.selectedVideoFormatIds = object.selectedVideoFormatIds?.map((e) => FormatId.fromPartial(e)) || [];\n message.streamerContext = (object.streamerContext !== undefined && object.streamerContext !== null)\n ? StreamerContext.fromPartial(object.streamerContext)\n : undefined;\n message.field21 = (object.field21 !== undefined && object.field21 !== null)\n ? OQa.fromPartial(object.field21)\n : undefined;\n message.field22 = object.field22 ?? 0;\n message.field23 = object.field23 ?? 0;\n message.field1000 = object.field1000?.map((e) => Pqa.fromPartial(e)) || [];\n return message;\n },\n};\nfunction createBaseLo() {\n return { formatId: undefined, Lj: 0, sequenceNumber: 0, field4: undefined, MZ: 0 };\n}\nexport const Lo = {\n encode(message, writer = new BinaryWriter()) {\n if (message.formatId !== undefined) {\n FormatId.encode(message.formatId, writer.uint32(10).fork()).join();\n }\n if (message.Lj !== undefined && message.Lj !== 0) {\n writer.uint32(16).int32(message.Lj);\n }\n if (message.sequenceNumber !== undefined && message.sequenceNumber !== 0) {\n writer.uint32(24).int32(message.sequenceNumber);\n }\n if (message.field4 !== undefined) {\n Lo_Field4.encode(message.field4, writer.uint32(34).fork()).join();\n }\n if (message.MZ !== undefined && message.MZ !== 0) {\n writer.uint32(40).int32(message.MZ);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLo();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.formatId = FormatId.decode(reader, reader.uint32());\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.Lj = reader.int32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.sequenceNumber = reader.int32();\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n message.field4 = Lo_Field4.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n message.MZ = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n formatId: isSet(object.formatId) ? FormatId.fromJSON(object.formatId) : undefined,\n Lj: isSet(object.Lj) ? globalThis.Number(object.Lj) : 0,\n sequenceNumber: isSet(object.sequenceNumber) ? globalThis.Number(object.sequenceNumber) : 0,\n field4: isSet(object.field4) ? Lo_Field4.fromJSON(object.field4) : undefined,\n MZ: isSet(object.MZ) ? globalThis.Number(object.MZ) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.formatId !== undefined) {\n obj.formatId = FormatId.toJSON(message.formatId);\n }\n if (message.Lj !== undefined && message.Lj !== 0) {\n obj.Lj = Math.round(message.Lj);\n }\n if (message.sequenceNumber !== undefined && message.sequenceNumber !== 0) {\n obj.sequenceNumber = Math.round(message.sequenceNumber);\n }\n if (message.field4 !== undefined) {\n obj.field4 = Lo_Field4.toJSON(message.field4);\n }\n if (message.MZ !== undefined && message.MZ !== 0) {\n obj.MZ = Math.round(message.MZ);\n }\n return obj;\n },\n create(base) {\n return Lo.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseLo();\n message.formatId = (object.formatId !== undefined && object.formatId !== null)\n ? FormatId.fromPartial(object.formatId)\n : undefined;\n message.Lj = object.Lj ?? 0;\n message.sequenceNumber = object.sequenceNumber ?? 0;\n message.field4 = (object.field4 !== undefined && object.field4 !== null)\n ? Lo_Field4.fromPartial(object.field4)\n : undefined;\n message.MZ = object.MZ ?? 0;\n return message;\n },\n};\nfunction createBaseLo_Field4() {\n return { field1: 0, field2: 0, field3: 0 };\n}\nexport const Lo_Field4 = {\n encode(message, writer = new BinaryWriter()) {\n if (message.field1 !== undefined && message.field1 !== 0) {\n writer.uint32(8).int32(message.field1);\n }\n if (message.field2 !== undefined && message.field2 !== 0) {\n writer.uint32(16).int32(message.field2);\n }\n if (message.field3 !== undefined && message.field3 !== 0) {\n writer.uint32(24).int32(message.field3);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseLo_Field4();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.field1 = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.field2 = reader.int32();\n continue;\n case 3:\n if (tag !== 24) {\n break;\n }\n message.field3 = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n field1: isSet(object.field1) ? globalThis.Number(object.field1) : 0,\n field2: isSet(object.field2) ? globalThis.Number(object.field2) : 0,\n field3: isSet(object.field3) ? globalThis.Number(object.field3) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.field1 !== undefined && message.field1 !== 0) {\n obj.field1 = Math.round(message.field1);\n }\n if (message.field2 !== undefined && message.field2 !== 0) {\n obj.field2 = Math.round(message.field2);\n }\n if (message.field3 !== undefined && message.field3 !== 0) {\n obj.field3 = Math.round(message.field3);\n }\n return obj;\n },\n create(base) {\n return Lo_Field4.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseLo_Field4();\n message.field1 = object.field1 ?? 0;\n message.field2 = object.field2 ?? 0;\n message.field3 = object.field3 ?? 0;\n return message;\n },\n};\nfunction createBaseOQa() {\n return { field1: [], field2: new Uint8Array(0), field3: \"\", field4: 0, field5: 0, field6: \"\" };\n}\nexport const OQa = {\n encode(message, writer = new BinaryWriter()) {\n for (const v of message.field1) {\n writer.uint32(10).string(v);\n }\n if (message.field2 !== undefined && message.field2.length !== 0) {\n writer.uint32(18).bytes(message.field2);\n }\n if (message.field3 !== undefined && message.field3 !== \"\") {\n writer.uint32(26).string(message.field3);\n }\n if (message.field4 !== undefined && message.field4 !== 0) {\n writer.uint32(32).int32(message.field4);\n }\n if (message.field5 !== undefined && message.field5 !== 0) {\n writer.uint32(40).int32(message.field5);\n }\n if (message.field6 !== undefined && message.field6 !== \"\") {\n writer.uint32(50).string(message.field6);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOQa();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.field1.push(reader.string());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.field2 = reader.bytes();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.field3 = reader.string();\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n message.field4 = reader.int32();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n message.field5 = reader.int32();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n message.field6 = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n field1: globalThis.Array.isArray(object?.field1) ? object.field1.map((e) => globalThis.String(e)) : [],\n field2: isSet(object.field2) ? bytesFromBase64(object.field2) : new Uint8Array(0),\n field3: isSet(object.field3) ? globalThis.String(object.field3) : \"\",\n field4: isSet(object.field4) ? globalThis.Number(object.field4) : 0,\n field5: isSet(object.field5) ? globalThis.Number(object.field5) : 0,\n field6: isSet(object.field6) ? globalThis.String(object.field6) : \"\",\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.field1?.length) {\n obj.field1 = message.field1;\n }\n if (message.field2 !== undefined && message.field2.length !== 0) {\n obj.field2 = base64FromBytes(message.field2);\n }\n if (message.field3 !== undefined && message.field3 !== \"\") {\n obj.field3 = message.field3;\n }\n if (message.field4 !== undefined && message.field4 !== 0) {\n obj.field4 = Math.round(message.field4);\n }\n if (message.field5 !== undefined && message.field5 !== 0) {\n obj.field5 = Math.round(message.field5);\n }\n if (message.field6 !== undefined && message.field6 !== \"\") {\n obj.field6 = message.field6;\n }\n return obj;\n },\n create(base) {\n return OQa.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseOQa();\n message.field1 = object.field1?.map((e) => e) || [];\n message.field2 = object.field2 ?? new Uint8Array(0);\n message.field3 = object.field3 ?? \"\";\n message.field4 = object.field4 ?? 0;\n message.field5 = object.field5 ?? 0;\n message.field6 = object.field6 ?? \"\";\n return message;\n },\n};\nfunction createBasePqa() {\n return { formats: [], ud: [], clipId: \"\" };\n}\nexport const Pqa = {\n encode(message, writer = new BinaryWriter()) {\n for (const v of message.formats) {\n FormatId.encode(v, writer.uint32(10).fork()).join();\n }\n for (const v of message.ud) {\n BufferedRange.encode(v, writer.uint32(18).fork()).join();\n }\n if (message.clipId !== undefined && message.clipId !== \"\") {\n writer.uint32(26).string(message.clipId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBasePqa();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.formats.push(FormatId.decode(reader, reader.uint32()));\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.ud.push(BufferedRange.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.clipId = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n formats: globalThis.Array.isArray(object?.formats) ? object.formats.map((e) => FormatId.fromJSON(e)) : [],\n ud: globalThis.Array.isArray(object?.ud) ? object.ud.map((e) => BufferedRange.fromJSON(e)) : [],\n clipId: isSet(object.clipId) ? globalThis.String(object.clipId) : \"\",\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.formats?.length) {\n obj.formats = message.formats.map((e) => FormatId.toJSON(e));\n }\n if (message.ud?.length) {\n obj.ud = message.ud.map((e) => BufferedRange.toJSON(e));\n }\n if (message.clipId !== undefined && message.clipId !== \"\") {\n obj.clipId = message.clipId;\n }\n return obj;\n },\n create(base) {\n return Pqa.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBasePqa();\n message.formats = object.formats?.map((e) => FormatId.fromPartial(e)) || [];\n message.ud = object.ud?.map((e) => BufferedRange.fromPartial(e)) || [];\n message.clipId = object.clipId ?? \"\";\n return message;\n },\n};\nfunction bytesFromBase64(b64) {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/encrypted_player_request.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseEncryptedPlayerRequest() {\n return {\n context: new Uint8Array(0),\n encryptedOnesiePlayerRequest: new Uint8Array(0),\n encryptedClientKey: new Uint8Array(0),\n iv: new Uint8Array(0),\n hmac: new Uint8Array(0),\n reverseProxyConfig: \"\",\n YP: false,\n pM: false,\n enableCompression: false,\n TQ: false,\n };\n}\nexport const EncryptedPlayerRequest = {\n encode(message, writer = new BinaryWriter()) {\n if (message.context !== undefined && message.context.length !== 0) {\n writer.uint32(10).bytes(message.context);\n }\n if (message.encryptedOnesiePlayerRequest !== undefined && message.encryptedOnesiePlayerRequest.length !== 0) {\n writer.uint32(18).bytes(message.encryptedOnesiePlayerRequest);\n }\n if (message.encryptedClientKey !== undefined && message.encryptedClientKey.length !== 0) {\n writer.uint32(42).bytes(message.encryptedClientKey);\n }\n if (message.iv !== undefined && message.iv.length !== 0) {\n writer.uint32(50).bytes(message.iv);\n }\n if (message.hmac !== undefined && message.hmac.length !== 0) {\n writer.uint32(58).bytes(message.hmac);\n }\n if (message.reverseProxyConfig !== undefined && message.reverseProxyConfig !== \"\") {\n writer.uint32(74).string(message.reverseProxyConfig);\n }\n if (message.YP !== undefined && message.YP !== false) {\n writer.uint32(80).bool(message.YP);\n }\n if (message.pM !== undefined && message.pM !== false) {\n writer.uint32(104).bool(message.pM);\n }\n if (message.enableCompression !== undefined && message.enableCompression !== false) {\n writer.uint32(112).bool(message.enableCompression);\n }\n if (message.TQ !== undefined && message.TQ !== false) {\n writer.uint32(136).bool(message.TQ);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseEncryptedPlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.context = reader.bytes();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.encryptedOnesiePlayerRequest = reader.bytes();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n message.encryptedClientKey = reader.bytes();\n continue;\n case 6:\n if (tag !== 50) {\n break;\n }\n message.iv = reader.bytes();\n continue;\n case 7:\n if (tag !== 58) {\n break;\n }\n message.hmac = reader.bytes();\n continue;\n case 9:\n if (tag !== 74) {\n break;\n }\n message.reverseProxyConfig = reader.string();\n continue;\n case 10:\n if (tag !== 80) {\n break;\n }\n message.YP = reader.bool();\n continue;\n case 13:\n if (tag !== 104) {\n break;\n }\n message.pM = reader.bool();\n continue;\n case 14:\n if (tag !== 112) {\n break;\n }\n message.enableCompression = reader.bool();\n continue;\n case 17:\n if (tag !== 136) {\n break;\n }\n message.TQ = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n context: isSet(object.context) ? bytesFromBase64(object.context) : new Uint8Array(0),\n encryptedOnesiePlayerRequest: isSet(object.encryptedOnesiePlayerRequest)\n ? bytesFromBase64(object.encryptedOnesiePlayerRequest)\n : new Uint8Array(0),\n encryptedClientKey: isSet(object.encryptedClientKey)\n ? bytesFromBase64(object.encryptedClientKey)\n : new Uint8Array(0),\n iv: isSet(object.iv) ? bytesFromBase64(object.iv) : new Uint8Array(0),\n hmac: isSet(object.hmac) ? bytesFromBase64(object.hmac) : new Uint8Array(0),\n reverseProxyConfig: isSet(object.reverseProxyConfig) ? globalThis.String(object.reverseProxyConfig) : \"\",\n YP: isSet(object.YP) ? globalThis.Boolean(object.YP) : false,\n pM: isSet(object.pM) ? globalThis.Boolean(object.pM) : false,\n enableCompression: isSet(object.enableCompression) ? globalThis.Boolean(object.enableCompression) : false,\n TQ: isSet(object.TQ) ? globalThis.Boolean(object.TQ) : false,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.context !== undefined && message.context.length !== 0) {\n obj.context = base64FromBytes(message.context);\n }\n if (message.encryptedOnesiePlayerRequest !== undefined && message.encryptedOnesiePlayerRequest.length !== 0) {\n obj.encryptedOnesiePlayerRequest = base64FromBytes(message.encryptedOnesiePlayerRequest);\n }\n if (message.encryptedClientKey !== undefined && message.encryptedClientKey.length !== 0) {\n obj.encryptedClientKey = base64FromBytes(message.encryptedClientKey);\n }\n if (message.iv !== undefined && message.iv.length !== 0) {\n obj.iv = base64FromBytes(message.iv);\n }\n if (message.hmac !== undefined && message.hmac.length !== 0) {\n obj.hmac = base64FromBytes(message.hmac);\n }\n if (message.reverseProxyConfig !== undefined && message.reverseProxyConfig !== \"\") {\n obj.reverseProxyConfig = message.reverseProxyConfig;\n }\n if (message.YP !== undefined && message.YP !== false) {\n obj.YP = message.YP;\n }\n if (message.pM !== undefined && message.pM !== false) {\n obj.pM = message.pM;\n }\n if (message.enableCompression !== undefined && message.enableCompression !== false) {\n obj.enableCompression = message.enableCompression;\n }\n if (message.TQ !== undefined && message.TQ !== false) {\n obj.TQ = message.TQ;\n }\n return obj;\n },\n create(base) {\n return EncryptedPlayerRequest.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseEncryptedPlayerRequest();\n message.context = object.context ?? new Uint8Array(0);\n message.encryptedOnesiePlayerRequest = object.encryptedOnesiePlayerRequest ?? new Uint8Array(0);\n message.encryptedClientKey = object.encryptedClientKey ?? new Uint8Array(0);\n message.iv = object.iv ?? new Uint8Array(0);\n message.hmac = object.hmac ?? new Uint8Array(0);\n message.reverseProxyConfig = object.reverseProxyConfig ?? \"\";\n message.YP = object.YP ?? false;\n message.pM = object.pM ?? false;\n message.enableCompression = object.enableCompression ?? false;\n message.TQ = object.TQ ?? false;\n return message;\n },\n};\nfunction bytesFromBase64(b64) {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/onesie_request.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { BufferedRange } from \"./buffered_range.js\";\nimport { ClientAbrState } from \"./client_abr_state.js\";\nimport { EncryptedPlayerRequest } from \"./encrypted_player_request.js\";\nimport { StreamerContext } from \"./streamer_context.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseOnesieRequest() {\n return {\n urls: [],\n clientAbrState: undefined,\n playerRequest: undefined,\n onesieUstreamerConfig: new Uint8Array(0),\n maxVp9Height: 0,\n clientDisplayHeight: 0,\n streamerContext: undefined,\n bufferedRanges: [],\n };\n}\nexport const OnesieRequest = {\n encode(message, writer = new BinaryWriter()) {\n for (const v of message.urls) {\n writer.uint32(10).string(v);\n }\n if (message.clientAbrState !== undefined) {\n ClientAbrState.encode(message.clientAbrState, writer.uint32(18).fork()).join();\n }\n if (message.playerRequest !== undefined) {\n EncryptedPlayerRequest.encode(message.playerRequest, writer.uint32(26).fork()).join();\n }\n if (message.onesieUstreamerConfig !== undefined && message.onesieUstreamerConfig.length !== 0) {\n writer.uint32(34).bytes(message.onesieUstreamerConfig);\n }\n if (message.maxVp9Height !== undefined && message.maxVp9Height !== 0) {\n writer.uint32(40).int32(message.maxVp9Height);\n }\n if (message.clientDisplayHeight !== undefined && message.clientDisplayHeight !== 0) {\n writer.uint32(48).int32(message.clientDisplayHeight);\n }\n if (message.streamerContext !== undefined) {\n StreamerContext.encode(message.streamerContext, writer.uint32(82).fork()).join();\n }\n for (const v of message.bufferedRanges) {\n BufferedRange.encode(v, writer.uint32(114).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOnesieRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.urls.push(reader.string());\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.clientAbrState = ClientAbrState.decode(reader, reader.uint32());\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.playerRequest = EncryptedPlayerRequest.decode(reader, reader.uint32());\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n message.onesieUstreamerConfig = reader.bytes();\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n message.maxVp9Height = reader.int32();\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n message.clientDisplayHeight = reader.int32();\n continue;\n case 10:\n if (tag !== 82) {\n break;\n }\n message.streamerContext = StreamerContext.decode(reader, reader.uint32());\n continue;\n case 14:\n if (tag !== 114) {\n break;\n }\n message.bufferedRanges.push(BufferedRange.decode(reader, reader.uint32()));\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n urls: globalThis.Array.isArray(object?.urls) ? object.urls.map((e) => globalThis.String(e)) : [],\n clientAbrState: isSet(object.clientAbrState) ? ClientAbrState.fromJSON(object.clientAbrState) : undefined,\n playerRequest: isSet(object.playerRequest) ? EncryptedPlayerRequest.fromJSON(object.playerRequest) : undefined,\n onesieUstreamerConfig: isSet(object.onesieUstreamerConfig)\n ? bytesFromBase64(object.onesieUstreamerConfig)\n : new Uint8Array(0),\n maxVp9Height: isSet(object.maxVp9Height) ? globalThis.Number(object.maxVp9Height) : 0,\n clientDisplayHeight: isSet(object.clientDisplayHeight) ? globalThis.Number(object.clientDisplayHeight) : 0,\n streamerContext: isSet(object.streamerContext) ? StreamerContext.fromJSON(object.streamerContext) : undefined,\n bufferedRanges: globalThis.Array.isArray(object?.bufferedRanges)\n ? object.bufferedRanges.map((e) => BufferedRange.fromJSON(e))\n : [],\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.urls?.length) {\n obj.urls = message.urls;\n }\n if (message.clientAbrState !== undefined) {\n obj.clientAbrState = ClientAbrState.toJSON(message.clientAbrState);\n }\n if (message.playerRequest !== undefined) {\n obj.playerRequest = EncryptedPlayerRequest.toJSON(message.playerRequest);\n }\n if (message.onesieUstreamerConfig !== undefined && message.onesieUstreamerConfig.length !== 0) {\n obj.onesieUstreamerConfig = base64FromBytes(message.onesieUstreamerConfig);\n }\n if (message.maxVp9Height !== undefined && message.maxVp9Height !== 0) {\n obj.maxVp9Height = Math.round(message.maxVp9Height);\n }\n if (message.clientDisplayHeight !== undefined && message.clientDisplayHeight !== 0) {\n obj.clientDisplayHeight = Math.round(message.clientDisplayHeight);\n }\n if (message.streamerContext !== undefined) {\n obj.streamerContext = StreamerContext.toJSON(message.streamerContext);\n }\n if (message.bufferedRanges?.length) {\n obj.bufferedRanges = message.bufferedRanges.map((e) => BufferedRange.toJSON(e));\n }\n return obj;\n },\n create(base) {\n return OnesieRequest.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseOnesieRequest();\n message.urls = object.urls?.map((e) => e) || [];\n message.clientAbrState = (object.clientAbrState !== undefined && object.clientAbrState !== null)\n ? ClientAbrState.fromPartial(object.clientAbrState)\n : undefined;\n message.playerRequest = (object.playerRequest !== undefined && object.playerRequest !== null)\n ? EncryptedPlayerRequest.fromPartial(object.playerRequest)\n : undefined;\n message.onesieUstreamerConfig = object.onesieUstreamerConfig ?? new Uint8Array(0);\n message.maxVp9Height = object.maxVp9Height ?? 0;\n message.clientDisplayHeight = object.clientDisplayHeight ?? 0;\n message.streamerContext = (object.streamerContext !== undefined && object.streamerContext !== null)\n ? StreamerContext.fromPartial(object.streamerContext)\n : undefined;\n message.bufferedRanges = object.bufferedRanges?.map((e) => BufferedRange.fromPartial(e)) || [];\n return message;\n },\n};\nfunction bytesFromBase64(b64) {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/crypto_params.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nexport const protobufPackage = \"video_streaming\";\nexport var CryptoParams_CompressionType;\n(function (CryptoParams_CompressionType) {\n CryptoParams_CompressionType[CryptoParams_CompressionType[\"VAL_0\"] = 0] = \"VAL_0\";\n CryptoParams_CompressionType[CryptoParams_CompressionType[\"VAL_1\"] = 1] = \"VAL_1\";\n CryptoParams_CompressionType[CryptoParams_CompressionType[\"VAL_2\"] = 2] = \"VAL_2\";\n CryptoParams_CompressionType[CryptoParams_CompressionType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(CryptoParams_CompressionType || (CryptoParams_CompressionType = {}));\nexport function cryptoParams_CompressionTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"VAL_0\":\n return CryptoParams_CompressionType.VAL_0;\n case 1:\n case \"VAL_1\":\n return CryptoParams_CompressionType.VAL_1;\n case 2:\n case \"VAL_2\":\n return CryptoParams_CompressionType.VAL_2;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return CryptoParams_CompressionType.UNRECOGNIZED;\n }\n}\nexport function cryptoParams_CompressionTypeToJSON(object) {\n switch (object) {\n case CryptoParams_CompressionType.VAL_0:\n return \"VAL_0\";\n case CryptoParams_CompressionType.VAL_1:\n return \"VAL_1\";\n case CryptoParams_CompressionType.VAL_2:\n return \"VAL_2\";\n case CryptoParams_CompressionType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\nfunction createBaseCryptoParams() {\n return { hmac: new Uint8Array(0), iv: new Uint8Array(0), compressionType: 0 };\n}\nexport const CryptoParams = {\n encode(message, writer = new BinaryWriter()) {\n if (message.hmac !== undefined && message.hmac.length !== 0) {\n writer.uint32(34).bytes(message.hmac);\n }\n if (message.iv !== undefined && message.iv.length !== 0) {\n writer.uint32(42).bytes(message.iv);\n }\n if (message.compressionType !== undefined && message.compressionType !== 0) {\n writer.uint32(48).int32(message.compressionType);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseCryptoParams();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 4:\n if (tag !== 34) {\n break;\n }\n message.hmac = reader.bytes();\n continue;\n case 5:\n if (tag !== 42) {\n break;\n }\n message.iv = reader.bytes();\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n message.compressionType = reader.int32();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n hmac: isSet(object.hmac) ? bytesFromBase64(object.hmac) : new Uint8Array(0),\n iv: isSet(object.iv) ? bytesFromBase64(object.iv) : new Uint8Array(0),\n compressionType: isSet(object.compressionType) ? cryptoParams_CompressionTypeFromJSON(object.compressionType) : 0,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.hmac !== undefined && message.hmac.length !== 0) {\n obj.hmac = base64FromBytes(message.hmac);\n }\n if (message.iv !== undefined && message.iv.length !== 0) {\n obj.iv = base64FromBytes(message.iv);\n }\n if (message.compressionType !== undefined && message.compressionType !== 0) {\n obj.compressionType = cryptoParams_CompressionTypeToJSON(message.compressionType);\n }\n return obj;\n },\n create(base) {\n return CryptoParams.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseCryptoParams();\n message.hmac = object.hmac ?? new Uint8Array(0);\n message.iv = object.iv ?? new Uint8Array(0);\n message.compressionType = object.compressionType ?? 0;\n return message;\n },\n};\nfunction bytesFromBase64(b64) {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/onesie_header_type.proto\n/* eslint-disable */\nexport const protobufPackage = \"video_streaming\";\nexport var OnesieHeaderType;\n(function (OnesieHeaderType) {\n OnesieHeaderType[OnesieHeaderType[\"PLAYER_RESPONSE\"] = 0] = \"PLAYER_RESPONSE\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_1\"] = 1] = \"HEADER_TYPE_1\";\n OnesieHeaderType[OnesieHeaderType[\"MEDIA_DECRYPTION_KEY\"] = 2] = \"MEDIA_DECRYPTION_KEY\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_3\"] = 3] = \"HEADER_TYPE_3\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_4\"] = 4] = \"HEADER_TYPE_4\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_5\"] = 5] = \"HEADER_TYPE_5\";\n OnesieHeaderType[OnesieHeaderType[\"NEW_HOST\"] = 6] = \"NEW_HOST\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_7\"] = 7] = \"HEADER_TYPE_7\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_8\"] = 8] = \"HEADER_TYPE_8\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_9\"] = 9] = \"HEADER_TYPE_9\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_10\"] = 10] = \"HEADER_TYPE_10\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_11\"] = 11] = \"HEADER_TYPE_11\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_12\"] = 12] = \"HEADER_TYPE_12\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_13\"] = 13] = \"HEADER_TYPE_13\";\n OnesieHeaderType[OnesieHeaderType[\"RESTRICTED_FORMATS_HINT\"] = 14] = \"RESTRICTED_FORMATS_HINT\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_15\"] = 15] = \"HEADER_TYPE_15\";\n OnesieHeaderType[OnesieHeaderType[\"STREAM_METADATA\"] = 16] = \"STREAM_METADATA\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_17\"] = 17] = \"HEADER_TYPE_17\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_18\"] = 18] = \"HEADER_TYPE_18\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_19\"] = 19] = \"HEADER_TYPE_19\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_20\"] = 20] = \"HEADER_TYPE_20\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_21\"] = 21] = \"HEADER_TYPE_21\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_22\"] = 22] = \"HEADER_TYPE_22\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_23\"] = 23] = \"HEADER_TYPE_23\";\n OnesieHeaderType[OnesieHeaderType[\"HEADER_TYPE_24\"] = 24] = \"HEADER_TYPE_24\";\n OnesieHeaderType[OnesieHeaderType[\"ENCRYPTED_INNERTUBE_RESPONSE_PART\"] = 25] = \"ENCRYPTED_INNERTUBE_RESPONSE_PART\";\n OnesieHeaderType[OnesieHeaderType[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(OnesieHeaderType || (OnesieHeaderType = {}));\nexport function onesieHeaderTypeFromJSON(object) {\n switch (object) {\n case 0:\n case \"PLAYER_RESPONSE\":\n return OnesieHeaderType.PLAYER_RESPONSE;\n case 1:\n case \"HEADER_TYPE_1\":\n return OnesieHeaderType.HEADER_TYPE_1;\n case 2:\n case \"MEDIA_DECRYPTION_KEY\":\n return OnesieHeaderType.MEDIA_DECRYPTION_KEY;\n case 3:\n case \"HEADER_TYPE_3\":\n return OnesieHeaderType.HEADER_TYPE_3;\n case 4:\n case \"HEADER_TYPE_4\":\n return OnesieHeaderType.HEADER_TYPE_4;\n case 5:\n case \"HEADER_TYPE_5\":\n return OnesieHeaderType.HEADER_TYPE_5;\n case 6:\n case \"NEW_HOST\":\n return OnesieHeaderType.NEW_HOST;\n case 7:\n case \"HEADER_TYPE_7\":\n return OnesieHeaderType.HEADER_TYPE_7;\n case 8:\n case \"HEADER_TYPE_8\":\n return OnesieHeaderType.HEADER_TYPE_8;\n case 9:\n case \"HEADER_TYPE_9\":\n return OnesieHeaderType.HEADER_TYPE_9;\n case 10:\n case \"HEADER_TYPE_10\":\n return OnesieHeaderType.HEADER_TYPE_10;\n case 11:\n case \"HEADER_TYPE_11\":\n return OnesieHeaderType.HEADER_TYPE_11;\n case 12:\n case \"HEADER_TYPE_12\":\n return OnesieHeaderType.HEADER_TYPE_12;\n case 13:\n case \"HEADER_TYPE_13\":\n return OnesieHeaderType.HEADER_TYPE_13;\n case 14:\n case \"RESTRICTED_FORMATS_HINT\":\n return OnesieHeaderType.RESTRICTED_FORMATS_HINT;\n case 15:\n case \"HEADER_TYPE_15\":\n return OnesieHeaderType.HEADER_TYPE_15;\n case 16:\n case \"STREAM_METADATA\":\n return OnesieHeaderType.STREAM_METADATA;\n case 17:\n case \"HEADER_TYPE_17\":\n return OnesieHeaderType.HEADER_TYPE_17;\n case 18:\n case \"HEADER_TYPE_18\":\n return OnesieHeaderType.HEADER_TYPE_18;\n case 19:\n case \"HEADER_TYPE_19\":\n return OnesieHeaderType.HEADER_TYPE_19;\n case 20:\n case \"HEADER_TYPE_20\":\n return OnesieHeaderType.HEADER_TYPE_20;\n case 21:\n case \"HEADER_TYPE_21\":\n return OnesieHeaderType.HEADER_TYPE_21;\n case 22:\n case \"HEADER_TYPE_22\":\n return OnesieHeaderType.HEADER_TYPE_22;\n case 23:\n case \"HEADER_TYPE_23\":\n return OnesieHeaderType.HEADER_TYPE_23;\n case 24:\n case \"HEADER_TYPE_24\":\n return OnesieHeaderType.HEADER_TYPE_24;\n case 25:\n case \"ENCRYPTED_INNERTUBE_RESPONSE_PART\":\n return OnesieHeaderType.ENCRYPTED_INNERTUBE_RESPONSE_PART;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return OnesieHeaderType.UNRECOGNIZED;\n }\n}\nexport function onesieHeaderTypeToJSON(object) {\n switch (object) {\n case OnesieHeaderType.PLAYER_RESPONSE:\n return \"PLAYER_RESPONSE\";\n case OnesieHeaderType.HEADER_TYPE_1:\n return \"HEADER_TYPE_1\";\n case OnesieHeaderType.MEDIA_DECRYPTION_KEY:\n return \"MEDIA_DECRYPTION_KEY\";\n case OnesieHeaderType.HEADER_TYPE_3:\n return \"HEADER_TYPE_3\";\n case OnesieHeaderType.HEADER_TYPE_4:\n return \"HEADER_TYPE_4\";\n case OnesieHeaderType.HEADER_TYPE_5:\n return \"HEADER_TYPE_5\";\n case OnesieHeaderType.NEW_HOST:\n return \"NEW_HOST\";\n case OnesieHeaderType.HEADER_TYPE_7:\n return \"HEADER_TYPE_7\";\n case OnesieHeaderType.HEADER_TYPE_8:\n return \"HEADER_TYPE_8\";\n case OnesieHeaderType.HEADER_TYPE_9:\n return \"HEADER_TYPE_9\";\n case OnesieHeaderType.HEADER_TYPE_10:\n return \"HEADER_TYPE_10\";\n case OnesieHeaderType.HEADER_TYPE_11:\n return \"HEADER_TYPE_11\";\n case OnesieHeaderType.HEADER_TYPE_12:\n return \"HEADER_TYPE_12\";\n case OnesieHeaderType.HEADER_TYPE_13:\n return \"HEADER_TYPE_13\";\n case OnesieHeaderType.RESTRICTED_FORMATS_HINT:\n return \"RESTRICTED_FORMATS_HINT\";\n case OnesieHeaderType.HEADER_TYPE_15:\n return \"HEADER_TYPE_15\";\n case OnesieHeaderType.STREAM_METADATA:\n return \"STREAM_METADATA\";\n case OnesieHeaderType.HEADER_TYPE_17:\n return \"HEADER_TYPE_17\";\n case OnesieHeaderType.HEADER_TYPE_18:\n return \"HEADER_TYPE_18\";\n case OnesieHeaderType.HEADER_TYPE_19:\n return \"HEADER_TYPE_19\";\n case OnesieHeaderType.HEADER_TYPE_20:\n return \"HEADER_TYPE_20\";\n case OnesieHeaderType.HEADER_TYPE_21:\n return \"HEADER_TYPE_21\";\n case OnesieHeaderType.HEADER_TYPE_22:\n return \"HEADER_TYPE_22\";\n case OnesieHeaderType.HEADER_TYPE_23:\n return \"HEADER_TYPE_23\";\n case OnesieHeaderType.HEADER_TYPE_24:\n return \"HEADER_TYPE_24\";\n case OnesieHeaderType.ENCRYPTED_INNERTUBE_RESPONSE_PART:\n return \"ENCRYPTED_INNERTUBE_RESPONSE_PART\";\n case OnesieHeaderType.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/onesie_header.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { CryptoParams } from \"./crypto_params.js\";\nimport { onesieHeaderTypeFromJSON, onesieHeaderTypeToJSON } from \"./onesie_header_type.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseOnesieHeader() {\n return {\n type: 0,\n videoId: \"\",\n itag: \"\",\n cryptoParams: undefined,\n lastModified: 0,\n mediaSizeBytes: 0,\n restrictedFormats: [],\n xtags: \"\",\n sequenceNumber: 0,\n field23: undefined,\n field34: undefined,\n };\n}\nexport const OnesieHeader = {\n encode(message, writer = new BinaryWriter()) {\n if (message.type !== undefined && message.type !== 0) {\n writer.uint32(8).int32(message.type);\n }\n if (message.videoId !== undefined && message.videoId !== \"\") {\n writer.uint32(18).string(message.videoId);\n }\n if (message.itag !== undefined && message.itag !== \"\") {\n writer.uint32(26).string(message.itag);\n }\n if (message.cryptoParams !== undefined) {\n CryptoParams.encode(message.cryptoParams, writer.uint32(34).fork()).join();\n }\n if (message.lastModified !== undefined && message.lastModified !== 0) {\n writer.uint32(40).uint64(message.lastModified);\n }\n if (message.mediaSizeBytes !== undefined && message.mediaSizeBytes !== 0) {\n writer.uint32(56).int64(message.mediaSizeBytes);\n }\n for (const v of message.restrictedFormats) {\n writer.uint32(90).string(v);\n }\n if (message.xtags !== undefined && message.xtags !== \"\") {\n writer.uint32(122).string(message.xtags);\n }\n if (message.sequenceNumber !== undefined && message.sequenceNumber !== 0) {\n writer.uint32(144).int64(message.sequenceNumber);\n }\n if (message.field23 !== undefined) {\n OnesieHeader_Field23.encode(message.field23, writer.uint32(186).fork()).join();\n }\n if (message.field34 !== undefined) {\n OnesieHeader_Field34.encode(message.field34, writer.uint32(274).fork()).join();\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOnesieHeader();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.type = reader.int32();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.videoId = reader.string();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.itag = reader.string();\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n message.cryptoParams = CryptoParams.decode(reader, reader.uint32());\n continue;\n case 5:\n if (tag !== 40) {\n break;\n }\n message.lastModified = longToNumber(reader.uint64());\n continue;\n case 7:\n if (tag !== 56) {\n break;\n }\n message.mediaSizeBytes = longToNumber(reader.int64());\n continue;\n case 11:\n if (tag !== 90) {\n break;\n }\n message.restrictedFormats.push(reader.string());\n continue;\n case 15:\n if (tag !== 122) {\n break;\n }\n message.xtags = reader.string();\n continue;\n case 18:\n if (tag !== 144) {\n break;\n }\n message.sequenceNumber = longToNumber(reader.int64());\n continue;\n case 23:\n if (tag !== 186) {\n break;\n }\n message.field23 = OnesieHeader_Field23.decode(reader, reader.uint32());\n continue;\n case 34:\n if (tag !== 274) {\n break;\n }\n message.field34 = OnesieHeader_Field34.decode(reader, reader.uint32());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n type: isSet(object.type) ? onesieHeaderTypeFromJSON(object.type) : 0,\n videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : \"\",\n itag: isSet(object.itag) ? globalThis.String(object.itag) : \"\",\n cryptoParams: isSet(object.cryptoParams) ? CryptoParams.fromJSON(object.cryptoParams) : undefined,\n lastModified: isSet(object.lastModified) ? globalThis.Number(object.lastModified) : 0,\n mediaSizeBytes: isSet(object.mediaSizeBytes) ? globalThis.Number(object.mediaSizeBytes) : 0,\n restrictedFormats: globalThis.Array.isArray(object?.restrictedFormats)\n ? object.restrictedFormats.map((e) => globalThis.String(e))\n : [],\n xtags: isSet(object.xtags) ? globalThis.String(object.xtags) : \"\",\n sequenceNumber: isSet(object.sequenceNumber) ? globalThis.Number(object.sequenceNumber) : 0,\n field23: isSet(object.field23) ? OnesieHeader_Field23.fromJSON(object.field23) : undefined,\n field34: isSet(object.field34) ? OnesieHeader_Field34.fromJSON(object.field34) : undefined,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.type !== undefined && message.type !== 0) {\n obj.type = onesieHeaderTypeToJSON(message.type);\n }\n if (message.videoId !== undefined && message.videoId !== \"\") {\n obj.videoId = message.videoId;\n }\n if (message.itag !== undefined && message.itag !== \"\") {\n obj.itag = message.itag;\n }\n if (message.cryptoParams !== undefined) {\n obj.cryptoParams = CryptoParams.toJSON(message.cryptoParams);\n }\n if (message.lastModified !== undefined && message.lastModified !== 0) {\n obj.lastModified = Math.round(message.lastModified);\n }\n if (message.mediaSizeBytes !== undefined && message.mediaSizeBytes !== 0) {\n obj.mediaSizeBytes = Math.round(message.mediaSizeBytes);\n }\n if (message.restrictedFormats?.length) {\n obj.restrictedFormats = message.restrictedFormats;\n }\n if (message.xtags !== undefined && message.xtags !== \"\") {\n obj.xtags = message.xtags;\n }\n if (message.sequenceNumber !== undefined && message.sequenceNumber !== 0) {\n obj.sequenceNumber = Math.round(message.sequenceNumber);\n }\n if (message.field23 !== undefined) {\n obj.field23 = OnesieHeader_Field23.toJSON(message.field23);\n }\n if (message.field34 !== undefined) {\n obj.field34 = OnesieHeader_Field34.toJSON(message.field34);\n }\n return obj;\n },\n create(base) {\n return OnesieHeader.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseOnesieHeader();\n message.type = object.type ?? 0;\n message.videoId = object.videoId ?? \"\";\n message.itag = object.itag ?? \"\";\n message.cryptoParams = (object.cryptoParams !== undefined && object.cryptoParams !== null)\n ? CryptoParams.fromPartial(object.cryptoParams)\n : undefined;\n message.lastModified = object.lastModified ?? 0;\n message.mediaSizeBytes = object.mediaSizeBytes ?? 0;\n message.restrictedFormats = object.restrictedFormats?.map((e) => e) || [];\n message.xtags = object.xtags ?? \"\";\n message.sequenceNumber = object.sequenceNumber ?? 0;\n message.field23 = (object.field23 !== undefined && object.field23 !== null)\n ? OnesieHeader_Field23.fromPartial(object.field23)\n : undefined;\n message.field34 = (object.field34 !== undefined && object.field34 !== null)\n ? OnesieHeader_Field34.fromPartial(object.field34)\n : undefined;\n return message;\n },\n};\nfunction createBaseOnesieHeader_Field23() {\n return { videoId: \"\" };\n}\nexport const OnesieHeader_Field23 = {\n encode(message, writer = new BinaryWriter()) {\n if (message.videoId !== undefined && message.videoId !== \"\") {\n writer.uint32(18).string(message.videoId);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOnesieHeader_Field23();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 2:\n if (tag !== 18) {\n break;\n }\n message.videoId = reader.string();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return { videoId: isSet(object.videoId) ? globalThis.String(object.videoId) : \"\" };\n },\n toJSON(message) {\n const obj = {};\n if (message.videoId !== undefined && message.videoId !== \"\") {\n obj.videoId = message.videoId;\n }\n return obj;\n },\n create(base) {\n return OnesieHeader_Field23.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseOnesieHeader_Field23();\n message.videoId = object.videoId ?? \"\";\n return message;\n },\n};\nfunction createBaseOnesieHeader_Field34() {\n return { itagDenylist: [] };\n}\nexport const OnesieHeader_Field34 = {\n encode(message, writer = new BinaryWriter()) {\n for (const v of message.itagDenylist) {\n writer.uint32(10).string(v);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOnesieHeader_Field34();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.itagDenylist.push(reader.string());\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n itagDenylist: globalThis.Array.isArray(object?.itagDenylist)\n ? object.itagDenylist.map((e) => globalThis.String(e))\n : [],\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.itagDenylist?.length) {\n obj.itagDenylist = message.itagDenylist;\n }\n return obj;\n },\n create(base) {\n return OnesieHeader_Field34.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseOnesieHeader_Field34();\n message.itagDenylist = object.itagDenylist?.map((e) => e) || [];\n return message;\n },\n};\nfunction longToNumber(int64) {\n const num = globalThis.Number(int64.toString());\n if (num > globalThis.Number.MAX_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is larger than Number.MAX_SAFE_INTEGER\");\n }\n if (num < globalThis.Number.MIN_SAFE_INTEGER) {\n throw new globalThis.Error(\"Value is smaller than Number.MIN_SAFE_INTEGER\");\n }\n return num;\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/onesie_player_request.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { HttpHeader } from \"../misc/common.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseOnesiePlayerRequest() {\n return { url: \"\", headers: [], body: \"\", proxiedByTrustedBandaid: false, field6: false };\n}\nexport const OnesiePlayerRequest = {\n encode(message, writer = new BinaryWriter()) {\n if (message.url !== undefined && message.url !== \"\") {\n writer.uint32(10).string(message.url);\n }\n for (const v of message.headers) {\n HttpHeader.encode(v, writer.uint32(18).fork()).join();\n }\n if (message.body !== undefined && message.body !== \"\") {\n writer.uint32(26).string(message.body);\n }\n if (message.proxiedByTrustedBandaid !== undefined && message.proxiedByTrustedBandaid !== false) {\n writer.uint32(32).bool(message.proxiedByTrustedBandaid);\n }\n if (message.field6 !== undefined && message.field6 !== false) {\n writer.uint32(48).bool(message.field6);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOnesiePlayerRequest();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 10) {\n break;\n }\n message.url = reader.string();\n continue;\n case 2:\n if (tag !== 18) {\n break;\n }\n message.headers.push(HttpHeader.decode(reader, reader.uint32()));\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.body = reader.string();\n continue;\n case 4:\n if (tag !== 32) {\n break;\n }\n message.proxiedByTrustedBandaid = reader.bool();\n continue;\n case 6:\n if (tag !== 48) {\n break;\n }\n message.field6 = reader.bool();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n url: isSet(object.url) ? globalThis.String(object.url) : \"\",\n headers: globalThis.Array.isArray(object?.headers) ? object.headers.map((e) => HttpHeader.fromJSON(e)) : [],\n body: isSet(object.body) ? globalThis.String(object.body) : \"\",\n proxiedByTrustedBandaid: isSet(object.proxiedByTrustedBandaid)\n ? globalThis.Boolean(object.proxiedByTrustedBandaid)\n : false,\n field6: isSet(object.field6) ? globalThis.Boolean(object.field6) : false,\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.url !== undefined && message.url !== \"\") {\n obj.url = message.url;\n }\n if (message.headers?.length) {\n obj.headers = message.headers.map((e) => HttpHeader.toJSON(e));\n }\n if (message.body !== undefined && message.body !== \"\") {\n obj.body = message.body;\n }\n if (message.proxiedByTrustedBandaid !== undefined && message.proxiedByTrustedBandaid !== false) {\n obj.proxiedByTrustedBandaid = message.proxiedByTrustedBandaid;\n }\n if (message.field6 !== undefined && message.field6 !== false) {\n obj.field6 = message.field6;\n }\n return obj;\n },\n create(base) {\n return OnesiePlayerRequest.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseOnesiePlayerRequest();\n message.url = object.url ?? \"\";\n message.headers = object.headers?.map((e) => HttpHeader.fromPartial(e)) || [];\n message.body = object.body ?? \"\";\n message.proxiedByTrustedBandaid = object.proxiedByTrustedBandaid ?? false;\n message.field6 = object.field6 ?? false;\n return message;\n },\n};\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/onesie_player_response.proto\n/* eslint-disable */\nimport { BinaryReader, BinaryWriter } from \"@bufbuild/protobuf/wire\";\nimport { HttpHeader } from \"../misc/common.js\";\nexport const protobufPackage = \"video_streaming\";\nfunction createBaseOnesiePlayerResponse() {\n return { onesieProxyStatus: 0, httpStatus: 0, headers: [], body: new Uint8Array(0) };\n}\nexport const OnesiePlayerResponse = {\n encode(message, writer = new BinaryWriter()) {\n if (message.onesieProxyStatus !== undefined && message.onesieProxyStatus !== 0) {\n writer.uint32(8).int32(message.onesieProxyStatus);\n }\n if (message.httpStatus !== undefined && message.httpStatus !== 0) {\n writer.uint32(16).int32(message.httpStatus);\n }\n for (const v of message.headers) {\n HttpHeader.encode(v, writer.uint32(26).fork()).join();\n }\n if (message.body !== undefined && message.body.length !== 0) {\n writer.uint32(34).bytes(message.body);\n }\n return writer;\n },\n decode(input, length) {\n const reader = input instanceof BinaryReader ? input : new BinaryReader(input);\n let end = length === undefined ? reader.len : reader.pos + length;\n const message = createBaseOnesiePlayerResponse();\n while (reader.pos < end) {\n const tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (tag !== 8) {\n break;\n }\n message.onesieProxyStatus = reader.int32();\n continue;\n case 2:\n if (tag !== 16) {\n break;\n }\n message.httpStatus = reader.int32();\n continue;\n case 3:\n if (tag !== 26) {\n break;\n }\n message.headers.push(HttpHeader.decode(reader, reader.uint32()));\n continue;\n case 4:\n if (tag !== 34) {\n break;\n }\n message.body = reader.bytes();\n continue;\n }\n if ((tag & 7) === 4 || tag === 0) {\n break;\n }\n reader.skip(tag & 7);\n }\n return message;\n },\n fromJSON(object) {\n return {\n onesieProxyStatus: isSet(object.onesieProxyStatus) ? globalThis.Number(object.onesieProxyStatus) : 0,\n httpStatus: isSet(object.httpStatus) ? globalThis.Number(object.httpStatus) : 0,\n headers: globalThis.Array.isArray(object?.headers) ? object.headers.map((e) => HttpHeader.fromJSON(e)) : [],\n body: isSet(object.body) ? bytesFromBase64(object.body) : new Uint8Array(0),\n };\n },\n toJSON(message) {\n const obj = {};\n if (message.onesieProxyStatus !== undefined && message.onesieProxyStatus !== 0) {\n obj.onesieProxyStatus = Math.round(message.onesieProxyStatus);\n }\n if (message.httpStatus !== undefined && message.httpStatus !== 0) {\n obj.httpStatus = Math.round(message.httpStatus);\n }\n if (message.headers?.length) {\n obj.headers = message.headers.map((e) => HttpHeader.toJSON(e));\n }\n if (message.body !== undefined && message.body.length !== 0) {\n obj.body = base64FromBytes(message.body);\n }\n return obj;\n },\n create(base) {\n return OnesiePlayerResponse.fromPartial(base ?? {});\n },\n fromPartial(object) {\n const message = createBaseOnesiePlayerResponse();\n message.onesieProxyStatus = object.onesieProxyStatus ?? 0;\n message.httpStatus = object.httpStatus ?? 0;\n message.headers = object.headers?.map((e) => HttpHeader.fromPartial(e)) || [];\n message.body = object.body ?? new Uint8Array(0);\n return message;\n },\n};\nfunction bytesFromBase64(b64) {\n const bin = globalThis.atob(b64);\n const arr = new Uint8Array(bin.length);\n for (let i = 0; i < bin.length; ++i) {\n arr[i] = bin.charCodeAt(i);\n }\n return arr;\n}\nfunction base64FromBytes(arr) {\n const bin = [];\n arr.forEach((byte) => {\n bin.push(globalThis.String.fromCharCode(byte));\n });\n return globalThis.btoa(bin.join(\"\"));\n}\nfunction isSet(value) {\n return value !== null && value !== undefined;\n}\n", "// Code generated by protoc-gen-ts_proto. DO NOT EDIT.\n// versions:\n// protoc-gen-ts_proto v2.2.0\n// protoc v3.21.12\n// source: video_streaming/proxy_status.proto\n/* eslint-disable */\nexport const protobufPackage = \"video_streaming\";\nexport var ProxyStatus;\n(function (ProxyStatus) {\n ProxyStatus[ProxyStatus[\"VAL_0\"] = 0] = \"VAL_0\";\n ProxyStatus[ProxyStatus[\"OK\"] = 1] = \"OK\";\n ProxyStatus[ProxyStatus[\"VAL_2\"] = 2] = \"VAL_2\";\n ProxyStatus[ProxyStatus[\"VAL_3\"] = 3] = \"VAL_3\";\n ProxyStatus[ProxyStatus[\"VAL_4\"] = 4] = \"VAL_4\";\n ProxyStatus[ProxyStatus[\"VAL_5\"] = 5] = \"VAL_5\";\n ProxyStatus[ProxyStatus[\"VAL_6\"] = 6] = \"VAL_6\";\n ProxyStatus[ProxyStatus[\"VAL_7\"] = 7] = \"VAL_7\";\n ProxyStatus[ProxyStatus[\"VAL_8\"] = 8] = \"VAL_8\";\n ProxyStatus[ProxyStatus[\"VAL_9\"] = 9] = \"VAL_9\";\n ProxyStatus[ProxyStatus[\"UNRECOGNIZED\"] = -1] = \"UNRECOGNIZED\";\n})(ProxyStatus || (ProxyStatus = {}));\nexport function proxyStatusFromJSON(object) {\n switch (object) {\n case 0:\n case \"VAL_0\":\n return ProxyStatus.VAL_0;\n case 1:\n case \"OK\":\n return ProxyStatus.OK;\n case 2:\n case \"VAL_2\":\n return ProxyStatus.VAL_2;\n case 3:\n case \"VAL_3\":\n return ProxyStatus.VAL_3;\n case 4:\n case \"VAL_4\":\n return ProxyStatus.VAL_4;\n case 5:\n case \"VAL_5\":\n return ProxyStatus.VAL_5;\n case 6:\n case \"VAL_6\":\n return ProxyStatus.VAL_6;\n case 7:\n case \"VAL_7\":\n return ProxyStatus.VAL_7;\n case 8:\n case \"VAL_8\":\n return ProxyStatus.VAL_8;\n case 9:\n case \"VAL_9\":\n return ProxyStatus.VAL_9;\n case -1:\n case \"UNRECOGNIZED\":\n default:\n return ProxyStatus.UNRECOGNIZED;\n }\n}\nexport function proxyStatusToJSON(object) {\n switch (object) {\n case ProxyStatus.VAL_0:\n return \"VAL_0\";\n case ProxyStatus.OK:\n return \"OK\";\n case ProxyStatus.VAL_2:\n return \"VAL_2\";\n case ProxyStatus.VAL_3:\n return \"VAL_3\";\n case ProxyStatus.VAL_4:\n return \"VAL_4\";\n case ProxyStatus.VAL_5:\n return \"VAL_5\";\n case ProxyStatus.VAL_6:\n return \"VAL_6\";\n case ProxyStatus.VAL_7:\n return \"VAL_7\";\n case ProxyStatus.VAL_8:\n return \"VAL_8\";\n case ProxyStatus.VAL_9:\n return \"VAL_9\";\n case ProxyStatus.UNRECOGNIZED:\n default:\n return \"UNRECOGNIZED\";\n }\n}\n", "import { UMP } from './UMP.js';\nimport { ChunkedDataBuffer } from './ChunkedDataBuffer.js';\nimport { EventEmitterLike, PART, QUALITY, base64ToU8, getFormatKey } from '../utils/index.js';\nimport { ClientAbrState_MediaType } from '../../protos/generated/video_streaming/client_abr_state.js';\nimport { VideoPlaybackAbrRequest } from '../../protos/generated/video_streaming/video_playback_abr_request.js';\nimport { MediaHeader } from '../../protos/generated/video_streaming/media_header.js';\nimport { NextRequestPolicy } from '../../protos/generated/video_streaming/next_request_policy.js';\nimport { FormatInitializationMetadata } from '../../protos/generated/video_streaming/format_initialization_metadata.js';\nimport { SabrRedirect } from '../../protos/generated/video_streaming/sabr_redirect.js';\nimport { SabrError } from '../../protos/generated/video_streaming/sabr_error.js';\nimport { StreamProtectionStatus } from '../../protos/generated/video_streaming/stream_protection_status.js';\nimport { PlaybackCookie } from '../../protos/generated/video_streaming/playback_cookie.js';\nconst DEFAULT_QUALITY = QUALITY.HD720;\nexport class ServerAbrStream extends EventEmitterLike {\n constructor(args) {\n super();\n this.initializedFormats = [];\n this.formatsByKey = new Map();\n this.headerIdToFormatKeyMap = new Map();\n this.previousSequences = new Map();\n this.fetchFunction = args.fetch || fetch;\n this.serverAbrStreamingUrl = args.serverAbrStreamingUrl;\n this.videoPlaybackUstreamerConfig = args.videoPlaybackUstreamerConfig;\n this.poToken = args.poToken;\n this.totalDurationMs = args.durationMs;\n }\n on(event, listener) {\n super.on(event, listener);\n }\n once(event, listener) {\n super.once(event, listener);\n }\n /**\n * Initializes the server ABR stream with the provided options.\n * @param args - The initialization options.\n */\n async init(args) {\n const { audioFormats, videoFormats, clientAbrState: initialState } = args;\n const firstVideoFormat = videoFormats ? videoFormats[0] : undefined;\n const clientAbrState = {\n lastManualDirection: 0,\n timeSinceLastManualFormatSelectionMs: 0,\n quality: videoFormats.length === 1 ? firstVideoFormat?.width : DEFAULT_QUALITY,\n selectedQualityHeight: videoFormats.length === 1 ? firstVideoFormat?.width : DEFAULT_QUALITY,\n startTimeMs: 0,\n visibility: 0,\n mediaType: ClientAbrState_MediaType.MEDIA_TYPE_DEFAULT,\n ...initialState\n };\n const audioFormatIds = audioFormats.map((fmt) => ({\n itag: fmt.itag,\n lastModified: parseInt(fmt.lastModified),\n xtags: fmt.xtags\n }));\n const videoFormatIds = videoFormats.map((fmt) => ({\n itag: fmt.itag,\n lastModified: parseInt(fmt.lastModified),\n xtags: fmt.xtags\n }));\n if (typeof clientAbrState.startTimeMs !== 'number')\n throw new Error('Invalid media start time');\n try {\n while (clientAbrState.startTimeMs < this.totalDurationMs) {\n const data = await this.fetchMedia({ clientAbrState, audioFormatIds, videoFormatIds });\n this.emit('data', data);\n if (data.sabrError)\n break;\n const mainFormat = clientAbrState.mediaType === ClientAbrState_MediaType.MEDIA_TYPE_DEFAULT\n ? data.initializedFormats.find((fmt) => fmt.mimeType?.includes('video'))\n : data.initializedFormats[0];\n for (const fmt of data.initializedFormats) {\n this.previousSequences.set(fmt.formatKey, fmt.sequenceList.map((seq) => seq.sequenceNumber || 0));\n }\n if (!mainFormat ||\n mainFormat.sequenceCount ===\n mainFormat.sequenceList[mainFormat.sequenceList.length - 1]?.sequenceNumber) {\n this.emit('end', data);\n break;\n }\n clientAbrState.startTimeMs += mainFormat.sequenceList.reduce((acc, seq) => acc + (seq.durationMs || 0), 0);\n }\n }\n catch (error) {\n this.emit('error', error);\n }\n }\n async fetchMedia(args) {\n const { clientAbrState, audioFormatIds, videoFormatIds } = args;\n const body = VideoPlaybackAbrRequest.encode({\n clientAbrState: clientAbrState,\n selectedAudioFormatIds: audioFormatIds,\n selectedVideoFormatIds: videoFormatIds,\n selectedFormatIds: this.initializedFormats.map((fmt) => fmt.formatId),\n videoPlaybackUstreamerConfig: base64ToU8(this.videoPlaybackUstreamerConfig),\n streamerContext: {\n field5: [],\n field6: [],\n poToken: this.poToken ? base64ToU8(this.poToken) : undefined,\n playbackCookie: this.playbackCookie ? PlaybackCookie.encode(this.playbackCookie).finish() : undefined,\n clientInfo: {\n clientName: 1,\n clientVersion: '2.2040620.05.00',\n osName: 'Windows',\n osVersion: '10.0'\n }\n },\n bufferedRanges: this.initializedFormats.map((fmt) => fmt._state),\n field1000: []\n }).finish();\n const response = await this.fetchFunction(this.serverAbrStreamingUrl, { method: 'POST', body });\n const data = await response.arrayBuffer();\n if (response.status !== 200 || !data.byteLength)\n throw new Error(`Received an invalid response from the server: ${response.status}`);\n return this.parseUMPResponse(new Uint8Array(data));\n }\n /**\n * Parses the UMP response data and updates the initialized formats.\n * @param response - The UMP response data as a byte array.\n */\n async parseUMPResponse(response) {\n this.headerIdToFormatKeyMap.clear();\n this.initializedFormats.forEach((format) => {\n format.sequenceList = [];\n format.mediaChunks = [];\n });\n let sabrError;\n let sabrRedirect;\n let streamProtectionStatus;\n const ump = new UMP(new ChunkedDataBuffer([response]));\n ump.parse((part) => {\n const data = part.data.chunks[0];\n switch (part.type) {\n case PART.MEDIA_HEADER:\n this.processMediaHeader(data);\n break;\n case PART.MEDIA:\n this.processMediaData(part.data);\n break;\n case PART.MEDIA_END:\n this.processEndOfMedia(part.data);\n break;\n case PART.NEXT_REQUEST_POLICY:\n this.processNextRequestPolicy(data);\n break;\n case PART.FORMAT_INITIALIZATION_METADATA:\n this.processFormatInitialization(data);\n break;\n case PART.SABR_ERROR:\n sabrError = SabrError.decode(data);\n break;\n case PART.SABR_REDIRECT:\n sabrRedirect = this.processSabrRedirect(data);\n break;\n case PART.STREAM_PROTECTION_STATUS:\n streamProtectionStatus = StreamProtectionStatus.decode(data);\n break;\n default:\n break;\n }\n });\n return {\n initializedFormats: this.initializedFormats,\n streamProtectionStatus,\n sabrRedirect,\n sabrError\n };\n }\n processMediaHeader(data) {\n const mediaHeader = MediaHeader.decode(data);\n if (!mediaHeader.formatId)\n return;\n const formatKey = getFormatKey(mediaHeader.formatId);\n let currentFormat = this.formatsByKey.get(formatKey);\n if (!currentFormat) {\n this.initializedFormats.push({\n formatId: mediaHeader.formatId,\n formatKey,\n durationMs: mediaHeader.durationMs,\n mimeType: undefined,\n sequenceCount: undefined,\n sequenceList: [],\n mediaChunks: [],\n _state: {\n formatId: mediaHeader.formatId,\n startTimeMs: 0,\n durationMs: 0,\n startSegmentIndex: 1,\n endSegmentIndex: 0\n }\n });\n this.formatsByKey.set(formatKey, this.initializedFormats[this.initializedFormats.length - 1]);\n currentFormat = this.formatsByKey.get(formatKey);\n }\n // FIXME: This is a hacky workaround to prevent duplicate sequences from being added. This should be fixed in the future (preferably by figuring out how to make the server not send duplicates).\n if (mediaHeader.sequenceNumber !== undefined && this.previousSequences.get(formatKey)?.includes(mediaHeader.sequenceNumber))\n return;\n // Save the header's ID so we can identify its stream data later.\n if (mediaHeader.headerId !== undefined) {\n if (!this.headerIdToFormatKeyMap.has(mediaHeader.headerId)) {\n this.headerIdToFormatKeyMap.set(mediaHeader.headerId, formatKey);\n }\n }\n if (!currentFormat.sequenceList.some((seq) => seq.sequenceNumber === (mediaHeader.sequenceNumber || 0))) {\n currentFormat.sequenceList.push({\n itag: mediaHeader.itag,\n formatId: mediaHeader.formatId,\n isInitSegment: mediaHeader.isInitSeg,\n durationMs: mediaHeader.durationMs,\n startMs: mediaHeader.startMs,\n startDataRange: mediaHeader.startDataRange,\n sequenceNumber: mediaHeader.sequenceNumber,\n contentLength: mediaHeader.contentLength,\n timeRange: mediaHeader.timeRange\n });\n if (typeof mediaHeader.sequenceNumber === 'number') {\n currentFormat._state.durationMs += mediaHeader.durationMs || 0;\n currentFormat._state.endSegmentIndex += 1;\n }\n }\n }\n processMediaData(data) {\n const headerId = data.getUint8(0);\n const streamData = data.split(1).remainingBuffer;\n const formatKey = this.headerIdToFormatKeyMap.get(headerId);\n if (!formatKey)\n return;\n const currentFormat = this.formatsByKey.get(formatKey);\n if (!currentFormat)\n return;\n currentFormat.mediaChunks.push(streamData.chunks[0]);\n }\n processEndOfMedia(data) {\n const headerId = data.getUint8(0);\n this.headerIdToFormatKeyMap.delete(headerId);\n }\n processNextRequestPolicy(data) {\n const nextRequestPolicy = NextRequestPolicy.decode(data);\n this.playbackCookie = nextRequestPolicy.playbackCookie;\n }\n processFormatInitialization(data) {\n const formatInitializationMetadata = FormatInitializationMetadata.decode(data);\n if (!formatInitializationMetadata.formatId)\n return;\n const formatKey = getFormatKey(formatInitializationMetadata.formatId);\n if (!this.formatsByKey.has(formatKey)) {\n this.initializedFormats.push({\n formatId: formatInitializationMetadata.formatId,\n formatKey: getFormatKey(formatInitializationMetadata.formatId),\n durationMs: formatInitializationMetadata.durationMs,\n mimeType: formatInitializationMetadata.mimeType,\n sequenceCount: formatInitializationMetadata.field4,\n sequenceList: [],\n mediaChunks: [],\n _state: {\n formatId: formatInitializationMetadata.formatId,\n startTimeMs: 0,\n durationMs: 0,\n startSegmentIndex: 1,\n endSegmentIndex: 0\n }\n });\n this.formatsByKey.set(formatKey, this.initializedFormats[this.initializedFormats.length - 1]);\n }\n }\n processSabrRedirect(data) {\n const sabrRedirect = SabrRedirect.decode(data);\n if (!sabrRedirect.url)\n throw new Error('Invalid SABR redirect');\n this.serverAbrStreamingUrl = sabrRedirect.url;\n return sabrRedirect;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["QUALITY", "PART", "__classPrivateFieldGet", "WireType", "isSet", "longToNumber", "isSet", "longToNumber", "isSet", "MediaHeader_Compression", "longToNumber", "isSet", "isSet", "isSet", "isSet", "isSet", "isSet", "isSet", "isSet", "isSet", "ClientAbrState_MediaType", "longToNumber", "isSet", "StreamerContext_ClientFormFactor", "isSet", "bytesFromBase64", "base64FromBytes", "longToNumber", "isSet", "bytesFromBase64", "base64FromBytes", "isSet", "bytesFromBase64", "base64FromBytes", "isSet", "bytesFromBase64", "base64FromBytes", "CryptoParams_CompressionType", "isSet", "bytesFromBase64", "base64FromBytes", "OnesieHeaderType", "longToNumber", "isSet", "isSet", "isSet", "bytesFromBase64", "base64FromBytes", "ProxyStatus", "_a"]
7
- }