GNOME Bugzilla – Bug 384140
[neonhttpsrc] id3demux autoplug loop streaming mp3 with ID3v2 tag
Last modified: 2006-12-12 12:46:41 UTC
Please describe the problem: the command used is $ gst-launch-0.10 playbin uri=http://host/file Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Caught interrupt -- handling interrupt. Interrupt: Setting pipeline to PAUSED ... ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... From my Python app: Playing: http://192.168.213.200:30020/QejmeqSHLozklDpXBycN/12555 play <-- on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING from player at 0x834e510> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PAUSED from test at 0x834e710> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING from fakesink at 0x834e750> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING from typefind at 0x834e790> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PAUSED from decodebin0 at 0x834e818> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING from typefind at 0x834e858> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PAUSED from source at 0x834e898> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING from source at 0x834e8d8> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING from id3demux0 at 0x834ea98> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING from id3demux0 at 0x834ead8> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING from id3demux1 at 0x834eb18> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING from id3demux1 at 0x834eb58> on_message <gst.Message taglist, artist=(string)"Jimmy\ Somerville\ -\ Bronski\ Beat\ And\ The\ Communards", album=(string)"The\ very\ Best\ Of\ Jimmy\ Somerville\ -\ Bronski\ Beat\ And\ The\ Communards" from id3demux0 at 0x834eb98> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING from id3demux2 at 0x840b800> on_message <gst.Message GstMessageState, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING from id3demux2 at 0x840b840> on_message <gst.Message taglist, artist=(string)"Jimmy\ Somerville\ -\ Bronski\ Beat\ And\ The\ Communards", album=(string)"The\ very\ Best\ Of\ Jimmy\ Somerville\ -\ Bronski\ Beat\ And\ The\ Communards" from id3demux1 at 0x840b880> I'll attach a debug log from GST_DEBUG_NO_COLOR=1 GST_DEBUG=*:5 gst-launch-0.10 playbin uri=http://192.168.213.200:30020/QejmeqSHLozklDpXBycN/12555 2>dbg.log as soon as I find out how I can do this. Thx, dev Steps to reproduce: 1. 2. 3. Actual results: Expected results: Does this happen every time? yes Other information:
Created attachment 78044 [details] debug log
the file actually plays fine when accessed via file:///...
To be more specific, the problem above happens when the neonhttpsrc (CVS/CVS+patch in 375264) is used. After adding the gnomevfssrc to the plugins the file could be played. Nevertheless I would like to abstain from gnomevfssrc due to its dependencies.
Can reproduce with neonhttpsrc. Two problems here: - neonhttpsrc does not set the offset on the first buffer to 0, this confuses id3demux - id3demux doesn't handle a first buffer with a non-zero offset very smartly
2006-12-12 Tim-Philipp Müller <tim at centricular dot net> * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create), (send_request_and_redirect): Set offset on buffers pushed out (id3demux gets confused if the first buffer does not have an offset of 0). Fixes #384140.