--- mythplugins-0.20/mytharchive/mytharchivehelper/main.cpp.orig	2006-12-10 22:34:07.553336750 +0000
+++ mythplugins-0.20/mytharchive/mytharchivehelper/main.cpp	2006-12-10 22:36:12.725159500 +0000
@@ -1619,7 +1619,7 @@
     }
 
     // Getting stream information
-    if ((ret = av_find_stream_info(inputFC)) < 0)
+    if ((ret = av_find_stream_info_deep(inputFC)) < 0)
     {
         VERBOSE(VB_JOBQUEUE,
                 QString("Couldn't get stream info, error #%1").arg(ret));
@@ -1857,7 +1857,7 @@
     }
 
     // Getting stream information
-    ret = av_find_stream_info(inputFC);
+    ret = av_find_stream_info_deep(inputFC);
 
     if (ret < 0)
     {
--- mythplugins-0.20/mytharchive/mythburn/scripts/mythburn.py.orig	2006-12-11 10:04:31.298159000 +0000
+++ mythplugins-0.20/mytharchive/mythburn/scripts/mythburn.py	2006-12-11 13:36:20.396428000 +0000
@@ -2780,21 +2780,22 @@
 
 
 # tuple index constants
-VIDEO_INDEX = 0
-VIDEO_CODEC = 1
-VIDEO_ID    = 2
-
-AUDIO_INDEX = 0
-AUDIO_CODEC = 1
-AUDIO_ID    = 2
-AUDIO_LANG  = 3
+VIDEO_INDEX   = 0
+VIDEO_CODEC   = 1
+VIDEO_ID      = 2
+
+AUDIO_INDEX   = 0
+AUDIO_CODEC   = 1
+AUDIO_ID      = 2
+AUDIO_LANG    = 3
+AUDIO_BITRATE = 4
 
 def selectStreams(folder):
     """Choose the streams we want from the source file"""
 
-    video    = (-1, 'N/A', -1)         # index, codec, ID
-    audio1   = (-1, 'N/A', -1, 'N/A')  # index, codec, ID, lang
-    audio2   = (-1, 'N/A', -1, 'N/A')
+    video    = (-1, 'N/A', -1)             # index, codec, ID
+    audio1   = (-1, 'N/A', -1, 'N/A', -1)  # index, codec, ID, lang, bitrate
+    audio2   = (-1, 'N/A', -1, 'N/A', -1)
 
     #open the XML containing information about this file
     infoDOM = xml.dom.minidom.parse(os.path.join(folder, 'streaminfo.xml'))
@@ -2837,12 +2838,13 @@
         lang = node.attributes["language"].value
         format = string.upper(node.attributes["codec"].value)
         pid = int(node.attributes["id"].value)
+        bitrate = int(node.attributes["bitrate"].value)
         if lang == preferredlang1 and format == "AC3":
             if found:
-                if pid < audio1[AUDIO_ID]:
-                    audio1 = (index, format, pid, lang)
+                if bitrate > audio1[AUDIO_BITRATE]:
+                    audio1 = (index, format, pid, lang, bitrate)
             else:
-                audio1 = (index, format, pid, lang)
+                audio1 = (index, format, pid, lang, bitrate)
             found = True
 
     # second try to find a stream with mp2 and preferred language 1
@@ -2852,12 +2854,13 @@
             lang = node.attributes["language"].value
             format = string.upper(node.attributes["codec"].value)
             pid = int(node.attributes["id"].value)
+            bitrate = int(node.attributes["bitrate"].value)
             if lang == preferredlang1 and format == "MP2":
                 if found:
-                    if pid < audio1[AUDIO_ID]:
-                        audio1 = (index, format, pid, lang)
+                    if bitrate > audio1[AUDIO_BITRATE]:
+                        audio1 = (index, format, pid, lang, bitrate)
                 else:
-                    audio1 = (index, format, pid, lang)
+                    audio1 = (index, format, pid, lang, bitrate)
                 found = True
 
     # finally use the stream with the lowest pid, prefer ac3 over mp2
@@ -2866,15 +2869,16 @@
             index = int(node.attributes["ffmpegindex"].value)
             format = string.upper(node.attributes["codec"].value)
             pid = int(node.attributes["id"].value)
+            bitrate = int(node.attributes["bitrate"].value)
             if not found:
-                audio1 = (index, format, pid, lang)
+                audio1 = (index, format, pid, lang, bitrate)
                 found = True
             else:
                 if format == "AC3" and audio1[AUDIO_CODEC] == "MP2":
-                    audio1 = (index, format, pid, lang)
+                    audio1 = (index, format, pid, lang, bitrate)
                 else:
-                    if pid < audio1[AUDIO_ID]:
-                        audio1 = (index, format, pid, lang)
+                    if bitrate > audio1[AUDIO_BITRATE]:
+                        audio1 = (index, format, pid, lang, bitrate)
 
     # do we need to find a second audio stream?
     if preferredlang1 != preferredlang2 and nodes.length > 1:
@@ -2885,12 +2889,13 @@
             lang = node.attributes["language"].value
             format = string.upper(node.attributes["codec"].value)
             pid = int(node.attributes["id"].value)
+            bitrate = int(node.attributes["bitrate"].value)
             if lang == preferredlang2 and format == "AC3":
                 if found:
-                    if pid < audio2[AUDIO_ID]:
-                        audio2 = (index, format, pid, lang)
+                    if bitrate > audio2[AUDIO_BITRATE]:
+                        audio2 = (index, format, pid, lang, bitrate)
                 else:
-                    audio2 = (index, format, pid, lang)
+                    audio2 = (index, format, pid, lang, bitrate)
                 found = True
 
         # second try to find a stream with mp2 and preferred language 2
@@ -2900,12 +2905,13 @@
                 lang = node.attributes["language"].value
                 format = string.upper(node.attributes["codec"].value)
                 pid = int(node.attributes["id"].value)
+                bitrate = int(node.attributes["bitrate"].value)
                 if lang == preferredlang2 and format == "MP2":
                     if found:
-                        if pid < audio2[AUDIO_ID]:
-                            audio2 = (index, format, pid, lang)
+                        if bitrate > audio2[AUDIO_BITRATE]:
+                            audio2 = (index, format, pid, lang, bitrate)
                     else:
-                        audio2 = (index, format, pid, lang)
+                        audio2 = (index, format, pid, lang, bitrate)
                     found = True
 
         # finally use the stream with the lowest pid, prefer ac3 over mp2
@@ -2914,21 +2920,22 @@
                 index = int(node.attributes["ffmpegindex"].value)
                 format = string.upper(node.attributes["codec"].value)
                 pid = int(node.attributes["id"].value)
+                bitrate = int(node.attributes["bitrate"].value)
                 if not found:
                     # make sure we don't choose the same stream as audio1
                     if pid != audio1[AUDIO_ID]:
-                        audio2 = (index, format, pid, lang)
+                        audio2 = (index, format, pid, lang, bitrate)
                         found = True
                 else:
                     if format == "AC3" and audio2[AUDIO_CODEC] == "MP2" and pid != audio1[AUDIO_ID]:
-                        audio2 = (index, format, pid, lang)
+                        audio2 = (index, format, pid, lang, bitrate)
                     else:
-                        if pid < audio2[AUDIO_ID] and pid != audio1[AUDIO_ID]:
-                            audio2 = (index, format, pid, lang)
+                        if bitrate > audio2[AUDIO_BITRATE] and pid != audio1[AUDIO_ID]:
+                            audio2 = (index, format, pid, lang, bitrate)
 
-    write("Video id: 0x%x, Audio1: [%d] 0x%x (%s, %s), Audio2: [%d] - 0x%x (%s, %s)" % \
-        (video[VIDEO_ID], audio1[AUDIO_INDEX], audio1[AUDIO_ID], audio1[AUDIO_CODEC], audio1[AUDIO_LANG], \
-         audio2[AUDIO_INDEX], audio2[AUDIO_ID], audio2[AUDIO_CODEC], audio2[AUDIO_LANG]))
+    write("Video id: 0x%x, Audio1: [%d] 0x%x (%s, %s, %d), Audio2: [%d] - 0x%x (%s, %s, %d)" % \
+        (video[VIDEO_ID], audio1[AUDIO_INDEX], audio1[AUDIO_ID], audio1[AUDIO_CODEC], audio1[AUDIO_LANG], audio1[AUDIO_BITRATE], \
+         audio2[AUDIO_INDEX], audio2[AUDIO_ID], audio2[AUDIO_CODEC], audio2[AUDIO_LANG], audio2[AUDIO_BITRATE]))
 
     return (video, audio1, audio2)
