summaryrefslogtreecommitdiffstats
path: root/abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch')
-rw-r--r--abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch303
1 files changed, 0 insertions, 303 deletions
diff --git a/abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch b/abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch
deleted file mode 100644
index abac7df..0000000
--- a/abs/core/mythtv/stable-0.24/mythplugins/mythburn.py.patch
+++ /dev/null
@@ -1,303 +0,0 @@
---- mythburn.py.orig 2011-09-16 13:41:43.000000000 -0500
-+++ mythburn.py 2011-09-17 10:51:36.000000000 -0500
-@@ -38,7 +38,7 @@
- #******************************************************************************
-
- # version of script - change after each update
--VERSION="0.1.20101206-1"
-+VERSION="0.1.20110821-1"
-
- # keep all temporary files for debugging purposes
- # set this to True before a first run through when testing
-@@ -75,6 +75,7 @@
- from fcntl import ioctl
- import CDROM
- from shutil import copy
-+from subprocess import Popen, PIPE
-
- # media types (should match the enum in mytharchivewizard.h)
- DVD_SL = 0
-@@ -606,7 +607,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'))
-@@ -642,14 +643,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)
-@@ -1762,6 +1763,37 @@
-
-
- #############################################################
-+# Finds the path of a video file from the local video path
-+# or Storage Group
-+
-+def getVideoPath(filename):
-+ # connect
-+ db = getDatabaseConnection()
-+ # create a cursor
-+ cursor = db.cursor()
-+ # execute SQL statement
-+ cursor.execute("""SELECT dirname
-+ FROM storagegroup
-+ WHERE groupname='Videos'""")
-+ # get the resultset as a tuple
-+ result = cursor.fetchall()
-+ # make result a list and add local video path if exists
-+ result = [videopath] + list(result)
-+
-+ # iterate through result set
-+ for sg in result:
-+ if doesFileExist(os.path.join("".join(sg), filename)) == True:
-+ filepath = "".join(sg)
-+ write("Video Path: %s" % filepath)
-+ return (filepath)
-+ break
-+
-+ db.close()
-+ del db
-+ del cursor
-+
-+
-+#############################################################
- # Pre-process a single video/recording file
-
- def preProcessFile(file, folder, count):
-@@ -1775,11 +1807,11 @@
- #3. Extract a single frame from the video to use as a thumbnail and resolution check
- mediafile=""
-
-- if file.attributes["type"].value == "recording":
-+ 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)
-- elif file.attributes["type"].value == "file":
-+ elif file.attributes["type"].value=="video":
-+ 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:
- fatalError("Unknown type of video file it must be 'recording', 'video' or 'file'.")
-@@ -1935,9 +1967,39 @@
-
- if result <> 0:
- fatalError("Failed while running mytharchivehelper to get stream information from %s" % filename)
-+
-+ #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 = path_ffmpeg[0] + " -i " + quoteFilename(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("streaminfo.xml :-\n" + infoDOM.toprettyxml(" ", ""), False)
-
- #############################################################
-@@ -2322,7 +2384,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 ffmpeg"""
-
- profileNode = findEncodingProfile(profile)
-@@ -2347,6 +2409,18 @@
- value = quoteFilename(destvideofile)
- if value == "%aspect":
- value = aspectratio
-+ if value == "720x480" or value == "720x576":
-+ #add padding to correct for aspects > than 1.9:1
-+ videores, fps, videoAR = getVideoParams(folder)
-+ if float(videoAR) >= 1.9:
-+ if videomode == "ntsc":
-+ videoheight = 480
-+ else:
-+ videoheight = 576
-+
-+ croppixels = videoheight - (720 / float(videoAR))
-+ write("CropPixels Total: %s" % croppixels)
-+ value = "720x%d -vf pad=720:%d:0:%d:black" % (videoheight - croppixels, videoheight, croppixels / 2)
-
- # only re-encode the audio if it is not already in AC3 format
- if audio1[AUDIO_CODEC] == "AC3":
-@@ -2383,12 +2457,12 @@
- command += " -newaudio"
-
- #make sure we get the correct stream(s) that we want
-- command += " -map 0:%d -map 0:%d " % (video[VIDEO_INDEX], audio1[AUDIO_INDEX])
-+ command += " -map 0:%d -map 0:%d" % (video[VIDEO_INDEX], audio1[AUDIO_INDEX])
- if audio2[AUDIO_ID] != -1:
- command += "-map 0:%d" % (audio2[AUDIO_INDEX])
-
- if passes == 1:
-- write(command)
-+ write("Running ffmpeg: %s" % command)
- result = runCommand(command)
- if result!=0:
- fatalError("Failed while running ffmpeg to re-encode video.\n"
-@@ -2399,7 +2473,7 @@
-
- pass1 = string.replace(command, "%passno","1")
- pass1 = string.replace(pass1, "%passlogfile", passLog)
-- write("Pass 1 - " + pass1)
-+ write("Running ffmpeg Pass 1: %s" % pass1)
- result = runCommand(pass1)
-
- if result!=0:
-@@ -2411,7 +2485,7 @@
-
- pass2 = string.replace(command, "%passno","2")
- pass2 = string.replace(pass2, "%passlogfile", passLog)
-- write("Pass 2 - " + pass2)
-+ write("Running ffmpeg Pass 2: %s" % pass2)
- result = runCommand(pass2)
-
- if result!=0:
-@@ -2443,10 +2517,6 @@
- outaudiosamplerate = 48000
- outaudiocodec = "ac3"
- deinterlace = 0
-- croptop = 0
-- cropright = 0
-- cropbottom = 0
-- cropleft = 0
- qmin = 5
- qmax = 31
- qdiff = 31
-@@ -2470,14 +2540,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":
-@@ -2526,7 +2588,6 @@
- command += "-aspect %s -r %s " % (aspectratio, fps)
- if (deinterlace == 1):
- command += "-deinterlace "
-- command += "-croptop %s -cropright %s -cropbottom %s -cropleft %s " % (croptop, cropright, cropbottom, cropleft)
- command += "-s %s -b %s -vcodec mpeg2video " % (outvideores, outvideobitrate)
- command += "-qmin %s -qmax %s -qdiff %s " % (qmin, qmax, qdiff)
- command += "-ab %s -ar %s -acodec %s " % (outaudiobitrate, outaudiosamplerate, outaudiocodec)
-@@ -2543,7 +2604,7 @@
- if (not(doesFileExist(os.path.join(folder, "audout")) and doesFileExist(os.path.join(folder, "vidout")))):
- fatalError("Waited too long for mythtranscode to create the fifos - giving up!!")
-
-- write("Running ffmpeg")
-+ write("Running ffmpeg: %s" % command)
- result = runCommand(command)
- if result != 0:
- os.kill(PID, signal.SIGKILL)
-@@ -4724,7 +4785,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:
-@@ -4834,8 +4895,7 @@
- starttime = -1
- usecutlist = -1
-
-- encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder,
-- profile, usecutlist)
-+ encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder, profile, usecutlist)
- mediafile = os.path.join(folder, 'newfile2.mpg')
- else:
- #we need to re-encode the file, make sure we get the right video/audio streams
-@@ -4861,8 +4921,7 @@
- profile = defaultEncodingProfile
-
- #do the re-encode
-- encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video,
-- audio1, audio2, aspectratio, profile)
-+ encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, folder, audio1, audio2, aspectratio, profile)
- mediafile = os.path.join(folder, 'newfile2.mpg')
-
- #remove the old mediafile that was run through mythtranscode
-@@ -4936,7 +4995,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:
-@@ -4988,8 +5047,7 @@
- starttime = -1
- usecutlist = -1
-
-- encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder,
-- profile, usecutlist)
-+ encodeNuvToMPEG2(chanid, starttime, mediafile, os.path.join(folder, "newfile2.mpg"), folder, profile, usecutlist)
- mediafile = os.path.join(folder, 'newfile2.mpg')
- else:
- #we need to re-encode the file, make sure we get the right video/audio streams
-@@ -5015,8 +5073,7 @@
- profile = defaultEncodingProfile
-
- #do the re-encode
-- encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video,
-- audio1, audio2, aspectratio, profile)
-+ encodeVideoToMPEG2(mediafile, os.path.join(folder, "newfile2.mpg"), video, folder, audio1, audio2, aspectratio, profile)
- mediafile = os.path.join(folder, 'newfile2.mpg')
-
- #remove an intermediate file