FS#10331 - mpegplayer deadlocks since r21258

Attached to Project: Rockbox
Opened by Michael Chicoine (mc2739) - Sunday, 14 June 2009, 02:53 GMT
Last edited by Steve Bavin (pondlife) - Monday, 15 June 2009, 15:49 GMT
Task Type Bugs
Category Plugins
Status Closed
Assigned To No-one
Operating System Sansa e200
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


r21257 - mpegplayer works

r21258 - mpegplayer deadlocks when starting video - tested with elephantsdream-q6-224x176-496kbps.mpg
This task depends upon

Closed by  Steve Bavin (pondlife)
Monday, 15 June 2009, 15:49 GMT
Reason for closing:  Fixed
Additional comments about closing:  Should be resolved in r21293 .
Comment by Paul Louden (Llorean) - Sunday, 14 June 2009, 03:34 GMT
Is this with an e200v1 or e200v2?
Comment by Michael Chicoine (mc2739) - Sunday, 14 June 2009, 03:40 GMT
Both e200v1 and e200v2 fail.
Comment by Bertrik Sikken (bertrik) - Sunday, 14 June 2009, 10:16 GMT
svn r21258 was the commit of  FS#8894  - speeding playback up/down without affecting pitch
Comment by Sanggon, Lee (isanggon) - Monday, 15 June 2009, 05:40 GMT
After playback, mpegplayer will work. It's fs#8894's bug.
Comment by Steve Bavin (pondlife) - Monday, 15 June 2009, 07:37 GMT
Does this happen if you've left timestretch disabled, or only if you've enabled it?
Comment by Paul Louden (Llorean) - Monday, 15 June 2009, 07:42 GMT
It happens even if you leave timestretch disabled. It's never been turned on for my e200, but the problem occurs.
Comment by Steve Bavin (pondlife) - Monday, 15 June 2009, 07:59 GMT
I'm not in a position to test right now, but does the attached patch fix?
Comment by Michael Chicoine (mc2739) - Monday, 15 June 2009, 11:50 GMT
No, this patch does not fix the problem, it still deadlocks. As Lee said, if will work if you play a music track first.
Comment by Thomas Martitz (kugel.) - Monday, 15 June 2009, 12:04 GMT
I think we had a very similar problem when MP3-on-COP was committed (mpegplayer dead-locks if there was no playback before[although I'm not sure if playing something back really made it work, but that's how I remember the problem]). I can't recall the details anymore though, so maybe ask saratoga.
Comment by Steve Bavin (pondlife) - Monday, 15 June 2009, 14:47 GMT
OK, this seems to fix it for me. Basically, we relied on dsp_output_count() being called to set up the sample buffers, now it's done in dsp_configure() instead.

Also split the tdspeed.c start-up initialisation into it's own routine to be more like other modules.
Comment by Jack Halpin (FlynDice) - Monday, 15 June 2009, 14:55 GMT
This one seems to work fine for me on e280v2. Playback starts right up if it's the first thing I go to.