chore: update protos x2

This commit is contained in:
Luan
2024-09-25 14:36:16 -03:00
parent 3d41824dee
commit 125654457e
7 changed files with 219 additions and 191 deletions

View File

@@ -81,9 +81,7 @@ const body = Protos.OnesieInnertubeRequest.encode({
timeSinceLastManualFormatSelectionMs: 0,
lastManualDirection: 0,
quality: QUALITY.HD720,
maxWidth: 640,
maxHeight: 360,
iea: 720,
selectedQualityHeight: QUALITY.HD720,
startTimeMs: 0,
visibility: 0
},

View File

@@ -17,36 +17,37 @@ export interface MediaInfo {
detailedNetworkType?: number | undefined;
maxWidth?: number | undefined;
maxHeight?: number | undefined;
iea?: number | undefined;
selectedQualityHeight?: number | undefined;
r7?: number | undefined;
startTimeMs?: number | undefined;
timeSinceLastSeek?: number | undefined;
visibility?: number | undefined;
d8?: number | undefined;
timeSinceLastReq?: number | undefined;
mediaCapabilities?: MediaCapabilities | undefined;
lact?:
timeSinceLastAction?:
| number
| undefined;
/** optional int32 Gw = 40; */
mediaType?: MediaInfo_MediaType | undefined;
playerState?: number | undefined;
a8?: boolean | undefined;
rangeCompression?: boolean | undefined;
Jda?: number | undefined;
qw?: number | undefined;
Ky?: number | undefined;
Eq?: number | undefined;
sabrReportRequestCancellationInfo?: number | undefined;
l?: boolean | undefined;
G7?: number | undefined;
No?: boolean | undefined;
preferVp9?: boolean | undefined;
qj?: number | undefined;
Hx?: number | undefined;
isPrefetch?: boolean | undefined;
Iz?: number | undefined;
sabrSupportQualityConstraints?: number | undefined;
sabrLicenseConstraint?: Uint8Array | undefined;
allowProximaLiveLatency?: number | undefined;
sabrForceProxima?: number | undefined;
Tqb?: number | undefined;
c?: number | undefined;
sabrForceMaxNetworkInterruptionDurationMs?: number | undefined;
playbackRate?: number | undefined;
}
export enum MediaInfo_MediaType {
@@ -102,33 +103,34 @@ function createBaseMediaInfo(): MediaInfo {
detailedNetworkType: 0,
maxWidth: 0,
maxHeight: 0,
iea: 0,
selectedQualityHeight: 0,
r7: 0,
startTimeMs: 0,
timeSinceLastSeek: 0,
visibility: 0,
d8: 0,
timeSinceLastReq: 0,
mediaCapabilities: undefined,
lact: 0,
timeSinceLastAction: 0,
mediaType: 0,
playerState: 0,
a8: false,
rangeCompression: false,
Jda: 0,
qw: 0,
Ky: 0,
Eq: 0,
sabrReportRequestCancellationInfo: 0,
l: false,
G7: 0,
No: false,
preferVp9: false,
qj: 0,
Hx: 0,
isPrefetch: false,
Iz: 0,
sabrSupportQualityConstraints: 0,
sabrLicenseConstraint: new Uint8Array(0),
allowProximaLiveLatency: 0,
sabrForceProxima: 0,
Tqb: 0,
c: 0,
sabrForceMaxNetworkInterruptionDurationMs: 0,
playbackRate: 0,
};
}
@@ -154,8 +156,8 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.maxHeight !== undefined && message.maxHeight !== 0) {
writer.uint32(152).int32(message.maxHeight);
}
if (message.iea !== undefined && message.iea !== 0) {
writer.uint32(168).int32(message.iea);
if (message.selectedQualityHeight !== undefined && message.selectedQualityHeight !== 0) {
writer.uint32(168).int32(message.selectedQualityHeight);
}
if (message.r7 !== undefined && message.r7 !== 0) {
writer.uint32(184).int32(message.r7);
@@ -169,23 +171,23 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.visibility !== undefined && message.visibility !== 0) {
writer.uint32(272).int32(message.visibility);
}
if (message.d8 !== undefined && message.d8 !== 0) {
writer.uint32(288).int64(message.d8);
if (message.timeSinceLastReq !== undefined && message.timeSinceLastReq !== 0) {
writer.uint32(288).int64(message.timeSinceLastReq);
}
if (message.mediaCapabilities !== undefined) {
MediaCapabilities.encode(message.mediaCapabilities, writer.uint32(306).fork()).join();
}
if (message.lact !== undefined && message.lact !== 0) {
writer.uint32(312).int32(message.lact);
if (message.timeSinceLastAction !== undefined && message.timeSinceLastAction !== 0) {
writer.uint32(312).int64(message.timeSinceLastAction);
}
if (message.mediaType !== undefined && message.mediaType !== 0) {
writer.uint32(320).int32(message.mediaType);
}
if (message.playerState !== undefined && message.playerState !== 0) {
writer.uint32(352).int32(message.playerState);
writer.uint32(352).int64(message.playerState);
}
if (message.a8 !== undefined && message.a8 !== false) {
writer.uint32(368).bool(message.a8);
if (message.rangeCompression !== undefined && message.rangeCompression !== false) {
writer.uint32(368).bool(message.rangeCompression);
}
if (message.Jda !== undefined && message.Jda !== 0) {
writer.uint32(384).int32(message.Jda);
@@ -196,17 +198,17 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.Ky !== undefined && message.Ky !== 0) {
writer.uint32(408).int32(message.Ky);
}
if (message.Eq !== undefined && message.Eq !== 0) {
writer.uint32(432).int32(message.Eq);
if (message.sabrReportRequestCancellationInfo !== undefined && message.sabrReportRequestCancellationInfo !== 0) {
writer.uint32(432).int32(message.sabrReportRequestCancellationInfo);
}
if (message.l !== undefined && message.l !== false) {
writer.uint32(448).bool(message.l);
}
if (message.G7 !== undefined && message.G7 !== 0) {
writer.uint32(456).int32(message.G7);
writer.uint32(456).int64(message.G7);
}
if (message.No !== undefined && message.No !== false) {
writer.uint32(464).bool(message.No);
if (message.preferVp9 !== undefined && message.preferVp9 !== false) {
writer.uint32(464).bool(message.preferVp9);
}
if (message.qj !== undefined && message.qj !== 0) {
writer.uint32(472).int32(message.qj);
@@ -217,8 +219,8 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.isPrefetch !== undefined && message.isPrefetch !== false) {
writer.uint32(488).bool(message.isPrefetch);
}
if (message.Iz !== undefined && message.Iz !== 0) {
writer.uint32(496).int32(message.Iz);
if (message.sabrSupportQualityConstraints !== undefined && message.sabrSupportQualityConstraints !== 0) {
writer.uint32(496).int32(message.sabrSupportQualityConstraints);
}
if (message.sabrLicenseConstraint !== undefined && message.sabrLicenseConstraint.length !== 0) {
writer.uint32(506).bytes(message.sabrLicenseConstraint);
@@ -232,8 +234,14 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.Tqb !== undefined && message.Tqb !== 0) {
writer.uint32(536).int32(message.Tqb);
}
if (message.c !== undefined && message.c !== 0) {
writer.uint32(544).int32(message.c);
if (
message.sabrForceMaxNetworkInterruptionDurationMs !== undefined &&
message.sabrForceMaxNetworkInterruptionDurationMs !== 0
) {
writer.uint32(544).int64(message.sabrForceMaxNetworkInterruptionDurationMs);
}
if (message.playbackRate !== undefined && message.playbackRate !== 0) {
writer.uint32(2285).float(message.playbackRate);
}
return writer;
},
@@ -292,7 +300,7 @@ export const MediaInfo: MessageFns<MediaInfo> = {
break;
}
message.iea = reader.int32();
message.selectedQualityHeight = reader.int32();
continue;
case 23:
if (tag !== 184) {
@@ -327,7 +335,7 @@ export const MediaInfo: MessageFns<MediaInfo> = {
break;
}
message.d8 = longToNumber(reader.int64());
message.timeSinceLastReq = longToNumber(reader.int64());
continue;
case 38:
if (tag !== 306) {
@@ -341,7 +349,7 @@ export const MediaInfo: MessageFns<MediaInfo> = {
break;
}
message.lact = reader.int32();
message.timeSinceLastAction = longToNumber(reader.int64());
continue;
case 40:
if (tag !== 320) {
@@ -355,14 +363,14 @@ export const MediaInfo: MessageFns<MediaInfo> = {
break;
}
message.playerState = reader.int32();
message.playerState = longToNumber(reader.int64());
continue;
case 46:
if (tag !== 368) {
break;
}
message.a8 = reader.bool();
message.rangeCompression = reader.bool();
continue;
case 48:
if (tag !== 384) {
@@ -390,7 +398,7 @@ export const MediaInfo: MessageFns<MediaInfo> = {
break;
}
message.Eq = reader.int32();
message.sabrReportRequestCancellationInfo = reader.int32();
continue;
case 56:
if (tag !== 448) {
@@ -404,14 +412,14 @@ export const MediaInfo: MessageFns<MediaInfo> = {
break;
}
message.G7 = reader.int32();
message.G7 = longToNumber(reader.int64());
continue;
case 58:
if (tag !== 464) {
break;
}
message.No = reader.bool();
message.preferVp9 = reader.bool();
continue;
case 59:
if (tag !== 472) {
@@ -439,7 +447,7 @@ export const MediaInfo: MessageFns<MediaInfo> = {
break;
}
message.Iz = reader.int32();
message.sabrSupportQualityConstraints = reader.int32();
continue;
case 63:
if (tag !== 506) {
@@ -474,7 +482,14 @@ export const MediaInfo: MessageFns<MediaInfo> = {
break;
}
message.c = reader.int32();
message.sabrForceMaxNetworkInterruptionDurationMs = longToNumber(reader.int64());
continue;
case 285:
if (tag !== 2285) {
break;
}
message.playbackRate = reader.float();
continue;
}
if ((tag & 7) === 4 || tag === 0) {
@@ -495,30 +510,34 @@ export const MediaInfo: MessageFns<MediaInfo> = {
detailedNetworkType: isSet(object.detailedNetworkType) ? globalThis.Number(object.detailedNetworkType) : 0,
maxWidth: isSet(object.maxWidth) ? globalThis.Number(object.maxWidth) : 0,
maxHeight: isSet(object.maxHeight) ? globalThis.Number(object.maxHeight) : 0,
iea: isSet(object.iea) ? globalThis.Number(object.iea) : 0,
selectedQualityHeight: isSet(object.selectedQualityHeight) ? globalThis.Number(object.selectedQualityHeight) : 0,
r7: isSet(object.r7) ? globalThis.Number(object.r7) : 0,
startTimeMs: isSet(object.startTimeMs) ? globalThis.Number(object.startTimeMs) : 0,
timeSinceLastSeek: isSet(object.timeSinceLastSeek) ? globalThis.Number(object.timeSinceLastSeek) : 0,
visibility: isSet(object.visibility) ? globalThis.Number(object.visibility) : 0,
d8: isSet(object.d8) ? globalThis.Number(object.d8) : 0,
timeSinceLastReq: isSet(object.timeSinceLastReq) ? globalThis.Number(object.timeSinceLastReq) : 0,
mediaCapabilities: isSet(object.mediaCapabilities)
? MediaCapabilities.fromJSON(object.mediaCapabilities)
: undefined,
lact: isSet(object.lact) ? globalThis.Number(object.lact) : 0,
timeSinceLastAction: isSet(object.timeSinceLastAction) ? globalThis.Number(object.timeSinceLastAction) : 0,
mediaType: isSet(object.mediaType) ? mediaInfo_MediaTypeFromJSON(object.mediaType) : 0,
playerState: isSet(object.playerState) ? globalThis.Number(object.playerState) : 0,
a8: isSet(object.a8) ? globalThis.Boolean(object.a8) : false,
rangeCompression: isSet(object.rangeCompression) ? globalThis.Boolean(object.rangeCompression) : false,
Jda: isSet(object.Jda) ? globalThis.Number(object.Jda) : 0,
qw: isSet(object.qw) ? globalThis.Number(object.qw) : 0,
Ky: isSet(object.Ky) ? globalThis.Number(object.Ky) : 0,
Eq: isSet(object.Eq) ? globalThis.Number(object.Eq) : 0,
sabrReportRequestCancellationInfo: isSet(object.sabrReportRequestCancellationInfo)
? globalThis.Number(object.sabrReportRequestCancellationInfo)
: 0,
l: isSet(object.l) ? globalThis.Boolean(object.l) : false,
G7: isSet(object.G7) ? globalThis.Number(object.G7) : 0,
No: isSet(object.No) ? globalThis.Boolean(object.No) : false,
preferVp9: isSet(object.preferVp9) ? globalThis.Boolean(object.preferVp9) : false,
qj: isSet(object.qj) ? globalThis.Number(object.qj) : 0,
Hx: isSet(object.Hx) ? globalThis.Number(object.Hx) : 0,
isPrefetch: isSet(object.isPrefetch) ? globalThis.Boolean(object.isPrefetch) : false,
Iz: isSet(object.Iz) ? globalThis.Number(object.Iz) : 0,
sabrSupportQualityConstraints: isSet(object.sabrSupportQualityConstraints)
? globalThis.Number(object.sabrSupportQualityConstraints)
: 0,
sabrLicenseConstraint: isSet(object.sabrLicenseConstraint)
? bytesFromBase64(object.sabrLicenseConstraint)
: new Uint8Array(0),
@@ -527,7 +546,10 @@ export const MediaInfo: MessageFns<MediaInfo> = {
: 0,
sabrForceProxima: isSet(object.sabrForceProxima) ? globalThis.Number(object.sabrForceProxima) : 0,
Tqb: isSet(object.Tqb) ? globalThis.Number(object.Tqb) : 0,
c: isSet(object.c) ? globalThis.Number(object.c) : 0,
sabrForceMaxNetworkInterruptionDurationMs: isSet(object.sabrForceMaxNetworkInterruptionDurationMs)
? globalThis.Number(object.sabrForceMaxNetworkInterruptionDurationMs)
: 0,
playbackRate: isSet(object.playbackRate) ? globalThis.Number(object.playbackRate) : 0,
};
},
@@ -553,8 +575,8 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.maxHeight !== undefined && message.maxHeight !== 0) {
obj.maxHeight = Math.round(message.maxHeight);
}
if (message.iea !== undefined && message.iea !== 0) {
obj.iea = Math.round(message.iea);
if (message.selectedQualityHeight !== undefined && message.selectedQualityHeight !== 0) {
obj.selectedQualityHeight = Math.round(message.selectedQualityHeight);
}
if (message.r7 !== undefined && message.r7 !== 0) {
obj.r7 = Math.round(message.r7);
@@ -568,14 +590,14 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.visibility !== undefined && message.visibility !== 0) {
obj.visibility = Math.round(message.visibility);
}
if (message.d8 !== undefined && message.d8 !== 0) {
obj.d8 = Math.round(message.d8);
if (message.timeSinceLastReq !== undefined && message.timeSinceLastReq !== 0) {
obj.timeSinceLastReq = Math.round(message.timeSinceLastReq);
}
if (message.mediaCapabilities !== undefined) {
obj.mediaCapabilities = MediaCapabilities.toJSON(message.mediaCapabilities);
}
if (message.lact !== undefined && message.lact !== 0) {
obj.lact = Math.round(message.lact);
if (message.timeSinceLastAction !== undefined && message.timeSinceLastAction !== 0) {
obj.timeSinceLastAction = Math.round(message.timeSinceLastAction);
}
if (message.mediaType !== undefined && message.mediaType !== 0) {
obj.mediaType = mediaInfo_MediaTypeToJSON(message.mediaType);
@@ -583,8 +605,8 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.playerState !== undefined && message.playerState !== 0) {
obj.playerState = Math.round(message.playerState);
}
if (message.a8 !== undefined && message.a8 !== false) {
obj.a8 = message.a8;
if (message.rangeCompression !== undefined && message.rangeCompression !== false) {
obj.rangeCompression = message.rangeCompression;
}
if (message.Jda !== undefined && message.Jda !== 0) {
obj.Jda = Math.round(message.Jda);
@@ -595,8 +617,8 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.Ky !== undefined && message.Ky !== 0) {
obj.Ky = Math.round(message.Ky);
}
if (message.Eq !== undefined && message.Eq !== 0) {
obj.Eq = Math.round(message.Eq);
if (message.sabrReportRequestCancellationInfo !== undefined && message.sabrReportRequestCancellationInfo !== 0) {
obj.sabrReportRequestCancellationInfo = Math.round(message.sabrReportRequestCancellationInfo);
}
if (message.l !== undefined && message.l !== false) {
obj.l = message.l;
@@ -604,8 +626,8 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.G7 !== undefined && message.G7 !== 0) {
obj.G7 = Math.round(message.G7);
}
if (message.No !== undefined && message.No !== false) {
obj.No = message.No;
if (message.preferVp9 !== undefined && message.preferVp9 !== false) {
obj.preferVp9 = message.preferVp9;
}
if (message.qj !== undefined && message.qj !== 0) {
obj.qj = Math.round(message.qj);
@@ -616,8 +638,8 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.isPrefetch !== undefined && message.isPrefetch !== false) {
obj.isPrefetch = message.isPrefetch;
}
if (message.Iz !== undefined && message.Iz !== 0) {
obj.Iz = Math.round(message.Iz);
if (message.sabrSupportQualityConstraints !== undefined && message.sabrSupportQualityConstraints !== 0) {
obj.sabrSupportQualityConstraints = Math.round(message.sabrSupportQualityConstraints);
}
if (message.sabrLicenseConstraint !== undefined && message.sabrLicenseConstraint.length !== 0) {
obj.sabrLicenseConstraint = base64FromBytes(message.sabrLicenseConstraint);
@@ -631,8 +653,14 @@ export const MediaInfo: MessageFns<MediaInfo> = {
if (message.Tqb !== undefined && message.Tqb !== 0) {
obj.Tqb = Math.round(message.Tqb);
}
if (message.c !== undefined && message.c !== 0) {
obj.c = Math.round(message.c);
if (
message.sabrForceMaxNetworkInterruptionDurationMs !== undefined &&
message.sabrForceMaxNetworkInterruptionDurationMs !== 0
) {
obj.sabrForceMaxNetworkInterruptionDurationMs = Math.round(message.sabrForceMaxNetworkInterruptionDurationMs);
}
if (message.playbackRate !== undefined && message.playbackRate !== 0) {
obj.playbackRate = message.playbackRate;
}
return obj;
},
@@ -648,35 +676,36 @@ export const MediaInfo: MessageFns<MediaInfo> = {
message.detailedNetworkType = object.detailedNetworkType ?? 0;
message.maxWidth = object.maxWidth ?? 0;
message.maxHeight = object.maxHeight ?? 0;
message.iea = object.iea ?? 0;
message.selectedQualityHeight = object.selectedQualityHeight ?? 0;
message.r7 = object.r7 ?? 0;
message.startTimeMs = object.startTimeMs ?? 0;
message.timeSinceLastSeek = object.timeSinceLastSeek ?? 0;
message.visibility = object.visibility ?? 0;
message.d8 = object.d8 ?? 0;
message.timeSinceLastReq = object.timeSinceLastReq ?? 0;
message.mediaCapabilities = (object.mediaCapabilities !== undefined && object.mediaCapabilities !== null)
? MediaCapabilities.fromPartial(object.mediaCapabilities)
: undefined;
message.lact = object.lact ?? 0;
message.timeSinceLastAction = object.timeSinceLastAction ?? 0;
message.mediaType = object.mediaType ?? 0;
message.playerState = object.playerState ?? 0;
message.a8 = object.a8 ?? false;
message.rangeCompression = object.rangeCompression ?? false;
message.Jda = object.Jda ?? 0;
message.qw = object.qw ?? 0;
message.Ky = object.Ky ?? 0;
message.Eq = object.Eq ?? 0;
message.sabrReportRequestCancellationInfo = object.sabrReportRequestCancellationInfo ?? 0;
message.l = object.l ?? false;
message.G7 = object.G7 ?? 0;
message.No = object.No ?? false;
message.preferVp9 = object.preferVp9 ?? false;
message.qj = object.qj ?? 0;
message.Hx = object.Hx ?? 0;
message.isPrefetch = object.isPrefetch ?? false;
message.Iz = object.Iz ?? 0;
message.sabrSupportQualityConstraints = object.sabrSupportQualityConstraints ?? 0;
message.sabrLicenseConstraint = object.sabrLicenseConstraint ?? new Uint8Array(0);
message.allowProximaLiveLatency = object.allowProximaLiveLatency ?? 0;
message.sabrForceProxima = object.sabrForceProxima ?? 0;
message.Tqb = object.Tqb ?? 0;
message.c = object.c ?? 0;
message.sabrForceMaxNetworkInterruptionDurationMs = object.sabrForceMaxNetworkInterruptionDurationMs ?? 0;
message.playbackRate = object.playbackRate ?? 0;
return message;
},
};

View File

@@ -15,12 +15,12 @@ export const protobufPackage = "video_streaming";
export interface VideoPlaybackAbrRequest {
mediaInfo?: MediaInfo | undefined;
formatIds: FormatId[];
ud: Zpa[];
selectedFormats: FormatId[];
bufferedRange: BufferedRange[];
videoPlaybackUstreamerConfig?: Uint8Array | undefined;
lo?: Lo | undefined;
audioFormatIds: FormatId[];
videoFormatIds: FormatId[];
audioFormats: FormatId[];
videoFormats: FormatId[];
streamerContext?: StreamerContext | undefined;
field21?: OQa | undefined;
field22?: number | undefined;
@@ -57,12 +57,12 @@ export interface YPa {
field3?: number | undefined;
}
export interface Zpa {
export interface BufferedRange {
formatId: FormatId | undefined;
startTimeMs: number;
durationMs: number;
field4: number;
sequenceNumber: number;
startSegmentIndex: number;
endSegmentIndex: number;
timeRange?: TimeRange | undefined;
field9?: Kob | undefined;
field11?: YPa | undefined;
@@ -79,20 +79,20 @@ export interface OQa {
}
export interface Pqa {
formatIds: FormatId[];
ud: Zpa[];
formats: FormatId[];
ud: BufferedRange[];
clipId?: string | undefined;
}
function createBaseVideoPlaybackAbrRequest(): VideoPlaybackAbrRequest {
return {
mediaInfo: undefined,
formatIds: [],
ud: [],
selectedFormats: [],
bufferedRange: [],
videoPlaybackUstreamerConfig: new Uint8Array(0),
lo: undefined,
audioFormatIds: [],
videoFormatIds: [],
audioFormats: [],
videoFormats: [],
streamerContext: undefined,
field21: undefined,
field22: 0,
@@ -106,11 +106,11 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
if (message.mediaInfo !== undefined) {
MediaInfo.encode(message.mediaInfo, writer.uint32(10).fork()).join();
}
for (const v of message.formatIds) {
for (const v of message.selectedFormats) {
FormatId.encode(v!, writer.uint32(18).fork()).join();
}
for (const v of message.ud) {
Zpa.encode(v!, writer.uint32(26).fork()).join();
for (const v of message.bufferedRange) {
BufferedRange.encode(v!, writer.uint32(26).fork()).join();
}
if (message.videoPlaybackUstreamerConfig !== undefined && message.videoPlaybackUstreamerConfig.length !== 0) {
writer.uint32(42).bytes(message.videoPlaybackUstreamerConfig);
@@ -118,10 +118,10 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
if (message.lo !== undefined) {
Lo.encode(message.lo, writer.uint32(50).fork()).join();
}
for (const v of message.audioFormatIds) {
for (const v of message.audioFormats) {
FormatId.encode(v!, writer.uint32(130).fork()).join();
}
for (const v of message.videoFormatIds) {
for (const v of message.videoFormats) {
FormatId.encode(v!, writer.uint32(138).fork()).join();
}
if (message.streamerContext !== undefined) {
@@ -161,14 +161,14 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
break;
}
message.formatIds.push(FormatId.decode(reader, reader.uint32()));
message.selectedFormats.push(FormatId.decode(reader, reader.uint32()));
continue;
case 3:
if (tag !== 26) {
break;
}
message.ud.push(Zpa.decode(reader, reader.uint32()));
message.bufferedRange.push(BufferedRange.decode(reader, reader.uint32()));
continue;
case 5:
if (tag !== 42) {
@@ -189,14 +189,14 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
break;
}
message.audioFormatIds.push(FormatId.decode(reader, reader.uint32()));
message.audioFormats.push(FormatId.decode(reader, reader.uint32()));
continue;
case 17:
if (tag !== 138) {
break;
}
message.videoFormatIds.push(FormatId.decode(reader, reader.uint32()));
message.videoFormats.push(FormatId.decode(reader, reader.uint32()));
continue;
case 19:
if (tag !== 154) {
@@ -245,19 +245,21 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
fromJSON(object: any): VideoPlaybackAbrRequest {
return {
mediaInfo: isSet(object.mediaInfo) ? MediaInfo.fromJSON(object.mediaInfo) : undefined,
formatIds: globalThis.Array.isArray(object?.formatIds)
? object.formatIds.map((e: any) => FormatId.fromJSON(e))
selectedFormats: globalThis.Array.isArray(object?.selectedFormats)
? object.selectedFormats.map((e: any) => FormatId.fromJSON(e))
: [],
bufferedRange: globalThis.Array.isArray(object?.bufferedRange)
? object.bufferedRange.map((e: any) => BufferedRange.fromJSON(e))
: [],
ud: globalThis.Array.isArray(object?.ud) ? object.ud.map((e: any) => Zpa.fromJSON(e)) : [],
videoPlaybackUstreamerConfig: isSet(object.videoPlaybackUstreamerConfig)
? bytesFromBase64(object.videoPlaybackUstreamerConfig)
: new Uint8Array(0),
lo: isSet(object.lo) ? Lo.fromJSON(object.lo) : undefined,
audioFormatIds: globalThis.Array.isArray(object?.audioFormatIds)
? object.audioFormatIds.map((e: any) => FormatId.fromJSON(e))
audioFormats: globalThis.Array.isArray(object?.audioFormats)
? object.audioFormats.map((e: any) => FormatId.fromJSON(e))
: [],
videoFormatIds: globalThis.Array.isArray(object?.videoFormatIds)
? object.videoFormatIds.map((e: any) => FormatId.fromJSON(e))
videoFormats: globalThis.Array.isArray(object?.videoFormats)
? object.videoFormats.map((e: any) => FormatId.fromJSON(e))
: [],
streamerContext: isSet(object.streamerContext) ? StreamerContext.fromJSON(object.streamerContext) : undefined,
field21: isSet(object.field21) ? OQa.fromJSON(object.field21) : undefined,
@@ -272,11 +274,11 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
if (message.mediaInfo !== undefined) {
obj.mediaInfo = MediaInfo.toJSON(message.mediaInfo);
}
if (message.formatIds?.length) {
obj.formatIds = message.formatIds.map((e) => FormatId.toJSON(e));
if (message.selectedFormats?.length) {
obj.selectedFormats = message.selectedFormats.map((e) => FormatId.toJSON(e));
}
if (message.ud?.length) {
obj.ud = message.ud.map((e) => Zpa.toJSON(e));
if (message.bufferedRange?.length) {
obj.bufferedRange = message.bufferedRange.map((e) => BufferedRange.toJSON(e));
}
if (message.videoPlaybackUstreamerConfig !== undefined && message.videoPlaybackUstreamerConfig.length !== 0) {
obj.videoPlaybackUstreamerConfig = base64FromBytes(message.videoPlaybackUstreamerConfig);
@@ -284,11 +286,11 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
if (message.lo !== undefined) {
obj.lo = Lo.toJSON(message.lo);
}
if (message.audioFormatIds?.length) {
obj.audioFormatIds = message.audioFormatIds.map((e) => FormatId.toJSON(e));
if (message.audioFormats?.length) {
obj.audioFormats = message.audioFormats.map((e) => FormatId.toJSON(e));
}
if (message.videoFormatIds?.length) {
obj.videoFormatIds = message.videoFormatIds.map((e) => FormatId.toJSON(e));
if (message.videoFormats?.length) {
obj.videoFormats = message.videoFormats.map((e) => FormatId.toJSON(e));
}
if (message.streamerContext !== undefined) {
obj.streamerContext = StreamerContext.toJSON(message.streamerContext);
@@ -316,12 +318,12 @@ export const VideoPlaybackAbrRequest: MessageFns<VideoPlaybackAbrRequest> = {
message.mediaInfo = (object.mediaInfo !== undefined && object.mediaInfo !== null)
? MediaInfo.fromPartial(object.mediaInfo)
: undefined;
message.formatIds = object.formatIds?.map((e) => FormatId.fromPartial(e)) || [];
message.ud = object.ud?.map((e) => Zpa.fromPartial(e)) || [];
message.selectedFormats = object.selectedFormats?.map((e) => FormatId.fromPartial(e)) || [];
message.bufferedRange = object.bufferedRange?.map((e) => BufferedRange.fromPartial(e)) || [];
message.videoPlaybackUstreamerConfig = object.videoPlaybackUstreamerConfig ?? new Uint8Array(0);
message.lo = (object.lo !== undefined && object.lo !== null) ? Lo.fromPartial(object.lo) : undefined;
message.audioFormatIds = object.audioFormatIds?.map((e) => FormatId.fromPartial(e)) || [];
message.videoFormatIds = object.videoFormatIds?.map((e) => FormatId.fromPartial(e)) || [];
message.audioFormats = object.audioFormats?.map((e) => FormatId.fromPartial(e)) || [];
message.videoFormats = object.videoFormats?.map((e) => FormatId.fromPartial(e)) || [];
message.streamerContext = (object.streamerContext !== undefined && object.streamerContext !== null)
? StreamerContext.fromPartial(object.streamerContext)
: undefined;
@@ -767,13 +769,13 @@ export const YPa: MessageFns<YPa> = {
},
};
function createBaseZpa(): Zpa {
function createBaseBufferedRange(): BufferedRange {
return {
formatId: undefined,
startTimeMs: 0,
durationMs: 0,
field4: 0,
sequenceNumber: 0,
startSegmentIndex: 0,
endSegmentIndex: 0,
timeRange: undefined,
field9: undefined,
field11: undefined,
@@ -781,8 +783,8 @@ function createBaseZpa(): Zpa {
};
}
export const Zpa: MessageFns<Zpa> = {
encode(message: Zpa, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
export const BufferedRange: MessageFns<BufferedRange> = {
encode(message: BufferedRange, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.formatId !== undefined) {
FormatId.encode(message.formatId, writer.uint32(10).fork()).join();
}
@@ -792,11 +794,11 @@ export const Zpa: MessageFns<Zpa> = {
if (message.durationMs !== 0) {
writer.uint32(24).int64(message.durationMs);
}
if (message.field4 !== 0) {
writer.uint32(32).int32(message.field4);
if (message.startSegmentIndex !== 0) {
writer.uint32(32).int32(message.startSegmentIndex);
}
if (message.sequenceNumber !== 0) {
writer.uint32(40).int32(message.sequenceNumber);
if (message.endSegmentIndex !== 0) {
writer.uint32(40).int32(message.endSegmentIndex);
}
if (message.timeRange !== undefined) {
TimeRange.encode(message.timeRange, writer.uint32(50).fork()).join();
@@ -813,10 +815,10 @@ export const Zpa: MessageFns<Zpa> = {
return writer;
},
decode(input: BinaryReader | Uint8Array, length?: number): Zpa {
decode(input: BinaryReader | Uint8Array, length?: number): BufferedRange {
const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseZpa();
const message = createBaseBufferedRange();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
@@ -846,14 +848,14 @@ export const Zpa: MessageFns<Zpa> = {
break;
}
message.field4 = reader.int32();
message.startSegmentIndex = reader.int32();
continue;
case 5:
if (tag !== 40) {
break;
}
message.sequenceNumber = reader.int32();
message.endSegmentIndex = reader.int32();
continue;
case 6:
if (tag !== 50) {
@@ -892,13 +894,13 @@ export const Zpa: MessageFns<Zpa> = {
return message;
},
fromJSON(object: any): Zpa {
fromJSON(object: any): BufferedRange {
return {
formatId: isSet(object.formatId) ? FormatId.fromJSON(object.formatId) : undefined,
startTimeMs: isSet(object.startTimeMs) ? globalThis.Number(object.startTimeMs) : 0,
durationMs: isSet(object.durationMs) ? globalThis.Number(object.durationMs) : 0,
field4: isSet(object.field4) ? globalThis.Number(object.field4) : 0,
sequenceNumber: isSet(object.sequenceNumber) ? globalThis.Number(object.sequenceNumber) : 0,
startSegmentIndex: isSet(object.startSegmentIndex) ? globalThis.Number(object.startSegmentIndex) : 0,
endSegmentIndex: isSet(object.endSegmentIndex) ? globalThis.Number(object.endSegmentIndex) : 0,
timeRange: isSet(object.timeRange) ? TimeRange.fromJSON(object.timeRange) : undefined,
field9: isSet(object.field9) ? Kob.fromJSON(object.field9) : undefined,
field11: isSet(object.field11) ? YPa.fromJSON(object.field11) : undefined,
@@ -906,7 +908,7 @@ export const Zpa: MessageFns<Zpa> = {
};
},
toJSON(message: Zpa): unknown {
toJSON(message: BufferedRange): unknown {
const obj: any = {};
if (message.formatId !== undefined) {
obj.formatId = FormatId.toJSON(message.formatId);
@@ -917,11 +919,11 @@ export const Zpa: MessageFns<Zpa> = {
if (message.durationMs !== 0) {
obj.durationMs = Math.round(message.durationMs);
}
if (message.field4 !== 0) {
obj.field4 = Math.round(message.field4);
if (message.startSegmentIndex !== 0) {
obj.startSegmentIndex = Math.round(message.startSegmentIndex);
}
if (message.sequenceNumber !== 0) {
obj.sequenceNumber = Math.round(message.sequenceNumber);
if (message.endSegmentIndex !== 0) {
obj.endSegmentIndex = Math.round(message.endSegmentIndex);
}
if (message.timeRange !== undefined) {
obj.timeRange = TimeRange.toJSON(message.timeRange);
@@ -938,18 +940,18 @@ export const Zpa: MessageFns<Zpa> = {
return obj;
},
create<I extends Exact<DeepPartial<Zpa>, I>>(base?: I): Zpa {
return Zpa.fromPartial(base ?? ({} as any));
create<I extends Exact<DeepPartial<BufferedRange>, I>>(base?: I): BufferedRange {
return BufferedRange.fromPartial(base ?? ({} as any));
},
fromPartial<I extends Exact<DeepPartial<Zpa>, I>>(object: I): Zpa {
const message = createBaseZpa();
fromPartial<I extends Exact<DeepPartial<BufferedRange>, I>>(object: I): BufferedRange {
const message = createBaseBufferedRange();
message.formatId = (object.formatId !== undefined && object.formatId !== null)
? FormatId.fromPartial(object.formatId)
: undefined;
message.startTimeMs = object.startTimeMs ?? 0;
message.durationMs = object.durationMs ?? 0;
message.field4 = object.field4 ?? 0;
message.sequenceNumber = object.sequenceNumber ?? 0;
message.startSegmentIndex = object.startSegmentIndex ?? 0;
message.endSegmentIndex = object.endSegmentIndex ?? 0;
message.timeRange = (object.timeRange !== undefined && object.timeRange !== null)
? TimeRange.fromPartial(object.timeRange)
: undefined;
@@ -1101,16 +1103,16 @@ export const OQa: MessageFns<OQa> = {
};
function createBasePqa(): Pqa {
return { formatIds: [], ud: [], clipId: "" };
return { formats: [], ud: [], clipId: "" };
}
export const Pqa: MessageFns<Pqa> = {
encode(message: Pqa, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
for (const v of message.formatIds) {
for (const v of message.formats) {
FormatId.encode(v!, writer.uint32(10).fork()).join();
}
for (const v of message.ud) {
Zpa.encode(v!, writer.uint32(18).fork()).join();
BufferedRange.encode(v!, writer.uint32(18).fork()).join();
}
if (message.clipId !== undefined && message.clipId !== "") {
writer.uint32(26).string(message.clipId);
@@ -1130,14 +1132,14 @@ export const Pqa: MessageFns<Pqa> = {
break;
}
message.formatIds.push(FormatId.decode(reader, reader.uint32()));
message.formats.push(FormatId.decode(reader, reader.uint32()));
continue;
case 2:
if (tag !== 18) {
break;
}
message.ud.push(Zpa.decode(reader, reader.uint32()));
message.ud.push(BufferedRange.decode(reader, reader.uint32()));
continue;
case 3:
if (tag !== 26) {
@@ -1157,21 +1159,19 @@ export const Pqa: MessageFns<Pqa> = {
fromJSON(object: any): Pqa {
return {
formatIds: globalThis.Array.isArray(object?.formatIds)
? object.formatIds.map((e: any) => FormatId.fromJSON(e))
: [],
ud: globalThis.Array.isArray(object?.ud) ? object.ud.map((e: any) => Zpa.fromJSON(e)) : [],
formats: globalThis.Array.isArray(object?.formats) ? object.formats.map((e: any) => FormatId.fromJSON(e)) : [],
ud: globalThis.Array.isArray(object?.ud) ? object.ud.map((e: any) => BufferedRange.fromJSON(e)) : [],
clipId: isSet(object.clipId) ? globalThis.String(object.clipId) : "",
};
},
toJSON(message: Pqa): unknown {
const obj: any = {};
if (message.formatIds?.length) {
obj.formatIds = message.formatIds.map((e) => FormatId.toJSON(e));
if (message.formats?.length) {
obj.formats = message.formats.map((e) => FormatId.toJSON(e));
}
if (message.ud?.length) {
obj.ud = message.ud.map((e) => Zpa.toJSON(e));
obj.ud = message.ud.map((e) => BufferedRange.toJSON(e));
}
if (message.clipId !== undefined && message.clipId !== "") {
obj.clipId = message.clipId;
@@ -1184,8 +1184,8 @@ export const Pqa: MessageFns<Pqa> = {
},
fromPartial<I extends Exact<DeepPartial<Pqa>, I>>(object: I): Pqa {
const message = createBasePqa();
message.formatIds = object.formatIds?.map((e) => FormatId.fromPartial(e)) || [];
message.ud = object.ud?.map((e) => Zpa.fromPartial(e)) || [];
message.formats = object.formats?.map((e) => FormatId.fromPartial(e)) || [];
message.ud = object.ud?.map((e) => BufferedRange.fromPartial(e)) || [];
message.clipId = object.clipId ?? "";
return message;
},

View File

@@ -10,34 +10,35 @@ message MediaInfo {
optional int32 detailed_network_type = 17;
optional int32 max_width = 18;
optional int32 max_height = 19;
optional int32 iea = 21;
optional int32 selected_quality_height = 21;
optional int32 r7 = 23;
optional int64 start_time_ms = 28;
optional int64 time_since_last_seek = 29;
optional int32 visibility = 34;
optional int64 d8 = 36;
optional int64 time_since_last_req = 36;
optional MediaCapabilities media_capabilities = 38;
optional int32 lact = 39;
optional int64 time_since_last_action = 39;
// optional int32 Gw = 40;
optional MediaType media_type = 40;
optional int32 player_state = 44;
optional bool a8 = 46;
optional int64 player_state = 44;
optional bool range_compression = 46;
optional int32 Jda = 48;
optional int32 qw = 50;
optional int32 Ky = 51;
optional int32 Eq = 54;
optional int32 sabr_report_request_cancellation_info = 54;
optional bool l = 56;
optional int32 G7 = 57;
optional bool No = 58;
optional int64 G7 = 57;
optional bool prefer_vp9 = 58;
optional int32 qj = 59;
optional int32 Hx = 60;
optional bool is_prefetch = 61;
optional int32 Iz = 62;
optional int32 sabr_support_quality_constraints = 62;
optional bytes sabr_license_constraint = 63;
optional int32 allow_proxima_live_latency = 64;
optional int32 sabr_force_proxima = 66;
optional int32 Tqb = 67;
optional int64 sabr_force_max_network_interruption_duration_ms = 68;
optional float playback_rate = 285;
enum MediaType {
MEDIA_TYPE_DEFAULT = 0;

View File

@@ -8,12 +8,12 @@ import "video_streaming/streamer_context.proto";
message VideoPlaybackAbrRequest {
optional MediaInfo media_info = 1;
repeated .misc.FormatId format_ids = 2;
repeated Zpa ud = 3;
repeated .misc.FormatId selected_formats = 2;
repeated BufferedRange buffered_range = 3;
optional bytes video_playback_ustreamer_config = 5;
optional Lo lo = 6;
repeated .misc.FormatId audio_format_ids = 16;
repeated .misc.FormatId video_format_ids = 17;
repeated .misc.FormatId audio_formats = 16;
repeated .misc.FormatId video_formats = 17;
optional StreamerContext streamer_context = 19;
optional OQa field21 = 21;
optional int32 field22 = 22;
@@ -48,12 +48,12 @@ message YPa {
optional int32 field3 = 3;
}
message Zpa {
message BufferedRange {
required .misc.FormatId format_id = 1;
required int64 start_time_ms = 2;
required int64 duration_ms = 3;
required int32 field4 = 4;
required int32 sequence_number = 5;
required int32 start_segment_index = 4;
required int32 end_segment_index = 5;
optional TimeRange time_range = 6;
optional Kob field9 = 9;
optional YPa field11 = 11;
@@ -70,7 +70,7 @@ message OQa {
}
message Pqa {
repeated .misc.FormatId format_ids = 1;
repeated Zpa ud = 2;
repeated .misc.FormatId formats = 1;
repeated BufferedRange ud = 2;
optional string clip_id = 3;
}

View File

@@ -66,7 +66,7 @@ export class ServerAbrStream extends EventEmitterLike {
lastManualDirection: 0,
timeSinceLastManualFormatSelectionMs: 0,
quality: videoFormats.length === 1 ? firstVideoFormat?.width : DEFAULT_QUALITY,
iea: videoFormats.length === 1 ? firstVideoFormat?.width : DEFAULT_QUALITY,
selectedQualityHeight: videoFormats.length === 1 ? firstVideoFormat?.width : DEFAULT_QUALITY,
startTimeMs: 0,
visibility: 0,
mediaType: MediaInfo_MediaType.MEDIA_TYPE_DEFAULT,
@@ -126,9 +126,9 @@ export class ServerAbrStream extends EventEmitterLike {
const body = VideoPlaybackAbrRequest.encode({
mediaInfo: mediaInfo,
formatIds: this.initializedFormats.map((fmt) => fmt.formatId),
audioFormatIds: audioFormatIds,
videoFormatIds: videoFormatIds,
audioFormats: audioFormatIds,
videoFormats: videoFormatIds,
selectedFormats: this.initializedFormats.map((fmt) => fmt.formatId),
videoPlaybackUstreamerConfig: base64ToU8(this.videoPlaybackUstreamerConfig),
streamerContext: {
field5: [],
@@ -142,7 +142,7 @@ export class ServerAbrStream extends EventEmitterLike {
osVersion: '10.0'
}
},
ud: this.initializedFormats.map((fmt) => fmt._state),
bufferedRange: this.initializedFormats.map((fmt) => fmt._state),
field1000: []
}).finish();
@@ -233,8 +233,8 @@ export class ServerAbrStream extends EventEmitterLike {
formatId: mediaHeader.formatId,
startTimeMs: 0,
durationMs: 0,
field4: 1,
sequenceNumber: 0
startSegmentIndex: 1,
endSegmentIndex: 0
}
});
@@ -269,7 +269,7 @@ export class ServerAbrStream extends EventEmitterLike {
if (typeof mediaHeader.sequenceNumber === 'number') {
currentFormat._state.durationMs += mediaHeader.durationMs || 0;
currentFormat._state.sequenceNumber += 1;
currentFormat._state.endSegmentIndex += 1;
}
}
}
@@ -316,8 +316,8 @@ export class ServerAbrStream extends EventEmitterLike {
formatId: formatInitializationMetadata.formatId,
startTimeMs: 0,
durationMs: 0,
field4: 1,
sequenceNumber: 0
startSegmentIndex: 1,
endSegmentIndex: 0
}
});

View File

@@ -3,7 +3,7 @@ import type { SabrError } from '../../protos/generated/video_streaming/sabr_erro
import type { SabrRedirect } from '../../protos/generated/video_streaming/sabr_redirect.js';
import type { StreamProtectionStatus } from '../../protos/generated/video_streaming/stream_protection_status.js';
import type { TimeRange } from '../../protos/generated/video_streaming/time_range.js';
import type { Zpa } from '../../protos/generated/video_streaming/video_playback_abr_request.js';
import type { BufferedRange } from '../../protos/generated/video_streaming/video_playback_abr_request.js';
import type { MediaInfo } from '../../protos/generated/video_streaming/media_info.js';
import type { ChunkedDataBuffer } from '../core/index.js';
@@ -48,7 +48,7 @@ export type InitializedFormat = {
sequenceCount?: number;
sequenceList: Sequence[];
mediaChunks: Uint8Array[];
_state: Zpa;
_state: BufferedRange;
}
export type InitOptions = {