Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,390 changes: 695 additions & 695 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@ioai/rosview",
"version": "1.7.3",
"version": "1.7.4",
"description": "High-performance robotics data visualization for MCAP, ROS bag, ROS2 db3, HDF5 and BVH — embeddable React component and standalone SPA",
"keywords": [
"ros",
Expand Down
4 changes: 3 additions & 1 deletion src/core/players/IterablePlayer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1016,6 +1016,9 @@ export class IterablePlayer implements Player {
if (!this._isPlaybackEpochCurrent(loopEpoch)) {
return;
}
// Match seek: notify rewind first so H264 panels can reset/wait for IDR
// before backfill or live frames arrive after configure().
this._notifyTimeSubscribers(this._currentTime);
const topics = this._currentTopics();
if (topics.length > 0) {
const messages = await this._source.getBackfillMessages({ time: this._currentTime, topics });
Expand All @@ -1024,7 +1027,6 @@ export class IterablePlayer implements Player {
}
this._distributeMessages(messages, this._currentTime);
}
this._notifyTimeSubscribers(this._currentTime);
this._emitState();
this._scheduleNextTick();
return;
Expand Down
7 changes: 4 additions & 3 deletions src/features/panels/Image/core/ImageRender.worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -789,9 +789,10 @@ class ImageRenderWorkerRuntime {
#resetH264RuntimeState(): void {
this.#h264Pressure = initialH264PressureState();
this.#h264DecodeMs = 0;
this.#h264WaitingForIdr = false;
this.#h264ConfigBeforeIdr = [];
this.#h264RecentConfig = [];
// After close()/configure(), WebCodecs requires the next VCL chunk to be an
// IDR. Keep recent SPS/PPS so a bare IDR can still reconfigure the decoder.
this.#h264WaitingForIdr = true;
this.#h264ConfigBeforeIdr = [...this.#h264RecentConfig];
this.#h264NeedsResync = false;
this.#lastH264RenderAt = -Infinity;
this.#lastH264BitmapAt = -Infinity;
Expand Down
2 changes: 1 addition & 1 deletion src/infra/sources/McapIndexedIterableSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ export class McapIndexedIterableSource implements IIterableSource {
this._start = fromNano(startTime ?? 0n);
this._end = fromNano(endTime ?? 0n);

console.log("McapIndexedIterableSource: initialized", {
console.debug("McapIndexedIterableSource: initialized", {
topicCount: topics.length,
startTime: this._start,
endTime: this._end
Expand Down
4 changes: 2 additions & 2 deletions src/infra/workers/WorkerSerializedSource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ export class WorkerSerializedSource implements ISourceHandle {
}

async initialize(args: Record<string, unknown>): Promise<Initialization> {
console.log("WorkerSerializedSource: calling initialize");
console.debug("WorkerSerializedSource: calling initialize");
try {
// Ensure all objects passed to Comlink are plain objects
const sanitizedArgs: Record<string, unknown> = {};
Expand All @@ -86,7 +86,7 @@ export class WorkerSerializedSource implements ISourceHandle {
const result = await this._raceWorkerFailure(
this._wrapAbortableInitialize(this._remote.initialize(sanitizedArgs)),
);
console.log("WorkerSerializedSource: initialize result received");
console.debug("WorkerSerializedSource: initialize result received");
return result;
} catch (e) {
console.error("WorkerSerializedSource: initialize failed", e);
Expand Down
2 changes: 1 addition & 1 deletion src/infra/workers/mcap.worker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ class McapWorkerImpl implements IWorkerSerializedSourceWorker {
enabled: args.workerPerf === true,
label: "mcap",
});
console.log("McapWorker: initialize starting", args);
console.debug("McapWorker: initialize starting", args);
try {
let rawReadable: IReadable;
const url = typeof args.url === 'string' ? args.url : undefined;
Expand Down
Loading