[transmageddon] Revert "First stab at deinterlacing support"
- From: Christian Fredrik Kalager Schaller <uraeus src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [transmageddon] Revert "First stab at deinterlacing support"
- Date: Wed, 13 Jan 2010 14:35:34 +0000 (UTC)
commit a633d928ce37d2e01205b405432f382ef7384bd4
Author: Christian Schaller <christian schaller collabora co uk>
Date: Wed Jan 13 14:34:55 2010 +0000
Revert "First stab at deinterlacing support"
This reverts commit bc7d8ef4783f877d0747bd1962e2854def7733f2.
src/transcoder_engine.py | 56 ++++++++++++++--------------------------------
src/transmageddon.py | 2 +-
2 files changed, 18 insertions(+), 40 deletions(-)
---
diff --git a/src/transcoder_engine.py b/src/transcoder_engine.py
index 4842fba..3066025 100644
--- a/src/transcoder_engine.py
+++ b/src/transcoder_engine.py
@@ -40,7 +40,7 @@ class Transcoder(gobject.GObject):
'got-error' : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,))
}
- def __init__(self, FILECHOSEN, FILENAME, DESTDIR, CONTAINERCHOICE, AUDIOCODECVALUE, VIDEOCODECVALUE, VSRCCAPS, PRESET,
+ def __init__(self, FILECHOSEN, FILENAME, DESTDIR, CONTAINERCHOICE, AUDIOCODECVALUE, VIDEOCODECVALUE, PRESET,
OHEIGHT, OWIDTH, FRATENUM, FRATEDEN, ACHANNELS, MULTIPASS, PASSCOUNTER, OUTPUTNAME,
TIMESTAMP, ROTATIONVALUE, AUDIOPASSTOGGLE, VIDEOPASSTOGGLE):
gobject.GObject.__init__(self)
@@ -54,7 +54,6 @@ class Transcoder(gobject.GObject):
self.stoptoggle=False
self.audiocaps = AUDIOCODECVALUE
self.videocaps = VIDEOCODECVALUE
- self.vsrccaps = VSRCCAPS
self.audiopasstoggle = AUDIOPASSTOGGLE
# print "audiopass toggle is " + str(self.audiopasstoggle)
self.videopasstoggle = VIDEOPASSTOGGLE
@@ -74,6 +73,7 @@ class Transcoder(gobject.GObject):
self.fratenum = FRATENUM
self.frateden = FRATEDEN
self.achannels = ACHANNELS
+ print "transcoder_engine achannels is " + str(self.achannels)
self.blackborderflag = False
self.multipass = MULTIPASS
self.passcounter = PASSCOUNTER
@@ -320,8 +320,8 @@ class Transcoder(gobject.GObject):
return False
return True
- def OnDynamicPad(self, dbin, src_pad):
- c = src_pad.get_caps().to_string()
+ def OnDynamicPad(self, dbin, sink_pad):
+ c = sink_pad.get_caps().to_string()
if c.startswith("audio/"):
if self.stoptoggle==True:
bus = self.pipeline.get_bus()
@@ -343,7 +343,7 @@ class Transcoder(gobject.GObject):
self.audioencoder.load_preset(x)
self.audioresampler = gst.element_factory_make("audioresample")
self.pipeline.add(self.audioresampler)
- src_pad.link(self.audioconverter.get_pad("sink"))
+ sink_pad.link(self.audioconverter.get_pad("sink"))
# Check if we are using a preset
if self.preset != "nopreset":
@@ -379,8 +379,8 @@ class Transcoder(gobject.GObject):
# No parser if output is framed
parsedcaps = gst.caps_from_string(self.audiocaps+",parsed=true")
framedcaps = gst.caps_from_string(self.audiocaps+",framed=true")
- if (src_pad.get_caps().is_subset(parsedcaps)) or (src_pad.get_caps().is_subset(framedcaps)):
- src_pad.link(self.multiqueueaudiosinkpad)
+ if (sink_pad.get_caps().is_subset(parsedcaps)) or (sink_pad.get_caps().is_subset(framedcaps)):
+ sink_pad.link(self.multiqueueaudiosinkpad)
self.multiqueueaudiosrcpad.link(self.containermuxeraudiosinkpad)
self.gstmultiqueue.set_state(gst.STATE_PAUSED)
else:
@@ -410,7 +410,7 @@ class Transcoder(gobject.GObject):
self.pipeline.add(self.audioparse)
# print "audiopad " + str(self.multiqueueaudiosinkpad)
- src_pad.link(self.audioparse.get_static_pad("sink"))
+ sink_pad.link(self.audioparse.get_static_pad("sink"))
self.audioparse.get_static_pad("src").link(self.multiqueueaudiosinkpad)
self.multiqueueaudiosrcpad.link(self.containermuxeraudiosinkpad)
self.audioparse.set_state(gst.STATE_PAUSED)
@@ -422,15 +422,6 @@ class Transcoder(gobject.GObject):
bus.post(gst.message_new_application(self.pipeline, gst.Structure('STOP TRANSCODER')))
return
if self.videopasstoggle == False:
- # check for interlaced media and create deinterlace element if needed
- if self.vsrccaps[0]['interlaced']:
- print "content is interlaced"
- self.deinterlacer = gst.element_factory_make("deinterlace", "deinterlace")
- self.pipeline.add(self.deinterlacer)
-
- self.colorspaceconverter2 = gst.element_factory_make("ffmpegcolorspace")
- self.pipeline.add(self.colorspaceconverter2)
-
# print "Got an video cap"
self.colorspaceconverter = gst.element_factory_make("ffmpegcolorspace")
self.pipeline.add(self.colorspaceconverter)
@@ -499,16 +490,11 @@ class Transcoder(gobject.GObject):
elif (self.multipass != False) and (self.passcounter == int(0)):
self.videoencoder.load_preset("Pass " + str(self.multipass))
self.videoencoder.set_property("multipass-cache-file", self.cachefile)
-
- src_pad.link(self.colorspaceconverter.get_pad("sink"))
+
+ # needs to be moved to before multiqueu ? if (self.multipass == False) or (self.passcounter == int(0)):
+ sink_pad.link(self.colorspaceconverter.get_pad("sink"))
if self.preset != "nopreset":
- if self.vsrccaps[0]['interlaced']:
- print "content is interlaced final"
- self.colorspaceconverter.link(self.deinterlacer)
- self.deinterlacer.link(self.colorspaceconverter2)
- self.colorspaceconverter2.link(self.videoflipper)
- else:
- self.colorspaceconverter.link(self.videoflipper)
+ self.colorspaceconverter.link(self.videoflipper)
self.videoflipper.link(self.videorate)
self.videorate.link(self.videoscaler)
self.videoscaler.link(self.vcapsfilter)
@@ -520,13 +506,7 @@ class Transcoder(gobject.GObject):
self.vcapsfilter.link(self.colorspaceconvert2)
self.colorspaceconvert2.link(self.videoencoder)
else:
- if self.vsrccaps[0]['interlaced']:
- print "content is interlaced final"
- self.colorspaceconverter.link(self.deinterlacer)
- self.deinterlacer.link(self.colorspaceconverter2)
- self.colorspaceconverter2.link(self.videoflipper)
- else:
- self.colorspaceconverter.link(self.videoflipper)
+ self.colorspaceconverter.link(self.videoflipper)
self.videoflipper.link(self.videoencoder)
self.videoencoder.link(self.vcapsfilter2)
if (self.multipass == False) or (self.passcounter == int(0)):
@@ -534,9 +514,7 @@ class Transcoder(gobject.GObject):
else:
self.vcapsfilter2.link(self.multipassfakesink)
self.colorspaceconverter.set_state(gst.STATE_PAUSED)
- self.videoflipper.set_state(gst.STATE_PAUSED)
- self.deinterlacer.set_state(gst.STATE_PAUSED)
- self.colorspaceconverter2.set_state(gst.STATE_PAUSED)
+ self.videoflipper.set_state(gst.STATE_PAUSED)
if self.preset != "nopreset":
self.videoscaler.set_state(gst.STATE_PAUSED)
self.videorate.set_state(gst.STATE_PAUSED)
@@ -556,8 +534,8 @@ class Transcoder(gobject.GObject):
# Code for passthrough mode
vparsedcaps = gst.caps_from_string(self.videocaps+",parsed=true")
vframedcaps = gst.caps_from_string(self.videocaps+",framed=true")
- if (src_pad.get_caps().is_subset(vparsedcaps)) or (src_pad.get_caps().is_subset(vframedcaps)):
- src_pad.link(self.multiqueuevideosinkpad)
+ if (sink_pad.get_caps().is_subset(vparsedcaps)) or (sink_pad.get_caps().is_subset(vframedcaps)):
+ sink_pad.link(self.multiqueuevideosinkpad)
self.multiqueuevideosrcpad.link(self.containermuxervideosinkpad)
self.gstmultiqueue.set_state(gst.STATE_PAUSED)
else:
@@ -588,7 +566,7 @@ class Transcoder(gobject.GObject):
self.videoparse = gst.element_factory_make(self.vparserelement)
self.pipeline.add(self.videoparse)
- src_pad.link(self.videoparse.get_static_pad("sink"))
+ sink_pad.link(self.videoparse.get_static_pad("sink"))
self.videoparse.get_static_pad("src").link(self.multiqueuevideosinkpad)
self.videoparse.set_state(gst.STATE_PAUSED)
self.multiqueuevideosrcpad.link(self.containermuxervideosinkpad)
diff --git a/src/transmageddon.py b/src/transmageddon.py
index 9937573..59bef5b 100644
--- a/src/transmageddon.py
+++ b/src/transmageddon.py
@@ -507,7 +507,7 @@ class TransmageddonUI:
audiocodec = gst.Caps.to_string(self.asourcecaps)
container = self.builder.get_object ("containerchoice").get_active_text ()
self._transcoder = transcoder_engine.Transcoder(filechoice, self.filename, self.videodirectory, container,
- audiocodec, videocodec, self.vsourcecaps, self.devicename,
+ audiocodec, videocodec, self.devicename,
vheight, vwidth, ratenum, ratednom, achannels,
self.multipass, self.passcounter, self.outputfilename,
self.timestamp, self.rotationvalue, self.audiopasstoggle, self.videopasstoggle)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]