@torrent-tv/proxy 2.89.10 → 2.89.11

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/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 2.89.11
2
+
3
+ - **Fix**: A failed encoder run says what the source holds again. The line `this run asked for …, and the source holds N video, N audio, N subtitle` was meant to tell an output with no stream (the source's fault) from a track index past the end (ours), but every field failure printed `what the source holds was not recorded`: a session takes its media info from the playback planner's cache, and the planner left the stream counts out of it although it parses the same ffmpeg banner. They are cached with the rest now.
4
+
1
5
  ## 2.89.10
2
6
 
3
7
  - **Fix**: An audio track warm-up that is still being made answers `503` with `warming: true`. That answer means the track and how it is produced are recorded for the viewer; a `503` without it is a preparation that failed and recorded nothing. Until now the two were the same status, so a page restating its soundtrack after a reconnect could not tell whether the proxy had kept it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@torrent-tv/proxy",
3
- "version": "2.89.10",
3
+ "version": "2.89.11",
4
4
  "description": "Torrent proxy client that exposes webseed-like HTTP stream endpoint.",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "repository": {
@@ -16,7 +16,8 @@ import {
16
16
  parseFfmpegBitDepth,
17
17
  parseFfmpegBitrateKbps,
18
18
  parseFfmpegVideoFps,
19
- parseFfmpegHdr
19
+ parseFfmpegHdr,
20
+ parseFfmpegStreamCounts
20
21
  } from "./ffmpeg-banner.js";
21
22
 
22
23
  /** Audio codecs that browsers can decode natively without transcoding. */
@@ -912,7 +913,12 @@ export function createPlaybackPlanner({
912
913
  fps: videoFacts.fps,
913
914
  startTime: parseFfmpegStartTimeSeconds(probe.stderr),
914
915
  isHdr: videoFacts.isHdr,
915
- bitDepth: videoFacts.bitDepth
916
+ bitDepth: videoFacts.bitDepth,
917
+ // What the source holds, from this same banner. A failed run reads it
918
+ // to say whose fault an output with no stream is, and a session takes
919
+ // its media info from this cache without probing again — so a field
920
+ // left out here was "not recorded" on every failure (field 2026-09-29).
921
+ streamCounts: parseFfmpegStreamCounts(probe.stderr)
916
922
  });
917
923
  // Warm the file-body start for the transcode session that follows.
918
924
  // Fire-and-forget: never delays the plan response.