--- mythburn.py.orig	2013-12-16 22:41:31.532703825 +0000
+++ mythburn.py	2013-12-16 22:40:52.191109409 +0000
@@ -98,6 +98,7 @@
 from fcntl import ioctl
 import CDROM
 from shutil import copy
+from subprocess import Popen, PIPE
 
 import MythTV
 from MythTV import datetime
@@ -440,7 +441,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):
@@ -666,14 +667,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)
@@ -1695,6 +1696,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)
@@ -2010,7 +2042,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)
@@ -2035,6 +2067,35 @@
             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":
@@ -4608,7 +4669,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
@@ -4762,7 +4823,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