[gst-devel] repeated caps renegotiation

Stefan Kost ensonic at hora-obscura.de
Mon Jun 9 22:13:21 CEST 2008


I am still fighting with this. Some more info below

Stefan Kost schrieb:
> hi,
> 
> I have some bigger songs in buzztard that take ages to preroll. They 
> also have lots of caps stuff top in the oprofile output:
> 11953    12.2453  g_type_is_a
> 10067    10.3132  gst_value_get_compare_func
> 7275      7.4529  gst_value_subtract
> 4410      4.5178  gst_value_init_and_copy
> 3446      3.5303  gst_value_intersect
> ...
> 
> If I run it with
> GST_DEBUG="*:2,GST_CAPS*:4,GST_PAD*:4"
> and then grep for "caps changed from" I get lots of
> a) NULL to xxx changes
> b) xxx to xxx changes (same caps content but different instance)
> 
> Now I am wondering why e.g. tee uses gst_pad_alloc_buffer() and not 
> gst_pad_alloc_buffer_and_set_caps(). The first causes the repeated 
> renegotiation, as the caps of the pad are NULL and are not being set 
> (case a)). Or does it indicate a problem in the first place that tee.src 
> has NULL caps?
> 
> Regarding case b), I haven't understood yet, why the same caps are set 
> several times.

I tested the negotiation stuff with older gstreamer releases, it seems to be not 
a regression. its just slow and the test cases that I can play are getting more 
complex.

now one thing I am wondering is this:
0:00:16.066445699 13950  0x80c6008 INFO               bt-core 
song.c:711:bt_song_play: prepare playback
0:00:18.528381148 13950  0x80c6008 INFO               bt-core 
song.c:726:bt_song_play: ->PAUSED needs async wait
0:00:18.529629060 13950  0x80c6008 INFO               bt-core 
song.c:459:on_song_state_changed: state change on the bin: NULL -> READY
0:00:20.468663845 13950  0x80c6008 INFO               bt-core 
song.c:459:on_song_state_changed: state change on the bin: READY -> PAUSED
0:00:20.478722067 13950  0x80c6008 INFO               bt-core 
song.c:482:on_song_state_changed: ->PLAYING needs async wait
0:00:20.478836341 13950  0x80c6008 INFO               bt-core 
song.c:459:on_song_state_changed: state change on the bin: PAUSED -> PAUSED
0:00:20.492614585 13950  0x80c6008 INFO               bt-core 
song.c:459:on_song_state_changed: state change on the bin: PAUSED -> PAUSED
0:00:20.499397583 13950  0x80c6008 INFO               bt-core 
song.c:459:on_song_state_changed: state change on the bin: PAUSED -> PLAYING
0:00:20.499442878 13950  0x80c6008 INFO               bt-core 
song.c:489:on_song_state_changed: playback started

why do I get state-changed messages like : PAUSED -> PAUSED and why twice?

Stefan

> 
> 
> Stefan
> 
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel





More information about the gstreamer-devel mailing list