[transmageddon] Fix rank settings for hardware encoders, fix remuxing support



commit b35e18c4d63dac5db640d35f6f57319bdb7354e8
Author: Christian Fredrik Kalager Schaller <uraeus linuxrising org>
Date:   Thu Jul 3 10:46:34 2014 +0200

    Fix rank settings for hardware encoders, fix remuxing support

 src/transcoder_engine.py |    9 ++-------
 src/transmageddon.py     |   14 +++++++++-----
 2 files changed, 11 insertions(+), 12 deletions(-)
---
diff --git a/src/transcoder_engine.py b/src/transcoder_engine.py
index 26bfc5f..6f01016 100644
--- a/src/transcoder_engine.py
+++ b/src/transcoder_engine.py
@@ -338,23 +338,17 @@ class Transcoder(GObject.GObject):
 
    def OnDynamicPad(self, uridecodebin, src_pad):
        origin = src_pad.query_caps(None)
-       #print("origin is " + str(origin))
        if (self.streamdata['container']==False):
            a =  origin.to_string()
            if a.startswith("audio/"): # this is for audio only files
                src_pad.add_probe(Gst.PadProbeType.EVENT_DOWNSTREAM, self.padprobe, None)
        else:
            c = origin.to_string()
-           #print("c is " +str(c))
            if not (c.startswith("text/") or c.startswith("subpicture/") or c.startswith("audio/")):
                if not (c.startswith("video/") and (self.videodata[0]['outputvideocaps'] == False)):
                    if self.streamdata['passcounter'] == int(0):
-                       # if not c.startswith("audio/"):
                            if c.startswith("video/x-raw"):
-                               #print("origin is now " +str(origin))
-                               #print("try to emit")
                                self.sinkpad = self.encodebin.emit("request-pad", origin)
-                               #print(self.sinkpad)
            if c.startswith("audio/"):
                if self.streamdata['passcounter'] == int(0):
                    src_pad.add_probe(Gst.PadProbeType.EVENT_DOWNSTREAM, self.padprobe, None)
@@ -370,6 +364,7 @@ class Transcoder(GObject.GObject):
                            if self.sinkpad != None:
                                self.videoflipper.get_static_pad("src").link(self.sinkpad)
                else:
+                   self.sinkpad = self.encodebin.emit("request-pad", origin)
                    src_pad.link(self.sinkpad)
  
    def on_autoplug_continue(self, element, pad, caps):
@@ -387,7 +382,7 @@ class Transcoder(GObject.GObject):
                x=x+1
            if streamid ==self.videodata[0]['streamid']:
                if self.videodata[0]['dopassthrough'] == True:
-                   self.autoplugreturnvalue = False
+                   autoplugreturnvalue = False
            capsvalue=caps.to_string()
            if capsvalue.startswith("subtitle/"): # this is to avoid wasting resources on decoding subtitles
                self.autoplugreturnvalue =False
diff --git a/src/transmageddon.py b/src/transmageddon.py
index 7f44b38..ccc8f9c 100644
--- a/src/transmageddon.py
+++ b/src/transmageddon.py
@@ -58,15 +58,19 @@ dvdfactory=Gst.ElementFactory.find("dvdreadsrc")
 if dvdfactory:
     dvdfactory.set_rank(300)
 
-# Disable vaapi decoding as it gives issues
+       # Disable vaapi decoding as it gives issues
 vaapidecfactory=Gst.ElementFactory.find("vaapidecode")
 if vaapidecfactory:
-    vaapidecfactory.set_rank(200)
+           vaapidecfactory.set_rank(0)
 
-# if Vaapi encoder exists, use it
-vaapiencfactory=Gst.ElementFactory.find("vaapiencode")
+       # if Vaapi encoder exists, use it
+vaapiencfactory=Gst.ElementFactory.find("vaapiencode_h264")
 if vaapiencfactory:
-    vaapiencfactory.set_rank(300)
+           vaapiencfactory.set_rank(0)
+       # if Vaapi encoder exists, use it
+vaapiencfactory=Gst.ElementFactory.find("vaapiencode_mpeg2")
+if vaapiencfactory:
+           vaapiencfactory.set_rank(0)
 
 TARGET_TYPE_URI_LIST = 80
 dnd_list = [ ( 'text/uri-list', 0, TARGET_TYPE_URI_LIST ) ]


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]