fix: fix
This commit is contained in:
parent
16c807b98e
commit
6da8556f13
@ -60,9 +60,14 @@ export class EbmlSegment {
|
|||||||
.filter((c): c is EbmlSeekEntry => !!c);
|
.filter((c): c is EbmlSeekEntry => !!c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
findSeekPositionBySeekId(seekId: Uint8Array): number | undefined {
|
||||||
|
return this.seekEntries.find((c) => isEqual(c.seekId, seekId))
|
||||||
|
?.seekPosition;
|
||||||
|
}
|
||||||
|
|
||||||
findLocalNodeBySeekId(seekId: Uint8Array): EbmlTagType | undefined {
|
findLocalNodeBySeekId(seekId: Uint8Array): EbmlTagType | undefined {
|
||||||
return this.findLocalNodeBySeekPosition(
|
return this.findLocalNodeBySeekPosition(
|
||||||
this.seekEntries.find((c) => isEqual(c.seekId, seekId))?.seekPosition
|
this.findSeekPositionBySeekId(seekId)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import {
|
|||||||
Observable,
|
Observable,
|
||||||
of,
|
of,
|
||||||
reduce,
|
reduce,
|
||||||
|
scan,
|
||||||
share,
|
share,
|
||||||
Subject,
|
Subject,
|
||||||
type Subscription,
|
type Subscription,
|
||||||
@ -156,8 +157,7 @@ export class VideoPipelineDemo extends LitElement {
|
|||||||
s.cuesNode
|
s.cuesNode
|
||||||
? Number.NaN
|
? Number.NaN
|
||||||
: s.dataOffset +
|
: s.dataOffset +
|
||||||
(s.seekEntries.find((e) => e.seekId === SEEK_ID_KAX_CUES)
|
(s.findSeekPositionBySeekId(SEEK_ID_KAX_CUES) ?? Number.NaN)
|
||||||
?.seekPosition ?? Number.NaN)
|
|
||||||
),
|
),
|
||||||
filter((cuesStartOffset) => cuesStartOffset >= 0),
|
filter((cuesStartOffset) => cuesStartOffset >= 0),
|
||||||
switchMap((cuesStartOffset) =>
|
switchMap((cuesStartOffset) =>
|
||||||
@ -172,7 +172,8 @@ export class VideoPipelineDemo extends LitElement {
|
|||||||
map(([cues, withMeta]) => {
|
map(([cues, withMeta]) => {
|
||||||
withMeta.cuesNode = cues;
|
withMeta.cuesNode = cues;
|
||||||
return withMeta;
|
return withMeta;
|
||||||
})
|
}),
|
||||||
|
share()
|
||||||
);
|
);
|
||||||
|
|
||||||
const withLocalCues$ = withMeta$.pipe(filter((s) => !!s.cuesNode));
|
const withLocalCues$ = withMeta$.pipe(filter((s) => !!s.cuesNode));
|
||||||
@ -191,7 +192,22 @@ export class VideoPipelineDemo extends LitElement {
|
|||||||
if (seekTime === 0) {
|
if (seekTime === 0) {
|
||||||
return cluster$;
|
return cluster$;
|
||||||
}
|
}
|
||||||
return cluster$.pipe(filter((c) => c.timestamp >= seekTime));
|
|
||||||
|
return cluster$.pipe(
|
||||||
|
scan(
|
||||||
|
(prev, curr) =>
|
||||||
|
[prev?.[1], curr] as [
|
||||||
|
EbmlCluster | undefined,
|
||||||
|
EbmlCluster | undefined,
|
||||||
|
],
|
||||||
|
[undefined, undefined] as [
|
||||||
|
EbmlCluster | undefined,
|
||||||
|
EbmlCluster | undefined,
|
||||||
|
]
|
||||||
|
),
|
||||||
|
filter((c) => c[1]?.timestamp! >= seekTime),
|
||||||
|
map((c) => c[1]!)
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const seekWithCues = (
|
const seekWithCues = (
|
||||||
|
Loading…
Reference in New Issue
Block a user