Problem porting a gst plugin from 0.10 to 1.2.0: pipeline in GST_STATE_PLAYING state, but no audio.

Lei Miao leimiao09 at gmail.com
Wed Mar 26 07:51:39 PDT 2014


I am providing more details. It looks like that after the pipeline is set
to "GST_STATE_PAUSED" state, "gst_base_src_loop" in gstbasesrc.c stopped
being called. And it doesn't come back after the pipeline is in "PLAYING"
state. "gst_base_src_loop" is initiated by gst_pad_start_task(), but I
don't see either gst_pad_pause_task() or gst_pad_stop_task() called. Under
what other circumstances will the task stop calling "gst_base_src_loop"?

Note that souphttpsrc's activitiy also stopped when "gst_base_src_loop"
stopped being called.

I am attaching some debugging messages below.

Regards,

Lei

0:00:04.998506599  8962  0x91fb830 LOG              souphttpsrc
gstsouphttpsrc.c:1252:gst_soup_http_src_do_request:<radsrc> Running request
for method: GET
0:00:04.998541527  8962  0x91fb830 DEBUG            souphttpsrc
gstsouphttpsrc.c:1024:gst_soup_http_src_chunk_allocator:<radsrc> alloc 4096
bytes <= 4294967295
0:00:04.998579523  8962  0x91fb830 DEBUG            souphttpsrc
gstsouphttpsrc.c:1065:gst_soup_http_src_got_chunk_cb:<radsrc> got chunk of
121 bytes
0:00:04.998612366  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2247:gst_base_src_do_sync:<radsrc> we have no clock
0:00:04.998630439  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2451:gst_base_src_get_range:<radsrc> buffer ok
0:00:04.998651368  8962  0x91fb830 LOG                  basesrc
gstbasesrc.c:2663:gst_base_src_loop:<radsrc> next_ts 0:00:00.000019577 size
4096
0:00:04.998672255  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2290:gst_base_src_update_length:<radsrc> reading offset 19577,
length 4096, size -1, segment.stop -1, maxsize -1
0:00:04.998692216  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2388:gst_base_src_get_range:<radsrc> calling create offset
19577 length 4096, time 0
0:00:04.998711542  8962  0x91fb830 LOG              souphttpsrc
gstsouphttpsrc.c:1252:gst_soup_http_src_do_request:<radsrc> Running request
for method: GET
0:00:04.998741419  8962  0x91fb830 DEBUG            souphttpsrc
gstsouphttpsrc.c:1024:gst_soup_http_src_chunk_allocator:<radsrc> alloc 4096
bytes <= 4294967295
0:00:04.998800031  8962  0x91fb830 DEBUG            souphttpsrc
gstsouphttpsrc.c:1065:gst_soup_http_src_got_chunk_cb:<radsrc> got chunk of
903 bytes
0:00:04.998834142  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2247:gst_base_src_do_sync:<radsrc> we have no clock
0:00:04.998852145  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2451:gst_base_src_get_range:<radsrc> buffer ok
0:00:04.998874038  8962  0x91fb830 LOG                  basesrc
gstbasesrc.c:2663:gst_base_src_loop:<radsrc> next_ts 0:00:00.000020480 size
4096
0:00:04.998895617  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2290:gst_base_src_update_length:<radsrc> reading offset 20480,
length 4096, size -1, segment.stop -1, maxsize -1
0:00:04.998916734  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2388:gst_base_src_get_range:<radsrc> calling create offset
20480 length 4096, time 0
0:00:04.998935617  8962  0x91fb830 LOG              souphttpsrc
gstsouphttpsrc.c:1252:gst_soup_http_src_do_request:<radsrc> Running request
for method: GET
0:00:04.998947902  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<rheasrc> handle event
reconfigure event: 0xae612ee0, time 99:99:99.999999999, seq-num 112, (NULL)
0:00:04.998967444  8962  0x91fb830 DEBUG            souphttpsrc
gstsouphttpsrc.c:1024:gst_soup_http_src_chunk_allocator:<radsrc> alloc 4096
bytes <= 4294967295
0:00:04.998972891  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<radsrc> handle event
reconfigure event: 0xae612ee0, time 99:99:99.999999999, seq-num 112, (NULL)
0:00:04.999013485  8962  0x91fb830 DEBUG            souphttpsrc
gstsouphttpsrc.c:1065:gst_soup_http_src_got_chunk_cb:<radsrc> got chunk of
121 bytes
0:00:04.999045634  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2247:gst_base_src_do_sync:<radsrc> we have no clock
0:00:04.999063940  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:2451:gst_base_src_get_range:<radsrc> buffer ok
0:00:04.999084627  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:3151:gst_base_src_negotiate:<radsrc> starting negotiation
0:00:04.999108442  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:1248:gst_base_src_default_query:<radsrc> query caps returns 1
0:00:04.999130342  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:3081:gst_base_src_default_negotiate:<radsrc> caps of src: ANY
0:00:04.999148551  8962  0x91fb830 DEBUG                basesrc
gstbasesrc.c:3127:gst_base_src_default_negotiate:<radsrc> no negotiation
needed
0:00:05.000215382  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<rheasrc> handle event
reconfigure event: 0xae612f18, time 99:99:99.999999999, seq-num 117, (NULL)
0:00:05.000246042  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<radsrc> handle event
reconfigure event: 0xae612f18, time 99:99:99.999999999, seq-num 117, (NULL)
0:00:05.000293225  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<rheasrc> handle event
reconfigure event: 0xae612f50, time 99:99:99.999999999, seq-num 122, (NULL)
0:00:05.000309605  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<radsrc> handle event
reconfigure event: 0xae612f50, time 99:99:99.999999999, seq-num 122, (NULL)
0:00:05.002367895  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<rheasrc> handle event
reconfigure event: 0xae612f88, time 99:99:99.999999999, seq-num 127, (NULL)
0:00:05.002400398  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<radsrc> handle event
reconfigure event: 0xae612f88, time 99:99:99.999999999, seq-num 127, (NULL)
0:00:05.002523781  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1011:gst_base_src_default_query:<rheasrc> duration query in
format bytes
0:00:05.002540197  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:2290:gst_base_src_update_length:<rheasrc> reading offset 0,
length 0, size 9898556, segment.stop -1, maxsize 9898556
0:00:05.002559563  8962  0x91fba30 LOG                  basesrc
gstbasesrc.c:1036:gst_base_src_default_query:<rheasrc> duration 9898556,
format bytes
0:00:05.002572706  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1248:gst_base_src_default_query:<rheasrc> query duration
returns 1
0:00:05.002611822  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1248:gst_base_src_default_query:<rheasrc> query seeking
returns 1
0:00:05.002637542  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1011:gst_base_src_default_query:<rheasrc> duration query in
format time
0:00:05.002648676  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:2290:gst_base_src_update_length:<rheasrc> reading offset 0,
length 0, size 9898556, segment.stop -1, maxsize 9898556
0:00:05.002661903  8962  0x91fba30 LOG                  basesrc
gstbasesrc.c:1036:gst_base_src_default_query:<rheasrc> duration 9898556,
format bytes
0:00:05.002676227  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1248:gst_base_src_default_query:<rheasrc> query convert
returns 0
0:00:05.002688619  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1248:gst_base_src_default_query:<rheasrc> query duration
returns 0
0:00:05.002702194  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1011:gst_base_src_default_query:<radsrc> duration query in
format time
0:00:05.002712775  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:2290:gst_base_src_update_length:<radsrc> reading offset 0,
length 0, size -1, segment.stop -1, maxsize -1
0:00:05.002725089  8962  0x91fba30 LOG                  basesrc
gstbasesrc.c:1036:gst_base_src_default_query:<radsrc> duration -1, format
bytes
0:00:05.002736267  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1248:gst_base_src_default_query:<radsrc> query duration
returns 1
0:00:05.003000748  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<rheasrc> handle event
reconfigure event: 0xae613120, time 99:99:99.999999999, seq-num 140, (NULL)
0:00:05.003029170  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<radsrc> handle event
reconfigure event: 0xae613120, time 99:99:99.999999999, seq-num 140, (NULL)
0:00:05.003244157  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<rheasrc> handle event
reconfigure event: 0xae613158, time 99:99:99.999999999, seq-num 145, (NULL)
0:00:05.003272560  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<radsrc> handle event
reconfigure event: 0xae613158, time 99:99:99.999999999, seq-num 145, (NULL)
0:00:05.003468077  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<rheasrc> handle event
reconfigure event: 0xae613210, time 99:99:99.999999999, seq-num 151, (NULL)
0:00:05.003495689  8962  0x91fba30 DEBUG                basesrc
gstbasesrc.c:1928:gst_base_src_default_event:<radsrc> handle event
reconfigure event: 0xae613210, time 99:99:99.999999999, seq-num 151, (NULL)


On Wed, Mar 19, 2014 at 4:42 PM, Lei Miao <leimiao09 at gmail.com> wrote:

> Hi,
>
> I am having troubles to port a plugin from 0.10 to 1.2.0. Basically, this
> plugin decrypts audio data fetched by souphttpsrc, and it is working well
> in 0.10.
>
> Currently in 1.2.0, I am able to add a playbin and a sink to a pipeline,
> and all necessary elements seem to be identified correctly. I am also able
> to set the pipeline's state to "GST_STATE_PAUSED" and then to
> "GST_STATE_PLAYING". However, there is no audio output in the
> GST_STATE_PLAYING state. I have tried to examine the debug outputs. Here
> are the findings:
>
> 1. No GstBuffer activities when the pipeline is in GST_STATE_PLAYING
> state. There is some GstBuffer activities before that, and souphttpsrc is
> able to fetch some data before entering GST_STATE_PLAYING state too.
>
> 2. I am seeing query activities when the pipeline is in GST_STATE_PLAYING
> state.
>
> 3. The application cannot get duration and position:
> "playbin gstplaybin2.c:2654:gst_play_bin_query:<playbin> Taking cached
> duration because of pending group switch: 1"
>
> 4. I am seeing the following message when the pipeline's state is changed
> to GST_STATE_PLAYING:
> "gst_segment_to_stream_time: assertion 'segment->format == format' failed"
>
> 5. "seekable" query result is false. It used to be true in 0.10.
>
> Does anybody know what might be wrong? Any guesses are welcome. I can post
> more specific information if needed.
>
> Regards,
>
> LM
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140326/f2248737/attachment-0001.html>


More information about the gstreamer-devel mailing list