- Traceback (most recent call last):
- File "/home/max/Desktop/flumotion-porting/flumotion/cache/component/9d1e41022a6588631fd0de57ffb5ddee/flumotion/component/feedcomponent.py", line 965, in handle_reset_event
- if gstreamer.event_is_flumotion_reset(event):
- File "/home/max/Desktop/flumotion-porting/flumotion/flumotion/common/gstreamer.py", line 176, in event_is_flumotion_reset
- if event.get_structure() is None:
- AttributeError: 'PadProbeInfo' object has no attribute 'get_structure'
Here event is a PadProbeInfo:
proof: http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstPadProbeCallback
and then it's the same type here:
but need to be GstCaps so i can do 'GstCaps.get_structure' and then on the structure use '.get_name'
Another issue:
- Traceback (most recent call last):
- File "/home/max/Desktop/flumotion-porting/flumotion/flumotion/common/gstreamer.py", line 51, in verbose_deep_notify_cb
- value = orig.get_property(pspec.name)
- AttributeError: 'NoneType' object has no attribute 'name'
Tried printing pspec, the result was a printed None
Where does it go wrong?
Clues (everywhere i could find pspec):
https://github.com/bananadine/flumotion/blob/master/flumotion/common/gstreamer.py#L47
https://github.com/bananadine/flumotion/blob/master/flumotion/component/feedcomponent010.py#L413
https://github.com/bananadine/flumotion/blob/master/flumotion/component/producers/videotest/videotest.py#L90
https://github.com/bananadine/flumotion/blob/master/flumotion/common/pygobject.py#L38
On the pspec issue you need a longer trace.
ReplyDeleteThe trace you have says that None was passed to verbose_deep_notify_cb https://github.com/bananadine/flumotion/blob/master/flumotion/common/gstreamer.py#L47 .
You verified this by printing pspec out and getting None.
To debug you need the fuller stacktrace. Flumotion has been interesting so far in that it swallows exceptions.
Once you find where verbose_deep_notify_cb is called (I expect as a callback...) you'll be able to see what is passed to it, and what is for some reason coming back as None.
How do i get a fuller stacktrace? I tried strace and i found this in the output:
Delete4718 write(2, "value = orig.get_property(pspec."..., 38
4739 close(13
4735 rt_sigaction(SIGSEGV, {0xb4a37200, [], 0},
4739 <... close resumed> ) = 0
4735 <... rt_sigaction resumed> {SIG_DFL, [], 0}, 8) = 0
4718 <... write resumed> ) = 38
4717 <... open resumed> ) = -1 ENOENT (No such file or directory)
4718 close(17
4735 rt_sigaction(SIGSEGV, {SIG_DFL, [], 0},
and this
4717 open("/home/max/Desktop/flumotion-porting/flumotion/cache/base-component-http/fb9644667440997eb6bfe913f446ab7e/flumotion/component/flumotion.py", O_RDONLY|O_LARGEFILE
4738 write(2, "value = orig.get_property(pspec."..., 38
4717 <... open resumed> ) = -1 ENOENT (No such file or directory)
4738 <... write resumed> ) = 38
4714 <... stat64 resumed> 0xbf97726c) = -1 ENOENT (No such file or directory)
4738 close(17