Minor changes to video playback including fullscreen for live tv.
This commit is contained in:
parent
9c24b4b3d3
commit
b247ca13c1
|
@ -138,7 +138,7 @@ class MenuMgr:
|
||||||
self.currentPlugin = None
|
self.currentPlugin = None
|
||||||
#If there's no plugin running, go back one in the menu list (Providing we're not already at the first item.
|
#If there's no plugin running, go back one in the menu list (Providing we're not already at the first item.
|
||||||
else:
|
else:
|
||||||
if len(self.menus)>1:
|
if len(self.menuHistory)>1:
|
||||||
self.transition_fade_zoom(self.menuHistory.pop(), self.menuHistory[-1])
|
self.transition_fade_zoom(self.menuHistory.pop(), self.menuHistory[-1])
|
||||||
self.currentMenu = self.menuHistory[-1]
|
self.currentMenu = self.menuHistory[-1]
|
||||||
#print event.hardware_keycode
|
#print event.hardware_keycode
|
||||||
|
|
BIN
MenuMgr.pyc
BIN
MenuMgr.pyc
Binary file not shown.
13
Slideshow.py
13
Slideshow.py
|
@ -86,8 +86,8 @@ class Slideshow:
|
||||||
def begin(self, MenuMgr):
|
def begin(self, MenuMgr):
|
||||||
self.stage = self.MenuMgr.get_stage()
|
self.stage = self.MenuMgr.get_stage()
|
||||||
|
|
||||||
self.MenuMgr.get_selector_bar().set_spinner(True)
|
#self.MenuMgr.get_selector_bar().set_spinner(True)
|
||||||
self.stage.queue_redraw()
|
#self.stage.queue_redraw()
|
||||||
|
|
||||||
#Clear out music and texture lists
|
#Clear out music and texture lists
|
||||||
self.textures = []
|
self.textures = []
|
||||||
|
@ -95,7 +95,7 @@ class Slideshow:
|
||||||
#Then load them back up
|
#Then load them back up
|
||||||
slideName = self.baseDir + "/" + self.MenuMgr.get_current_menu().get_current_item().get_data()
|
slideName = self.baseDir + "/" + self.MenuMgr.get_current_menu().get_current_item().get_data()
|
||||||
self.loadDir(slideName, True)
|
self.loadDir(slideName, True)
|
||||||
self.MenuMgr.get_selector_bar().set_spinner(False)
|
#self.MenuMgr.get_selector_bar().set_spinner(False)
|
||||||
|
|
||||||
if self.backdrop == None:
|
if self.backdrop == None:
|
||||||
#Create a rectangle that serves as the backdrop for the slideshow
|
#Create a rectangle that serves as the backdrop for the slideshow
|
||||||
|
@ -321,14 +321,15 @@ class Slideshow:
|
||||||
def generateMenu(self):
|
def generateMenu(self):
|
||||||
|
|
||||||
tempMenu = Menu(self.MenuMgr)
|
tempMenu = Menu(self.MenuMgr)
|
||||||
print self.baseDir
|
#print self.baseDir
|
||||||
file_list = os.listdir(self.baseDir)
|
file_list = os.listdir(self.baseDir)
|
||||||
|
|
||||||
for directoryEntry in file_list:
|
for directoryEntry in file_list:
|
||||||
subdir = self.baseDir + "/" + directoryEntry
|
subdir = self.baseDir + "/" + directoryEntry
|
||||||
if os.path.isdir(subdir):
|
if os.path.isdir(subdir):
|
||||||
imgPath = subdir + "/" + os.listdir(subdir)[0]
|
if not (len(os.listdir(subdir)) == 0):
|
||||||
#print imgPath
|
imgPath = subdir + "/" + os.listdir(subdir)[0]
|
||||||
|
#print imgPath
|
||||||
tempItem = tempMenu.addItem(directoryEntry, "/home/josh/.mythtv/MythVideo/0088763.jpg")
|
tempItem = tempMenu.addItem(directoryEntry, "/home/josh/.mythtv/MythVideo/0088763.jpg")
|
||||||
tempItem.setAction(self)
|
tempItem.setAction(self)
|
||||||
|
|
||||||
|
|
BIN
Slideshow.pyc
BIN
Slideshow.pyc
Binary file not shown.
32
TVPlayer.py
32
TVPlayer.py
|
@ -7,11 +7,13 @@ import clutter
|
||||||
from clutter import cluttergst
|
from clutter import cluttergst
|
||||||
from myth.MythBackendConn import MythBackendConnection
|
from myth.MythBackendConn import MythBackendConnection
|
||||||
from Menu import Menu
|
from Menu import Menu
|
||||||
|
from VideoController import VideoController
|
||||||
|
|
||||||
class TVPlayer:
|
class TVPlayer:
|
||||||
|
|
||||||
def __init__(self, stage, dbMgr):
|
def __init__(self, stage, dbMgr):
|
||||||
self.video = cluttergst.VideoTexture()
|
self.video = cluttergst.VideoTexture()
|
||||||
|
self.video.connect('size-change', self.video_size_change)
|
||||||
self.stage = stage
|
self.stage = stage
|
||||||
self.dbMgr = dbMgr
|
self.dbMgr = dbMgr
|
||||||
#audio.set_filename('cast1.avi')
|
#audio.set_filename('cast1.avi')
|
||||||
|
@ -33,6 +35,8 @@ class TVPlayer:
|
||||||
(server, port) = self.dbMgr.get_backend_server()
|
(server, port) = self.dbMgr.get_backend_server()
|
||||||
self.myConn = MythBackendConnection(self, server, port)
|
self.myConn = MythBackendConnection(self, server, port)
|
||||||
self.myConn.start()
|
self.myConn.start()
|
||||||
|
#vid = VideoController()
|
||||||
|
#vid.begin(self.stage)
|
||||||
#self.begin_playback(self.buffer_file_reader.fileno())
|
#self.begin_playback(self.buffer_file_reader.fileno())
|
||||||
|
|
||||||
def begin_playback(self, fd):
|
def begin_playback(self, fd):
|
||||||
|
@ -45,7 +49,7 @@ class TVPlayer:
|
||||||
self.menuMgr.get_selector_bar().set_spinner(False)
|
self.menuMgr.get_selector_bar().set_spinner(False)
|
||||||
self.video.set_uri("fd://"+str(fd))
|
self.video.set_uri("fd://"+str(fd))
|
||||||
#self.video.set_property("fullscreen", True)
|
#self.video.set_property("fullscreen", True)
|
||||||
self.video.set_opacity(0)
|
self.video.set_opacity(0)
|
||||||
self.video.show()
|
self.video.show()
|
||||||
|
|
||||||
timeline = clutter.Timeline(15, 25)
|
timeline = clutter.Timeline(15, 25)
|
||||||
|
@ -55,9 +59,29 @@ class TVPlayer:
|
||||||
|
|
||||||
self.stage.add(self.video)
|
self.stage.add(self.video)
|
||||||
self.video.set_playing(True)
|
self.video.set_playing(True)
|
||||||
|
self.video.set_size(400, 300)
|
||||||
timeline.start()
|
timeline.start()
|
||||||
|
#return None
|
||||||
|
|
||||||
return None
|
def video_size_change(self, texture, width, height):
|
||||||
|
self.video.set_property("sync-size", False)
|
||||||
|
self.video.set_position(0, 0)
|
||||||
|
xy_ratio = float(width / height)
|
||||||
|
print "XY Ratio: " + str(xy_ratio)
|
||||||
|
|
||||||
|
width = int(self.stage.get_width())
|
||||||
|
height = int (width / xy_ratio)
|
||||||
|
height = 768
|
||||||
|
|
||||||
|
print "Width: " + str(width)
|
||||||
|
print "Height: " + str(height)
|
||||||
|
|
||||||
|
|
||||||
|
self.video.set_size(width, height)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"""
|
||||||
playbin = self.video.get_playbin() .get_by_name("decodebin0")
|
playbin = self.video.get_playbin() .get_by_name("decodebin0")
|
||||||
for element in playbin.elements():
|
for element in playbin.elements():
|
||||||
print element.get_name()
|
print element.get_name()
|
||||||
|
@ -67,11 +91,11 @@ class TVPlayer:
|
||||||
playbin.add(deinterlace)
|
playbin.add(deinterlace)
|
||||||
#gst.element_link_many(sink, deinterlace)
|
#gst.element_link_many(sink, deinterlace)
|
||||||
self.video.set_size(stage.get_width(), stage.get_height())
|
self.video.set_size(stage.get_width(), stage.get_height())
|
||||||
self.video.set_size(800, 600)
|
|
||||||
#self.video.set_height(stage.get_height())
|
#self.video.set_height(stage.get_height())
|
||||||
|
|
||||||
|
|
||||||
"""
|
|
||||||
self.video_texture = clutter.Texture()
|
self.video_texture = clutter.Texture()
|
||||||
self.pipeline = gst.Pipeline("mypipeline")
|
self.pipeline = gst.Pipeline("mypipeline")
|
||||||
self.pbin = gst.element_factory_make("playbin", "pbin");
|
self.pbin = gst.element_factory_make("playbin", "pbin");
|
||||||
|
|
BIN
TVPlayer.pyc
BIN
TVPlayer.pyc
Binary file not shown.
Loading…
Reference in New Issue