@camstack/addon-decoder-ffmpeg 1.1.7 → 1.1.9

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.
package/dist/index.js CHANGED
@@ -16708,7 +16708,15 @@ var FrameworkPackageStatusSchema = object({
16708
16708
  latestVersion: string().nullable(),
16709
16709
  hasUpdate: boolean(),
16710
16710
  /** Optional manifest description for the row tooltip. */
16711
- description: string().optional()
16711
+ description: string().optional(),
16712
+ /**
16713
+ * Content build-id (md5 of the resolved `dist/` tree) of the code the hub
16714
+ * ACTUALLY loaded. Framework packages ship code changes without always
16715
+ * bumping `currentVersion`, so semver alone hides "same version, new code".
16716
+ * `null` when the dist can't be hashed (not installed / empty). The admin-UI
16717
+ * surfaces this so a stale-code hub is visible even at an unchanged version.
16718
+ */
16719
+ buildId: string().nullable()
16712
16720
  });
16713
16721
  var LogStreamEntrySchema = object({
16714
16722
  timestamp: string(),
@@ -25916,15 +25924,19 @@ var DecoderFfmpegAddon = class extends BaseAddon {
25916
25924
  this.sessionMeta.set(sessionId, {
25917
25925
  codec: config.codec,
25918
25926
  outputFormat: config.outputFormat,
25919
- createdAtMs: Date.now()
25927
+ createdAtMs: Date.now(),
25928
+ deviceId: config.deviceId
25929
+ });
25930
+ this.ctx.logger.info("ffmpeg: created session", {
25931
+ tags: typeof config.deviceId === "number" ? { deviceId: config.deviceId } : void 0,
25932
+ meta: {
25933
+ sessionId,
25934
+ codec: config.codec,
25935
+ hwaccelChain,
25936
+ frameSink,
25937
+ nodeId
25938
+ }
25920
25939
  });
25921
- this.ctx.logger.info("ffmpeg: created session", { meta: {
25922
- sessionId,
25923
- codec: config.codec,
25924
- hwaccelChain,
25925
- frameSink,
25926
- nodeId
25927
- } });
25928
25940
  return {
25929
25941
  sessionId,
25930
25942
  nodeId
@@ -25963,13 +25975,17 @@ var DecoderFfmpegAddon = class extends BaseAddon {
25963
25975
  if (unsub) unsub();
25964
25976
  this.frameBuffers.get(sessionId)?.cancel();
25965
25977
  this.handleBuffers.get(sessionId)?.cancel();
25978
+ const deviceId = this.sessionMeta.get(sessionId)?.deviceId;
25966
25979
  await session.destroy();
25967
25980
  this.sessions.delete(sessionId);
25968
25981
  this.frameBuffers.delete(sessionId);
25969
25982
  this.handleBuffers.delete(sessionId);
25970
25983
  this.unsubscribers.delete(sessionId);
25971
25984
  this.sessionMeta.delete(sessionId);
25972
- this.ctx.logger.info("ffmpeg: destroyed session", { meta: { sessionId } });
25985
+ this.ctx.logger.info("ffmpeg: destroyed session", {
25986
+ tags: typeof deviceId === "number" ? { deviceId } : void 0,
25987
+ meta: { sessionId }
25988
+ });
25973
25989
  }
25974
25990
  async listActiveSessions() {
25975
25991
  const out = [];
package/dist/index.mjs CHANGED
@@ -16704,7 +16704,15 @@ var FrameworkPackageStatusSchema = object({
16704
16704
  latestVersion: string().nullable(),
16705
16705
  hasUpdate: boolean(),
16706
16706
  /** Optional manifest description for the row tooltip. */
16707
- description: string().optional()
16707
+ description: string().optional(),
16708
+ /**
16709
+ * Content build-id (md5 of the resolved `dist/` tree) of the code the hub
16710
+ * ACTUALLY loaded. Framework packages ship code changes without always
16711
+ * bumping `currentVersion`, so semver alone hides "same version, new code".
16712
+ * `null` when the dist can't be hashed (not installed / empty). The admin-UI
16713
+ * surfaces this so a stale-code hub is visible even at an unchanged version.
16714
+ */
16715
+ buildId: string().nullable()
16708
16716
  });
16709
16717
  var LogStreamEntrySchema = object({
16710
16718
  timestamp: string(),
@@ -25912,15 +25920,19 @@ var DecoderFfmpegAddon = class extends BaseAddon {
25912
25920
  this.sessionMeta.set(sessionId, {
25913
25921
  codec: config.codec,
25914
25922
  outputFormat: config.outputFormat,
25915
- createdAtMs: Date.now()
25923
+ createdAtMs: Date.now(),
25924
+ deviceId: config.deviceId
25925
+ });
25926
+ this.ctx.logger.info("ffmpeg: created session", {
25927
+ tags: typeof config.deviceId === "number" ? { deviceId: config.deviceId } : void 0,
25928
+ meta: {
25929
+ sessionId,
25930
+ codec: config.codec,
25931
+ hwaccelChain,
25932
+ frameSink,
25933
+ nodeId
25934
+ }
25916
25935
  });
25917
- this.ctx.logger.info("ffmpeg: created session", { meta: {
25918
- sessionId,
25919
- codec: config.codec,
25920
- hwaccelChain,
25921
- frameSink,
25922
- nodeId
25923
- } });
25924
25936
  return {
25925
25937
  sessionId,
25926
25938
  nodeId
@@ -25959,13 +25971,17 @@ var DecoderFfmpegAddon = class extends BaseAddon {
25959
25971
  if (unsub) unsub();
25960
25972
  this.frameBuffers.get(sessionId)?.cancel();
25961
25973
  this.handleBuffers.get(sessionId)?.cancel();
25974
+ const deviceId = this.sessionMeta.get(sessionId)?.deviceId;
25962
25975
  await session.destroy();
25963
25976
  this.sessions.delete(sessionId);
25964
25977
  this.frameBuffers.delete(sessionId);
25965
25978
  this.handleBuffers.delete(sessionId);
25966
25979
  this.unsubscribers.delete(sessionId);
25967
25980
  this.sessionMeta.delete(sessionId);
25968
- this.ctx.logger.info("ffmpeg: destroyed session", { meta: { sessionId } });
25981
+ this.ctx.logger.info("ffmpeg: destroyed session", {
25982
+ tags: typeof deviceId === "number" ? { deviceId } : void 0,
25983
+ meta: { sessionId }
25984
+ });
25969
25985
  }
25970
25986
  async listActiveSessions() {
25971
25987
  const out = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-decoder-ffmpeg",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "description": "Standalone ffmpeg-subprocess decoder fallback addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",