After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 338062 - metadata reader gets lots of 'internal data flow' errors
metadata reader gets lots of 'internal data flow' errors
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: Importing
HEAD
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-04-11 11:18 UTC by Jonathan Matthew
Modified: 2006-04-17 05:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch (7.34 KB, patch)
2006-04-11 22:30 UTC, Jonathan Matthew
committed Details | Review

Description Jonathan Matthew 2006-04-11 11:18:37 UTC
I see a lot of 'internal data flow error' messages when importing directories with various non-audio files.
Comment 1 Jonathan Matthew 2006-04-11 22:30:48 UTC
Created attachment 63268 [details] [review]
patch

- always link decoded pads to fakesink, otherwise we'll randomly get internal data flow errors, depending on which thread runs next
- stop the pipeline in the unknown-type handler, except if the handler was called on a task thread
- ignore really small files for which we don't get a mime type
Comment 2 James "Doc" Livingston 2006-04-12 06:58:17 UTC
Looks sane to me, and seems to work okay.

Is the a reason (other that a bug in gstreamer) that we can't set the pipline state in the task thread?
Comment 3 Jonathan Matthew 2006-04-12 08:18:57 UTC
Setting the pipeline state to NULL involves stopping the task thread, and you can't do that from the task thread itself.  We only get the unknown-type signal on a task thread when the demuxer uses a thread to parse the container.  I think I've only seen it happen with asfdemux.
Comment 4 James "Doc" Livingston 2006-04-16 12:12:23 UTC
Looks fine to commit to me.
Comment 5 Jonathan Matthew 2006-04-17 05:52:02 UTC
OK, committed.  The final mechanism I used to shut the pipeline down when decodebin emits an unknown-type signal is to post an error on the bus.  This is roughly what playbin does, and it seems to work perfectly for every type of file I've tried.