Minor changes to video playback including fullscreen for live tv.

This commit is contained in:
noisymime 2007-08-28 21:55:50 +00:00
parent 9c24b4b3d3
commit b247ca13c1
6 changed files with 36 additions and 11 deletions

View File

@ -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

Binary file not shown.

View File

@ -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)

Binary file not shown.

View File

@ -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");

Binary file not shown.