Skip to content
Snippets Groups Projects
Commit 2d8237d5 authored by David Trattnig's avatar David Trattnig
Browse files

Test: Split cases for simple stream and insert

parent dddadf1c
No related branches found
No related tags found
1 merge request!3Liquidsoap 2 migration
#!/usr/bin/env liquidsoap
#
# Aura Engine (https://gitlab.servus.at/aura/engine)
#
# Copyright (C) 2017-now() - The Aura Engine Team.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
%include "base_config.liq"
# Test insert metadata on stream
url = "https://securestream.o94.at/live.mp3"
in_stream = input.http(id="in_stream", start=true, url)
in_stream = insert_metadata(id="in_stream", in_stream)
def on_metadata_notification(metadata) =
print("METADATA: \n#{metadata}")
end
# Save the callback
last_metadata = in_stream.last_metadata
imcb = in_stream.insert_metadata
# Ability to insert and merge with previous metadata
def insert_merged_meta(meta) =
lm = (last_metadata() ?? [])
merged = ref(lm)
def add_meta_entry(entry) =
print("Add entry #{entry}")
let (k, v) = entry
if list.assoc.mem(k, !merged) then
print("Remove existing entry #{entry} with key #{k}")
merged := list.assoc.remove(k, !merged)
end
merged := list.add(entry, !merged)
end
list.iter(add_meta_entry, (meta))
print("MERGED META: #{!merged}")
imcb(!merged)
end
in_stream = source.on_metadata(id="in_stream", in_stream, on_metadata_notification)
output.alsa(id="lineout", device="default", mksafe(in_stream))
# Later:
meta = [("foo", "bar")]
thread.run(every=3., { insert_merged_meta(meta) })
......@@ -29,33 +29,5 @@ def on_metadata_notification(metadata) =
print("METADATA: \n#{metadata}")
end
# Save the callback
last_metadata = in_stream.last_metadata
imcb = in_stream.insert_metadata
# Ability to insert and merge with previous metadata
def insert_merged_meta(meta) =
lm = (last_metadata() ?? [])
merged = ref(lm)
def add_meta_entry(entry) =
print("Add entry #{entry}")
let (k, v) = entry
if list.assoc.mem(k, !merged) then
print("Remove existing entry #{entry} with key #{k}")
merged := list.assoc.remove(k, !merged)
end
merged := list.add(entry, !merged)
end
list.iter(add_meta_entry, (meta))
print("MERGED META: #{!merged}")
imcb(!merged)
end
in_stream = source.on_metadata(id="in_stream", in_stream, on_metadata_notification)
output.alsa(id="lineout", device="default", mksafe(in_stream))
# Later:
meta = [("foo", "bar")]
thread.run(every=3., { insert_merged_meta(meta) })
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment