Package: python-gst0.10
Version: 0.10.16-1
Severity: normal

Hi,

I am a complete beginner in gst programming, but I believe a python module
should not segfault, thus the bugreport.

My small Ogg/Theora encoder attempt is attached.

And here is the backtrace. Feel free to ask for more info.

Cheers,

Alex
--
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7337b90 (LWP 12844)]
0x08115fdc in PyFrame_New (tstate=0x0, code=0xb7db1608, globals=0xb7e05acc,
    locals=0x0) at ../Objects/frameobject.c:559
559 ../Objects/frameobject.c: Aucun fichier ou dossier de ce type.
    in ../Objects/frameobject.c
(gdb) bt
#0  0x08115fdc in PyFrame_New (tstate=0x0, code=0xb7db1608,
    globals=0xb7e05acc, locals=0x0) at ../Objects/frameobject.c:559
#1  0x080cfaa9 in PyEval_EvalCodeEx (co=0xb7db1608, globals=0xb7e05acc,
    locals=0x0, args=0xb7dc45d8, argcount=4, kws=0x0, kwcount=0, defs=0x0,
    defcount=0, closure=0x0) at ../Python/ceval.c:2670
#2  0x08116b91 in function_call (func=0xb75d079c, arg=0xb7dc45cc, kw=0x0)
    at ../Objects/funcobject.c:517
#3  0x0805d4b7 in PyObject_Call (func=0x0, arg=0xb7dc45cc, kw=0x0)
    at ../Objects/abstract.c:1861
#4  0x0806369f in instancemethod_call (func=0xb75d079c, arg=0xb7dc45cc, kw=0x0)
    at ../Objects/classobject.c:2519
#5  0x0805d4b7 in PyObject_Call (func=0x0, arg=0xb75dc0f4, kw=0x0)
    at ../Objects/abstract.c:1861
#6  0x080c88fc in PyEval_CallObjectWithKeywords (func=0xb7dac11c,
    arg=0xb75dc0f4, kw=0x0) at ../Python/ceval.c:3481
#7  0x0805d640 in PyObject_CallObject (o=0xb7dac11c, a=0xb75dc0f4)
    at ../Objects/abstract.c:1852
#8  0xb766313e in ?? ()
   from /usr/lib/pymodules/python2.5/gtk-2.0/gobject/_gobject.so
#9  0xb77d2b63 in IA__g_closure_invoke (closure=0x83608dc, return_value=0x0,
    n_param_values=3, param_values=0x83608a0, invocation_hint=0xb733674c)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gclosure.c:767
#10 0xb77e6b8f in signal_emit_unlocked_R (node=0x832bfa0, detail=0,
    instance=0x83271c0, emission_return=0x0, instance_and_params=0x83608a0)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gsignal.c:3247
#11 0xb77e7fd9 in IA__g_signal_emit_valist (instance=0x83271c0, signal_id=25,
    detail=0, var_args=0xb73368f4 "P\223\66\b\4")
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gsignal.c:2980
#12 0xb77e8436 in IA__g_signal_emit (instance=0x83271c0, signal_id=25,
    detail=0)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gsignal.c:3037
#13 0xb7636779 in close_pad_link (element=0x824b5a0, pad=0x8366010,
    caps=0x826fa40, decode_bin=0x83271c0, more=1) at gstdecodebin.c:936
#14 0xb7637480 in close_link (element=0x836e060, pad=0x8347cc0,
    caps=0x827b980, decode_bin=0x83271c0, more=1) at gstdecodebin.c:1774
#15 try_to_link_1 (element=0x836e060, pad=0x8347cc0, caps=0x827b980,
    decode_bin=0x83271c0, more=1) at gstdecodebin.c:1184
#16 close_pad_link (element=0x836e060, pad=0x8347cc0, caps=0x827b980,
    decode_bin=0x83271c0, more=1) at gstdecodebin.c:959
#17 0xb763803d in new_pad (element=0x836e060, pad=0x8347cc0, dynamic=0x835e370)
    at gstdecodebin.c:1505
#18 0xb77df6cc in IA__g_cclosure_marshal_VOID__OBJECT (closure=0x83a97a0,
    return_value=0x0, n_param_values=2, param_values=0x8245ca0,
    invocation_hint=0xb7336c4c, marshal_data=0xb7637ec0)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gmarshal.c:636
#19 0xb77d2b63 in IA__g_closure_invoke (closure=0x83a97a0, return_value=0x0,
    n_param_values=2, param_values=0x8245ca0, invocation_hint=0xb7336c4c)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gclosure.c:767
#20 0xb77e6b8f in signal_emit_unlocked_R (node=0x82460c8, detail=0,
    instance=0x836e060, emission_return=0x0, instance_and_params=0x8245ca0)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gsignal.c:3247
#21 0xb77e7fd9 in IA__g_signal_emit_valist (instance=0x836e060, signal_id=11,
    detail=0, var_args=0xb7336df0 "\300|4\b")
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gsignal.c:2980
#22 0xb77e8436 in IA__g_signal_emit (instance=0x836e060, signal_id=11,
    detail=0)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/gobject/gsignal.c:3037
