From 1b62204c5a810bd987d39593e5266404edfe6696 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 12 Feb 2024 16:07:11 +0100 Subject: [PATCH] manage multiple media sources by conferences (prepare multi camera sources from telecaster) --- teleforma/models/core.py | 10 +++++++++- teleforma/views/core.py | 12 ++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 48923803..79807d2f 100644 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -688,11 +688,19 @@ class LiveStream(models.Model): stream_type = models.CharField(_('Streaming type'), choices=streaming_choices, max_length=32) streaming = models.BooleanField(_('streaming')) + video_id = models.IntegerField( + _('video id'), + blank=True, + null=True + ) @property def slug(self): if self.conference: - return self.conference.slug + if self.video_id: + return self.conference.slug + '_' + self.video_id + else: + return self.conference.slug else: return 'None' diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 54d22a1b..3afb45c9 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -870,6 +870,7 @@ class ConferenceView(CourseAccessMixin, DetailView): settings, "TELECASTER_LIVE_STREAMING_PROTOCOL", 'http') server_type = stream['server_type'] stream_type = stream['stream_type'] + if server_type == 'icecast': port = getattr( settings, "TELECASTER_LIVE_ICECAST_STREAMING_PORT", '8000') @@ -880,15 +881,22 @@ class ConferenceView(CourseAccessMixin, DetailView): settings, "TELECASTER_LIVE_STREAM_M_STREAMING_PORT", '8080') path = getattr( settings, "TELECASTER_LIVE_STREAM_M_STREAMING_PATH", '/') - #site = Site.objects.all()[0] + + if "video_id" in stream: + video_id = stream['video_id'] + else: + video_id = None + server, c = StreamingServer.objects.get_or_create( protocol=protocol, host=host, port=port, path=path, type=server_type) + stream = LiveStream(conference=conference, server=server, - stream_type=stream_type, streaming=True) + stream_type=stream_type, streaming=True, + video_id=video_id) stream.save() if not conference.web_class_group and settings.TELECASTER_LIVE_TWEETER: -- 2.39.5