summaryrefslogtreecommitdiffstats
path: root/abs/core/mythtv/stable-0.25/mythplugins/mythburn.py.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/mythtv/stable-0.25/mythplugins/mythburn.py.patch')
-rw-r--r--abs/core/mythtv/stable-0.25/mythplugins/mythburn.py.patch285
1 files changed, 0 insertions, 285 deletions
diff --git a/abs/core/mythtv/stable-0.25/mythplugins/mythburn.py.patch b/abs/core/mythtv/stable-0.25/mythplugins/mythburn.py.patch
deleted file mode 100644
index 380385b..0000000
--- a/abs/core/mythtv/stable-0.25/mythplugins/mythburn.py.patch
+++ /dev/null
@@ -1,285 +0,0 @@
---- mythburn.py.orig 2012-12-16 15:23:41.000000000 -0600
-+++ mythburn.py 2012-12-18 14:23:56.000000000 -0600
-@@ -44,7 +44,7 @@
-
-
- # version of script - change after each update
--VERSION="0.1.20120304-1"
-+VERSION="0.1.20121218-1"
-
- # keep all temporary files for debugging purposes
- # set this to True before a first run through when testing
-@@ -93,6 +93,7 @@
- from fcntl import ioctl
- import CDROM
- from shutil import copy
-+from subprocess import Popen, PIPE
-
- import MythTV
- from MythTV.altdict import OrdDict
-@@ -425,7 +426,7 @@
- os.remove(os.path.join(root, name))
-
- #############################################################
--# Romoves all the objects from a directory
-+# Removes all the objects from a directory
-
- def deleteEverythingInFolder(folder):
- for root, dirs, files in os.walk(folder, topdown=False):
-@@ -615,7 +616,7 @@
- # of a video file from its stream info file
-
- def getVideoParams(folder):
-- """Returns the video resolution, fps and aspect ratio for the video file from the streamindo.xml file"""
-+ """Returns the video resolution, fps and aspect ratio for the video file from the streaminfo.xml file"""
-
- #open the XML containing information about this file
- infoDOM = xml.dom.minidom.parse(os.path.join(folder, 'streaminfo.xml'))
-@@ -651,14 +652,14 @@
- # Gets the aspect ratio of a video file from its stream info file
-
- def getAspectRatioOfVideo(index):
-- """Returns the aspect ratio of the video file (1.333, 1.778, etc)"""
-+ """Returns the aspect ratio of the original video file (1.333, 1.778, etc)"""
-
- #open the XML containing information about this file
-- infoDOM = xml.dom.minidom.parse(os.path.join(getItemTempPath(index), 'streaminfo.xml'))
-+ infoDOM = xml.dom.minidom.parse(os.path.join(getItemTempPath(index), 'streaminfo_orig.xml'))
-
- #error out if its the wrong XML
- if infoDOM.documentElement.tagName != "file":
-- fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo.xml'))
-+ fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo_orig.xml'))
- video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0]
- if video.attributes["aspectratio"].value != 'N/A':
- aspect_ratio = float(video.attributes["aspectratio"].value)
-@@ -679,7 +680,7 @@
-
- #error out if its the wrong XML
- if infoDOM.documentElement.tagName != "file":
-- fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo_orig.xml'))
-+ fatalError("Stream info file doesn't look right (%s)" % os.path.join(getItemTempPath(index), 'streaminfo.xml'))
-
- video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0]
- video_start = float(video.attributes["start_time"].value)
-@@ -1432,9 +1433,23 @@
-
- data.rating = str(vid.userrating)
-
-- if doesFileExist(vid.coverfile):
-- data.coverfile = vid.coverfile
-+ data.coverfile = None
-
-+ #Check filename for valid path. If valid return nothing.
-+ if os.path.isfile(str(vid.coverfile)):
-+ write("Coverart is in local directory: %s" % vid.coverfile)
-+ data.coverfile = vid.coverfile
-+ else:
-+ # iterate through storage group directories to get Coverart
-+ for sg in DB.getStorageGroup(groupname='Coverart', hostname=DB.gethostname()):
-+ if os.path.isfile(os.path.join(sg.dirname, str(vid.coverfile))):
-+ write("Coverart is in Storage Groups: %s%s" % (sg.dirname, vid.coverfile))
-+ data.coverfile = os.path.join(sg.dirname, str(vid.coverfile))
-+ break
-+
-+ if data.coverfile == None:
-+ write("No Coverart Found")
-+
- elif file.attributes["type"].value=="file":
- data.type = file.attributes["type"].value
- data.filename = file.attributes["filename"].value
-@@ -1485,6 +1500,30 @@
-
-
- #############################################################
-+# Finds the path of a video file from a Storage Group
-+
-+def getVideoPath(filename):
-+
-+ filepath = None
-+
-+ #Check filename for valid path. If valid return nothing.
-+ if os.path.isfile(filename):
-+ write("Video is in local video directory: %s" % filename)
-+ return (filepath)
-+ else:
-+ # iterate through storage group directories
-+ for sg in DB.getStorageGroup(groupname='Videos', hostname=DB.gethostname()):
-+ wholepath = os.path.join(sg.dirname, filename)
-+ if os.path.isfile(wholepath):
-+ write("Video is in Storage Groups: %s" % wholepath)
-+ filepath = "".join(sg.dirname)
-+ return (filepath)
-+ break
-+
-+ if filepath == None:
-+ write("Video is not in local video directory or Storage Groups")
-+
-+#############################################################
- # Pre-process a single video/recording file
-
- def preProcessFile(file, folder, count):
-@@ -1501,7 +1540,7 @@
- if file.attributes["type"].value == "recording":
- mediafile = file.attributes["filename"].value
- elif file.attributes["type"].value == "video":
-- mediafile = os.path.join(videopath, file.attributes["filename"].value)
-+ mediafile = os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value)
- elif file.attributes["type"].value == "file":
- mediafile = file.attributes["filename"].value
- else:
-@@ -1661,6 +1700,37 @@
- fatalError("Failed while running mytharchivehelper to get stream information.\n"
- "Result: %d, Command was %s" % (result, command))
-
-+ #open the XML containing information about this file
-+ infoDOM = xml.dom.minidom.parse(xmlFilename)
-+
-+ #error out if its the wrong XML
-+ if infoDOM.documentElement.tagName != "file":
-+ fatalError("This info file doesn't look right (%s)." % xmlFilename)
-+
-+ file = infoDOM.getElementsByTagName("file")[0]
-+ video = infoDOM.getElementsByTagName("file")[0].getElementsByTagName("streams")[0].getElementsByTagName("video")[0]
-+
-+ #use ffmpeg to get display aspect ratio (DAR) of video
-+ cmd = "mythffmpeg -i " + quoteCmdArg(file.attributes["filename"].value) + " 2>&1"
-+ aspect_ratio = Popen(cmd, shell=True, stdout=PIPE).stdout.read()
-+ if "DAR" in aspect_ratio:
-+ #clean DAR string
-+ aspect_ratio = aspect_ratio.split("DAR ")[-1].split(",")[0]
-+ aspect_ratio = ''.join([c for c in aspect_ratio if c in '1234567890:']).split(":")
-+ else:
-+ #calculate aspect from video size
-+ aspect_ratio = getVideoSize(xmlFilename)
-+
-+ #convert to decimal
-+ aspect_ratio = float(aspect_ratio[0]) / float(aspect_ratio[1])
-+
-+ write("Video %s aspect ratio is: %s" % (filename, aspect_ratio))
-+
-+ #set aspect ratio
-+ video.setAttribute("aspectratio",str(aspect_ratio))
-+
-+ WriteXMLToFile (infoDOM,xmlFilename)
-+
- # print out the streaminfo.xml file to the log
- infoDOM = xml.dom.minidom.parse(xmlFilename)
- write(xmlFilename + ":-\n" + infoDOM.toprettyxml(" ", ""), False)
-@@ -1707,7 +1777,7 @@
- write("Using cutlist: %s" % cutlist_s)
-
- if (localfile != ""):
-- localfile = quoteFilename(localfile)
-+ localfile = quoteCmdArg(localfile)
- if usecutlist == True:
- command = "mythtranscode --mpeg2 --honorcutlist %s --infile %s --outfile %s" % (cutlist_s, quoteCmdArg(localfile), quoteCmdArg(destination))
- else:
-@@ -1973,7 +2043,7 @@
- #############################################################
- # Re-encodes a file to mpeg2
-
--def encodeVideoToMPEG2(source, destvideofile, video, audio1, audio2, aspectratio, profile):
-+def encodeVideoToMPEG2(source, destvideofile, video, folder, audio1, audio2, aspectratio, profile):
- """Encodes an unknown video source file eg. AVI to MPEG2 video and AC3 audio, use mythffmpeg"""
-
- profileNode = findEncodingProfile(profile)
-@@ -1998,7 +2068,36 @@
- value = quoteCmdArg(destvideofile)
- if value == "%aspect":
- value = aspectratio
-+ if value == "720x480" or value == "720x576":
-+ videores, fps, videoAR = getVideoParams(folder)
-+ videoWidth = int(videores.split("x")[0])
-+ videoHeight = int(videores.split("x")[1])
-+
-+ #add padding to correct for aspects > than 1.9:1
-+ if float(videoAR) >= 1.9:
-+ #check which video type and set the correct height
-+ if videomode == "ntsc":
-+ videoModeHeight = 480
-+ else:
-+ videoModeHeight = 576
-
-+ #calculate the video height based on the aspect ratio of the video
-+ #multiply by 1.185 to compensate for dvds non-square pixels
-+ calVideoHeight = int(round((720 / float(videoAR)) * 1.185))
-+ if calVideoHeight % 2 == 1:
-+ calVideoHeight = calVideoHeight + 1
-+ #write("calVideoHeight: %s" % calVideoHeight)
-+
-+ #use original video height if the calculated video height is close
-+ if (calVideoHeight + 20 < videoHeight) or (calVideoHeight - 20 > videoHeight):
-+ videoHeight = calVideoHeight
-+
-+ cropPixels = videoModeHeight - videoHeight
-+
-+ write("Crop Pixels Total: %s" % cropPixels)
-+ name = "-vf"
-+ value = "\"scale=720:%d, setsar=1:1, pad=720:%d:0:%d:black\"" % (videoModeHeight - cropPixels, videoModeHeight, cropPixels / 2)
-+
- # only re-encode the audio if it is not already in AC3 format
- if audio1[AUDIO_CODEC] == "AC3":
- if name == "-acodec":
-@@ -2094,10 +2193,6 @@
- outaudiosamplerate = 48000
- outaudiocodec = "ac3"
- deinterlace = 0
-- croptop = 0
-- cropright = 0
-- cropbottom = 0
-- cropleft = 0
- qmin = 5
- qmax = 31
- qdiff = 31
-@@ -2121,14 +2216,6 @@
- outvideores = value
- if name == "-deinterlace":
- deinterlace = 1
-- if name == "-croptop":
-- croptop = value
-- if name == "-cropright":
-- cropright = value
-- if name == "-cropbottom":
-- cropbottom = value
-- if name == "-cropleft":
-- cropleft = value
- if name == "-qmin":
- qmin = value
- if name == "-qmax":
-@@ -4409,7 +4496,7 @@
- elif file.attributes["type"].value=="recording":
- mediafile = file.attributes["filename"].value
- elif file.attributes["type"].value=="video":
-- mediafile=os.path.join(videopath, file.attributes["filename"].value)
-+ mediafile=os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value)
- elif file.attributes["type"].value=="file":
- mediafile=file.attributes["filename"].value
- else:
-@@ -4547,7 +4634,7 @@
-
- #do the re-encode
- encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video,
-- audio1, audio2, aspectratio, profile)
-+ folder, audio1, audio2, aspectratio, profile)
- mediafile = os.path.join(folder, 'newfile2.mpg')
-
- #remove the old mediafile that was run through mythtranscode
-@@ -4621,7 +4708,7 @@
- elif file.attributes["type"].value=="recording":
- mediafile = file.attributes["filename"].value
- elif file.attributes["type"].value=="video":
-- mediafile=os.path.join(videopath, file.attributes["filename"].value)
-+ mediafile=os.path.join(getVideoPath(file.attributes["filename"].value), file.attributes["filename"].value)
- elif file.attributes["type"].value=="file":
- mediafile=file.attributes["filename"].value
- else:
-@@ -4701,7 +4788,7 @@
-
- #do the re-encode
- encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video,
-- audio1, audio2, aspectratio, profile)
-+ folder, audio1, audio2, aspectratio, profile)
- mediafile = os.path.join(folder, 'newfile2.mpg')
-
- #remove an intermediate file