#23 0xb784341c in gst_element_add_pad (element=0x836e060, pad=0x8347cc0)
    at gstelement.c:772
#24 0xb7355216 in gst_qtdemux_add_stream (qtdemux=0x836e060, stream=0x836de00,
    list=0x8370650) at qtdemux.c:3431
#25 0xb735766d in qtdemux_parse_trak (qtdemux=0x836e060, trak=0x83706c8)
    at qtdemux.c:4573
#26 0xb735bd82 in qtdemux_parse_tree (qtdemux=0x836e060) at qtdemux.c:5393
#27 0xb7364d53 in gst_qtdemux_loop_state_header (pad=0x83478d8)
    at qtdemux.c:1514
#28 gst_qtdemux_loop (pad=0x83478d8) at qtdemux.c:2368
#29 0xb78815b3 in gst_task_func (task=0x835f840) at gsttask.c:234
#30 0xb7882f27 in default_func (tdata=0x83a9540, pool=0x8248c10)
    at gsttaskpool.c:70
#31 0xb7764d06 in g_thread_pool_thread_proxy (data=0x82432a0)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/glib/gthreadpool.c:265
#32 0xb77636bf in g_thread_create_proxy (data=0x8370490)
    at 
/build/buildd-glib2.0_2.20.5-1-i386-mDnYKw/glib2.0-2.20.5/glib/gthread.c:635
#33 0xb7fc14b5 in start_thread () from /lib/i686/cmov/libpthread.so.0
#34 0xb7f0ea5e in clone () from /lib/i686/cmov/libc.so.6
--


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.30.4-vgn-b1vp (PREEMPT)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages python-gst0.10 depends on:
ii  libc6                     2.9-26         GNU C Library: Shared libraries
ii  libglib2.0-0              2.20.5-1       The GLib library of C routines
ii  libgstreamer-plugins-base 0.10.24-1      GStreamer libraries from the "base
ii  libgstreamer0.10-0        0.10.24-1      Core GStreamer libraries and eleme
ii  libxml2                   2.7.3.dfsg-2.1 GNOME XML library
ii  python                    2.5.4-2        An interactive high-level object-o
ii  python-central            0.6.11         register and build utility for Pyt
ii  python-gobject            2.18.0-1       Python bindings for the GObject li
ii  python-libxml2            2.7.3.dfsg-2.1 Python bindings for the GNOME XML
ii  python2.5                 2.5.4-1        An interactive high-level object-o

python-gst0.10 recommends no packages.

Versions of packages python-gst0.10 suggests:
ii  python-gst0.10-dbg            0.10.16-1  generic media-playing framework (P
pn  python-gst0.10-dev            <none>     (no description available)

-- no debconf information
# Lazygal, a lazy satic web gallery generator.
# Copyright (C) 2009 Alexandre Rossi <alexandre.ro...@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


import threading
try:
    import pygst
    pygst.require('0.10')
    import gst
except ImportError:
    HAVE_GST = True
else:
    HAVE_GST = False


class OggTheoraConverter(object):

    def __init__(self):
        self.end_of_stream = threading.Event()

    def convert(self, input_file, output_file):
        self.pipeline = gst.Pipeline("Convert Pipeline")

        self.filesrc = gst.element_factory_make("filesrc", "source")
        self.filesrc.set_property("location", input_file)
        self.pipeline.add(self.filesrc)

        self.decode = gst.element_factory_make("decodebin", "decode")
        self.decode.connect("new-decoded-pad", self.on_dynamic_pad)
        self.pipeline.add(self.decode)
        self.filesrc.link(self.decode)

        self.convert = gst.element_factory_make("audioconvert", "convert")
        self.pipeline.add(self.convert)

        self.vorbisenc = gst.element_factory_make("vorbisenc", "vorbisenc")
        self.pipeline.add(self.vorbisenc)
        self.convert.link(self.vorbisenc)

        self.oggmux = gst.element_factory_make("oggmux", "oggmux")
        self.pipeline.add(self.oggmux)
        self.vorbisenc.link(self.oggmux)

        self.sink = gst.element_factory_make("filesink", "sink")
        self.sink.set_property("location", output_file)
        self.pipeline.add(self.sink)
        self.oggmux.link(self.sink)

        bus = self.pipeline.get_bus()
        bus.add_signal_watch()
        bus.connect("message::eos", self.on_end_of_stream)

        self.end_of_stream.clear()
        self.pipeline.set_state(gst.STATE_PLAYING)
        self.end_of_stream.wait()

    def on_dynamic_pad(self, dbin, pad, islast):
        pad.link(self.convert.get_pad("sink"))

    def on_end_of_stream(self, bus, message):
        self.end_of_stream.set()


if __name__ == '__main__':
    import sys, os
    converter = OggTheoraConverter()
    file_path = sys.argv[1]
    fn, ext = os.path.splitext(file_path)
    ogg_path = fn + '.ogg'
    converter.convert(file_path, ogg_path)


# vim: ts=4 sw=4 expandtab
_______________________________________________
Pkg-gstreamer-maintainers mailing list
Pkg-gstreamer-maintainers@lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/pkg-gstreamer-maintainers

Reply via email to