[pitivi] PictureSourceFactory, add ffmpegcolorspace after imagefreeze.
- From: Edward Hervey <edwardrv src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] PictureSourceFactory, add ffmpegcolorspace after imagefreeze.
- Date: Mon, 22 Feb 2010 06:44:16 +0000 (UTC)
commit be3922e07f05770c379d3a13fbe539f67f83486a
Author: Alessandro Decina <alessandro d gmail com>
Date: Sun Feb 21 15:30:39 2010 +0100
PictureSourceFactory, add ffmpegcolorspace after imagefreeze.
Fixes not-negotiated errors with some pngs.
pitivi/elements/imagefreeze.py | 4 ++--
pitivi/factories/base.py | 10 +++++++++-
pitivi/factories/file.py | 6 ++++--
3 files changed, 15 insertions(+), 5 deletions(-)
---
diff --git a/pitivi/elements/imagefreeze.py b/pitivi/elements/imagefreeze.py
index 6e6c232..3b3f5ab 100644
--- a/pitivi/elements/imagefreeze.py
+++ b/pitivi/elements/imagefreeze.py
@@ -56,11 +56,11 @@ class ImageFreeze(gst.Element):
_srctemplate = gst.PadTemplate("src",
gst.PAD_SRC,
gst.PAD_ALWAYS,
- gst.caps_new_any())
+ gst.Caps("video/x-raw-rgb; video/x-raw-yuv"))
_sinktemplate = gst.PadTemplate("sink",
gst.PAD_SINK,
gst.PAD_ALWAYS,
- gst.caps_new_any())
+ gst.Caps("video/x-raw-rgb; video/x-raw-yuv"))
__gsttemplates__ = (_srctemplate, _sinktemplate)
def __init__(self, *args, **kwargs):
diff --git a/pitivi/factories/base.py b/pitivi/factories/base.py
index 3ddbe9f..abc3285 100644
--- a/pitivi/factories/base.py
+++ b/pitivi/factories/base.py
@@ -385,7 +385,8 @@ class SourceFactory(ObjectFactory):
# if we have an ayuv stream we don't want any colorspace
# converter.
- if not output_stream.has_alpha():
+ """
+ if not output_stream.has_alpha():
b.csp = gst.element_factory_make("ffmpegcolorspace",
"internal-colorspace")
elif output_stream.videotype == 'video/x-raw-rgb':
@@ -393,6 +394,13 @@ class SourceFactory(ObjectFactory):
"internal-alphacolor")
else:
b.csp = gst.element_factory_make("identity")
+ """
+ b.csp = gst.element_factory_make("ffmpegcolorspace",
+ "internal-colorspace")
+ def probe_cb(pad, buf):
+ #gst.debug_set_threshold_for_name("*", 5)
+ return True
+ b.csp.get_pad('src').add_buffer_probe(probe_cb)
b.alpha = gst.element_factory_make("alpha", "internal-alpha")
diff --git a/pitivi/factories/file.py b/pitivi/factories/file.py
index 6d8fed9..c79db7d 100644
--- a/pitivi/factories/file.py
+++ b/pitivi/factories/file.py
@@ -88,12 +88,14 @@ class PictureFileSourceFactory(FileSourceFactory):
scale.props.method = 2
freeze = ImageFreeze()
- res.add(scale, freeze)
+ csp = gst.element_factory_make("ffmpegcolorspace")
+ res.add(scale, freeze, csp)
scale.link(freeze)
+ freeze.link(csp)
self.debug("Chaining up with %r", res)
- src_pad = freeze.get_pad("src")
+ src_pad = csp.get_pad("src")
sink_pad = scale.get_pad("sink")
src_ghost = gst.GhostPad("src", src_pad)
sink_ghost = gst.GhostPad("sink", sink_pad)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]