33d6f34d8a
Background-job transcode (ffmpeg/libopus) after source store; pure C# Ogg walker builds the 0.5s-bucketed granule→byte seek index + captures the OpusHead/OpusTags setup header into a per-track sidecar in a new track-opus vault. Best-effort, additive, regenerated on replace-audio.
19 lines
926 B
C#
19 lines
926 B
C#
namespace DeepDrftAPI.Services.Opus;
|
|
|
|
/// <summary>
|
|
/// The enqueue seam for the background Opus transcode (OQ6 / §3.1a). <see cref="UnifiedTrackService"/>
|
|
/// depends only on this thin interface — not on the worker — so adding the background derive to the
|
|
/// upload/replace paths costs one small dependency, not the whole transcode graph. Enqueuing is
|
|
/// non-blocking and best-effort: a freshly uploaded track is already persisted and playable losslessly
|
|
/// before anything is enqueued, and the transcode runs off the request thread.
|
|
/// </summary>
|
|
public interface IOpusTranscodeQueue
|
|
{
|
|
/// <summary>
|
|
/// Schedules a background Opus derive for the track identified by <paramref name="entryKey"/>. Returns
|
|
/// immediately. A dropped or failed enqueue must not affect the caller — the track remains
|
|
/// lossless-only and eligible for backfill.
|
|
/// </summary>
|
|
void Enqueue(string entryKey);
|
|
}
|