--- Begin Message ---
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 <[email protected]>
#
# 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
--- End Message ---