unarr/internal/streaming
Deivid Soto c2e9925162 test(streaming): integration tests with real ffmpeg (skipped without it)
Three end-to-end checks that the transcoder actually produces playable
output, not just plausible argv. Skip cleanly on hosts without ffmpeg
on PATH so unit-test CI keeps working.

- TestTranscoder_DirectPlayProducesH264 — synth h264+aac MP4 via
  `ffmpeg -f lavfi testsrc/sine`, run Analyze (expect direct play),
  Stream to disk, ffprobe the result, assert codecs are still h264+aac.
- TestTranscoder_TranscodeHEVCToH264 — synth hevc+ac3 MKV, expect
  transcode decision, Stream to memory, ffprobe-verify the output is
  h264+aac. Skipped if libx265 isn't compiled in.
- TestTranscoder_AnalyzeReportsRealMediaInfo — sanity check that
  Analyze returns a usable mediainfo (320x240, ~2s duration) the API
  handler can show to the player.

Verified locally:
  PASS: TestTranscoder_DirectPlayProducesH264 (0.09s)
  PASS: TestTranscoder_TranscodeHEVCToH264   (0.22s)
  PASS: TestTranscoder_AnalyzeReportsRealMediaInfo (0.06s)
2026-05-06 11:35:52 +02:00
..
ffmpeg_args.go feat(streaming): ffmpeg transcoding pipeline (direct play / fMP4 / HW accel) 2026-05-06 11:34:57 +02:00
hwaccel.go feat(streaming): ffmpeg transcoding pipeline (direct play / fMP4 / HW accel) 2026-05-06 11:34:57 +02:00
integration_test.go test(streaming): integration tests with real ffmpeg (skipped without it) 2026-05-06 11:35:52 +02:00
stream.go feat(streaming): ffmpeg transcoding pipeline (direct play / fMP4 / HW accel) 2026-05-06 11:34:57 +02:00
transcoder.go feat(streaming): ffmpeg transcoding pipeline (direct play / fMP4 / HW accel) 2026-05-06 11:34:57 +02:00
transcoder_test.go feat(streaming): ffmpeg transcoding pipeline (direct play / fMP4 / HW accel) 2026-05-06 11:34:57 +02:00