diff --git a/.github/workflows/test-liquidsoap.yml b/.github/workflows/test-liquidsoap.yml index 04e2188..b24dc50 100644 --- a/.github/workflows/test-liquidsoap.yml +++ b/.github/workflows/test-liquidsoap.yml @@ -27,7 +27,7 @@ jobs: name: liquidsoap syntax (transcoder stereo) runs-on: ubuntu-latest container: - image: savonet/liquidsoap:v2.2.5@sha256:2b3ab71509dc48f47f0f99b98316090081eeaf37bea3c96a3edaa4a55ec57f41 + image: savonet/liquidsoap:rolling-release-v2.3.x # TODO: Fix version after release/merge. options: --user root steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 @@ -37,7 +37,7 @@ jobs: name: liquidsoap syntax (transcoder surround) runs-on: ubuntu-latest container: - image: savonet/liquidsoap:v2.2.5@sha256:2b3ab71509dc48f47f0f99b98316090081eeaf37bea3c96a3edaa4a55ec57f41 + image: savonet/liquidsoap:rolling-release-v2.3.x options: --user root steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 @@ -47,7 +47,7 @@ jobs: name: liquidsoap syntax (streamer stereo) runs-on: ubuntu-latest container: - image: savonet/liquidsoap:v2.2.5@sha256:2b3ab71509dc48f47f0f99b98316090081eeaf37bea3c96a3edaa4a55ec57f41 + image: savonet/liquidsoap:rolling-release-v2.3.x options: --user root steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 @@ -57,7 +57,7 @@ jobs: name: liquidsoap syntax (streamer surround) runs-on: ubuntu-latest container: - image: savonet/liquidsoap:v2.2.5@sha256:2b3ab71509dc48f47f0f99b98316090081eeaf37bea3c96a3edaa4a55ec57f41 + image: savonet/liquidsoap:rolling-release-v2.3.x options: --user root steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 diff --git a/docker-compose.yml b/docker-compose.yml index 1c08247..8e9171b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,7 +11,7 @@ services: - /conf/myradio.liq - /scripts/transcoder/00-live.liq container_name: liquidsoap-myradio - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default restart: unless-stopped @@ -36,7 +36,7 @@ services: - /conf/myradiosurround.liq - /scripts/transcoder/00-live.liq container_name: liquidsoap-myradiosurround - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default restart: unless-stopped @@ -76,7 +76,7 @@ services: - "srt://liquidsoap-myradio:10000" # voieA_caller1 container_name: source-voieA-caller1 entrypoint: [] - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default restart: unless-stopped @@ -97,7 +97,7 @@ services: - "srt://liquidsoap-myradio:10002" # voieB_caller1 container_name: source-voieB-caller1 entrypoint: [] - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default restart: unless-stopped @@ -118,7 +118,7 @@ services: - "srt://liquidsoap-myradio:10004" # override_caller1 container_name: source-override-caller1 entrypoint: [] - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default restart: unless-stopped @@ -130,7 +130,7 @@ services: - /conf/mystreamersurround.liq - /scripts/streamer/00-live.liq container_name: source-mystreamersurround - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default restart: unless-stopped @@ -158,7 +158,7 @@ services: - "srt://liquidsoap-myradiosurround:10012" # voieB_caller1 container_name: source-ffmpegsurround entrypoint: [] - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default restart: unless-stopped @@ -299,7 +299,7 @@ services: - /conf/myradio.liq - /scripts/transcoder/00-live.liq container_name: liquidsoap-test-transcoder-stereo - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default volumes: @@ -312,7 +312,7 @@ services: - /conf/myradiosurround.liq - /scripts/transcoder/00-live.liq container_name: liquidsoap-test-transcoder-surround - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default volumes: @@ -325,7 +325,7 @@ services: - /conf/mystreamer.liq - /scripts/streamer/00-live.liq container_name: liquidsoap-test-streamer-stereo - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default volumes: @@ -338,7 +338,7 @@ services: - /conf/mystreamersurround.liq - /scripts/streamer/00-live.liq container_name: liquidsoap-test-streamer-surround - image: savonet/liquidsoap:v2.2.5 + image: savonet/liquidsoap:rolling-release-v2.3.x networks: - default volumes: diff --git a/scripts/transcoder/00-live.liq b/scripts/transcoder/00-live.liq index ab78d0b..644b2ff 100755 --- a/scripts/transcoder/00-live.liq +++ b/scripts/transcoder/00-live.liq @@ -49,13 +49,7 @@ live = ) def mk_fallback_source(result, s) = - if - s.is_autofallback - then - [...result, (s.source : source(audio=pcm))] - else - result - end + if s.is_autofallback then [...result, s.source] else result end end radio_prod = @@ -63,10 +57,10 @@ radio_prod = id="fallback_prod", track_sensitive=false, [ - (live : source(audio=pcm)), + live, ...list.fold(mk_fallback_source, [], input_sources), - (safe_blank : source(audio=pcm)) + safe_blank ] ) diff --git a/scripts/transcoder/60-core.liq b/scripts/transcoder/60-core.liq index 174fff0..9bc2ed9 100644 --- a/scripts/transcoder/60-core.liq +++ b/scripts/transcoder/60-core.liq @@ -11,8 +11,7 @@ def source_tag(s, tag) = end def mk_source(s) = - srt_input = - input.srt(id=(s.name : string), max=3.0, clock_safe=true, port=s.port) + srt_input = input.srt(id=(s.name : string), max=3.0, port=s.port) # Create the several latency time series for this input latency_metrics_create(label_values=[radio_name, "input", s.name], srt_input) diff --git a/scripts/transcoder/outputs/hls.liq b/scripts/transcoder/outputs/hls.liq index b992575..e51fce0 100644 --- a/scripts/transcoder/outputs/hls.liq +++ b/scripts/transcoder/outputs/hls.liq @@ -45,13 +45,14 @@ end ## HLS segments -def segment_name(~position, ~extname=_, stream_name) = +def segment_name(metadata) = + let {position, duration, extname, stream_name} = metadata + segment_duration = int_of_float(duration) segment_timestamp = int_of_float(time()) - duration = int_of_float(4.0) # Add the codec to the segment name because it's expected by segment-forwarder segment_prefix = string.replace(pattern="_", fun (_) -> "_aac_", stream_name) - "#{segment_prefix}_#{duration}_#{position}_#{segment_timestamp}.ts" + "#{segment_prefix}_#{segment_duration}_#{position}_#{segment_timestamp}.ts" end def on_file_change(~state, fname) =