forked from openlp/openlp
updates
This commit is contained in:
parent
edce402a60
commit
08891d8731
@ -173,6 +173,7 @@ class ItemCapabilities(object):
|
|||||||
HasNotes = 20
|
HasNotes = 20
|
||||||
HasThumbnails = 21
|
HasThumbnails = 21
|
||||||
HasMetaData = 22
|
HasMetaData = 22
|
||||||
|
CanStream = 23
|
||||||
|
|
||||||
|
|
||||||
def get_text_file_string(text_file_path):
|
def get_text_file_string(text_file_path):
|
||||||
|
@ -229,7 +229,10 @@ class MediaController(RegistryBase, LogMixin, RegistryProperties):
|
|||||||
display = self._define_display(controller)
|
display = self._define_display(controller)
|
||||||
if controller.is_live:
|
if controller.is_live:
|
||||||
# if this is an optical device use special handling
|
# if this is an optical device use special handling
|
||||||
if service_item.is_capable(ItemCapabilities.IsOptical):
|
if service_item.is_capable(ItemCapabilities.CanStream):
|
||||||
|
is_valid = self._check_file_type(controller, display)
|
||||||
|
controller.media_info.media_type = MediaType.Stream
|
||||||
|
elif service_item.is_capable(ItemCapabilities.IsOptical):
|
||||||
log.debug('video is optical and live')
|
log.debug('video is optical and live')
|
||||||
path = service_item.get_frame_path()
|
path = service_item.get_frame_path()
|
||||||
(name, title, audio_track, subtitle_track, start, end, clip_name) = parse_optical_path(path)
|
(name, title, audio_track, subtitle_track, start, end, clip_name) = parse_optical_path(path)
|
||||||
@ -249,7 +252,10 @@ class MediaController(RegistryBase, LogMixin, RegistryProperties):
|
|||||||
controller.media_info.start_time = service_item.start_time
|
controller.media_info.start_time = service_item.start_time
|
||||||
controller.media_info.end_time = service_item.end_time
|
controller.media_info.end_time = service_item.end_time
|
||||||
elif controller.preview_display:
|
elif controller.preview_display:
|
||||||
if service_item.is_capable(ItemCapabilities.IsOptical):
|
if service_item.is_capable(ItemCapabilities.CanStream):
|
||||||
|
is_valid = self._check_file_type(controller, display)
|
||||||
|
controller.media_info.media_type = MediaType.Stream
|
||||||
|
elif service_item.is_capable(ItemCapabilities.IsOptical):
|
||||||
log.debug('video is optical and preview')
|
log.debug('video is optical and preview')
|
||||||
path = service_item.get_frame_path()
|
path = service_item.get_frame_path()
|
||||||
(name, title, audio_track, subtitle_track, start, end, clip_name) = parse_optical_path(path)
|
(name, title, audio_track, subtitle_track, start, end, clip_name) = parse_optical_path(path)
|
||||||
@ -353,6 +359,12 @@ class MediaController(RegistryBase, LogMixin, RegistryProperties):
|
|||||||
:param controller: First element is the controller which should be used
|
:param controller: First element is the controller which should be used
|
||||||
:param display: Which display to use
|
:param display: Which display to use
|
||||||
"""
|
"""
|
||||||
|
if controller.media_info.media_type == MediaType.Stream:
|
||||||
|
self.resize(display, self.vlc_player)
|
||||||
|
if self.vlc_player.load(display, None):
|
||||||
|
self.current_media_players[controller.controller_type] = self.vlc_player
|
||||||
|
controller.media_info.media_type = MediaType.Video
|
||||||
|
return True
|
||||||
for file in controller.media_info.file_info:
|
for file in controller.media_info.file_info:
|
||||||
if file.is_file:
|
if file.is_file:
|
||||||
suffix = '*%s' % file.suffix.lower()
|
suffix = '*%s' % file.suffix.lower()
|
||||||
|
@ -147,14 +147,15 @@ class VlcPlayer(MediaPlayer):
|
|||||||
Load a video into VLC
|
Load a video into VLC
|
||||||
|
|
||||||
:param output_display: The display where the media is
|
:param output_display: The display where the media is
|
||||||
:param file: file to be played
|
:param file: file to be played or None for live streaming
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
vlc = get_vlc()
|
vlc = get_vlc()
|
||||||
log.debug('load vid in Vlc Controller')
|
log.debug('load vid in Vlc Controller')
|
||||||
controller = output_display
|
controller = output_display
|
||||||
volume = controller.media_info.volume
|
volume = controller.media_info.volume
|
||||||
path = os.path.normcase(file)
|
if file:
|
||||||
|
path = os.path.normcase(file)
|
||||||
# create the media
|
# create the media
|
||||||
if controller.media_info.media_type == MediaType.CD:
|
if controller.media_info.media_type == MediaType.CD:
|
||||||
if is_win():
|
if is_win():
|
||||||
|
@ -175,7 +175,11 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
|
|||||||
return False
|
return False
|
||||||
filename = str(item.data(QtCore.Qt.UserRole))
|
filename = str(item.data(QtCore.Qt.UserRole))
|
||||||
# Special handling if the filename is a optical clip
|
# Special handling if the filename is a optical clip
|
||||||
if filename.startswith('optical:'):
|
if filename == 'live':
|
||||||
|
service_item.processor = 'vlc'
|
||||||
|
service_item.title = filename
|
||||||
|
service_item.add_capability(ItemCapabilities.CanStream)
|
||||||
|
elif filename.startswith('optical:'):
|
||||||
(name, title, audio_track, subtitle_track, start, end, clip_name) = parse_optical_path(filename)
|
(name, title, audio_track, subtitle_track, start, end, clip_name) = parse_optical_path(filename)
|
||||||
if not os.path.exists(name):
|
if not os.path.exists(name):
|
||||||
if not remote:
|
if not remote:
|
||||||
@ -258,11 +262,11 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
|
|||||||
"""
|
"""
|
||||||
# TODO needs to be fixed as no idea why this fails
|
# TODO needs to be fixed as no idea why this fails
|
||||||
# media.sort(key=lambda file_path: get_natural_key(file_path.name))
|
# media.sort(key=lambda file_path: get_natural_key(file_path.name))
|
||||||
file_name = "Live Stream"
|
file_name = translate('MediaPlugin.MediaItem', 'Live Stream')
|
||||||
item_name = QtWidgets.QListWidgetItem(file_name)
|
item_name = QtWidgets.QListWidgetItem(file_name)
|
||||||
item_name.setIcon(UiIcons().video)
|
item_name.setIcon(UiIcons().video)
|
||||||
item_name.setData(QtCore.Qt.UserRole, 0)
|
item_name.setData(QtCore.Qt.UserRole, 'live')
|
||||||
item_name.setToolTip("Live Stream feed")
|
item_name.setToolTip(translate('MediaPlugin.MediaItem', 'Show Live Stream'))
|
||||||
self.list_view.addItem(item_name)
|
self.list_view.addItem(item_name)
|
||||||
for track in media:
|
for track in media:
|
||||||
track_str = str(track)
|
track_str = str(track)
|
||||||
|
Loading…
Reference in New Issue
Block a user