Hi Daniel,
XvMC VLD in a Via M10K box is now working better, but still not right. The main problem now is that sometimes channel changes work and sometimes they don't. I have tracked this down to an issue with the OSD. When the channel change fails the code is stuck in VideoOutputXv::GetAvailableOSD() in the loop: while (!xvmc_osd_available.size()) { xvmc_osd_lock.unlock(); usleep(50); xvmc_osd_lock.lock(); } The error messages from mythfront end are: "Timed out waiting for free video buffers."
I suspect there is a race hazard between the OSD for the channel change and the re-initialisation of the XvMC system in: VideoOutputXv::InputChanged().
I suspect that VideoOutputXv::InputChanged() should close down the OSD before doing anything and then re-initialise after deleting and re-instating the Video buffers. Actually, is it actually necessary to delete and re-create the Video buffers (could be done only if frame size has changed) ?? I actualy removed the deletion and re-creation of the video buffers and the channel channes appeared to work Ok then.
I can look into this a bit more but you might be able to see the cause and solution from the information above.
Terry
------------------------------------------------------------------------
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
Hi Daniel,
Your OSD fix in CVS has certainly fixed the problem with changing channels due to the OSD locks. Thanks. Things are much better now. However I have still had a channel change fail after quite a few changes. Here is an example where two channel changes worked Ok and the third failed. On the third case I get a frozen piucture and heavily stuttery sound. I will continue to investigate. In this case the error messages where:
adding pes stream at pid 0x258 with type 2
adding pes stream at pid 0x259 with type 3
closing filter for pid 0x262
closing filter for pid 0x263
2005-05-06 06:58:14.747 Prebuffer wait timed out 10 times.
2005-05-06 06:58:14.837 AvFormatDecoder: Video has changed from 0x0 to 720x576.
2005-05-06 06:58:16.486 prebuffering pause
2005-05-06 06:58:16.993 prebuffering pause
2005-05-06 06:58:17.149 prebuffering pause
2005-05-06 06:58:17.307 prebuffering pause
2005-05-06 06:58:17.423 prebuffering pause
2005-05-06 06:58:17.485 prebuffering pause
2005-05-06 06:58:17.737 prebuffering pause
2005-05-06 06:58:19.988 ERROR: child A is already in available
adding pes stream at pid 0x262 with type 2
adding pes stream at pid 0x263 with type 3
closing filter for pid 0x258
closing filter for pid 0x259
2005-05-06 06:58:21.967 Prebuffer wait timed out 10 times.
2005-05-06 06:58:22.275 AvFormatDecoder: Video has changed from 0x0 to 720x576.
2005-05-06 06:58:24.727 prebuffering pause
2005-05-06 06:58:24.865 prebuffering pause
2005-05-06 06:58:25.005 prebuffering pause
2005-05-06 06:58:25.145 prebuffering pause
2005-05-06 06:58:25.280 prebuffering pause
2005-05-06 06:58:25.403 prebuffering pause
2005-05-06 06:58:25.447 prebuffering pause
2005-05-06 06:58:25.466 prebuffering pause
2005-05-06 06:58:29.167 ERROR: child B is already in available
2005-05-06 06:58:31.148 Prebuffer wait timed out 10 times.
adding pes stream at pid 0x200 with type 2
adding pes stream at pid 0x28a with type 4
closing filter for pid 0x262
closing filter for pid 0x263
2005-05-06 06:58:31.454 AvFormatDecoder: Video has changed from 0x0 to 704x576.
2005-05-06 06:58:32.598 prebuffering pause
2005-05-06 06:58:34.119 prebuffering pause
2005-05-06 06:58:34.194 prebuffering pause
2005-05-06 06:58:34.278 prebuffering pause
2005-05-06 06:58:34.354 prebuffering pause
2005-05-06 06:58:34.435 prebuffering pause
2005-05-06 06:58:34.505 prebuffering pause
2005-05-06 06:58:34.564 prebuffering pause
2005-05-06 06:58:34.624 prebuffering pause
2005-05-06 06:58:34.626 prebuffering pause
2005-05-06 06:58:34.646 prebuffering pause
2005-05-06 06:58:34.666 prebuffering pause
2005-05-06 06:58:34.686 prebuffering pause
2005-05-06 06:58:34.706 prebuffering pause
2005-05-06 06:58:34.726 prebuffering pause
2005-05-06 06:58:34.746 prebuffering pause
2005-05-06 06:58:34.766 prebuffering pause
2005-05-06 06:58:34.786 prebuffering pause
2005-05-06 06:58:34.806 prebuffering pause
2005-05-06 06:58:34.811 Prebuffer wait timed out 10 times.
2005-05-06 06:58:34.811 Prebuffer wait timed out, and not enough free frames. Discarding buffers.
2005-05-06 06:58:34.822 AddInheritence future C NOT in used or in limbo. AAAddL
2005-05-06 06:58:34.826 prebuffering pause
2005-05-06 06:58:34.838 AddInheritence future C NOT in used or in limbo. AAAddU
2005-05-06 06:58:34.852 AddInheritence past C NOT in used or in done. AAAddU
2005-05-06 06:58:34.944 prebuffering pause
2005-05-06 06:58:34.958 GetNextFreeFrame() served a busy frame C. Dropping. UUUdAA
2005-05-06 06:58:35.062 prebuffering pause
2005-05-06 06:58:35.066 prebuffering pause
2005-05-06 06:58:35.086 prebuffering pause
2005-05-06 06:58:35.106 prebuffering pause
Terry
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
