Felix Krull avatar Felix Krull committed 202e31a

Handle added and removed decoder pads more cleanly.

Comments (0)

Files changed (1)

     # event handlers
     def _on_pad_added(self, decbin, new_pad):
-        try:
-            decbin.link(self.conv)
-        except Gst.LinkError:
-            # this one didn't work. Hopefully the next try's better
-            pass
+        sinkpad = self.conv.get_compatible_pad(new_pad, None)
+        if sinkpad is not None:
+            new_pad.link(sinkpad)
     def _on_pad_removed(self, decbin, old_pad):
-        decbin.unlink(self.conv)
+        peer = old_pad.get_peer()
+        if peer is not None:
+            old_pad.unlink(peer)
     def _on_message(self, bus, msg):
         if msg.type == Gst.MessageType.TAG:
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.