[mythtv] XVideo XvMC VLD broken
Terry Barnaby
terry1 at beam.ltd.uk
Mon Apr 25 06:24:39 UTC 2005
Terry Barnaby wrote:
> Hi,
>
> The current MythTv CVS version (2004-04-25) of the Xv/XvMC merge appears
> to be broken on a Via M10K box using XvMC VLD acceleration.
>
> Problems are:
> 1. If DVB-T cards are set to TS mode the system will show TV
> on startup, but will fail on channel change.
> Before changing channel I get the following Errors repeated:
>
> 2005-04-25 06:38:19.007 AddInheritence(A ) Error, future=frame
> 2005-04-25 06:38:19.127 AddInheritence( B ) Error, future=frame
> 2005-04-25 06:38:19.247 AddInheritence( C ) Error, future=frame
> 2005-04-25 06:38:19.487 AddInheritence( D ) Error, future=frame
> 2005-04-25 06:38:19.607 AddInheritence( E ) Error, future=frame
> 2005-04-25 06:38:19.727 AddInheritence( F ) Error, future=frame
>
> After changing the channel I get:
>
> 2005-04-25 06:38:28.247 AddInheritence( E ) Error, future=frame
> adding pes stream at pid 0xb03 with type 2
> adding pes stream at pid 0xb04 with type 4
> closing filter for pid 0x200
> av_remove_stream 0x200
> closing filter for pid 0x28a
> av_remove_stream 0x28a
> streams_changed()
> 2005-04-25 06:38:31.847 Prebuffer wait timed out 10 times.
> 2005-04-25 06:38:31.855 AvFormatDecoder: Video has changed from 0x0 to
> 704x576.
> [mpegvideo_xvmc_vld @ 0x5e2874]XVMC_VLD_field_start: Unknown picture
> coding type: 0
> 2005-04-25 06:38:33.827 Prebuffer wait timed out 10 times.
> XvMCPutSlice: This context does not own decoder!
> [mpegvideo_xvmc_vld @ 0x5e2874]XVMC_VLD_field_start: Unknown picture
> coding type: 0
> XvMCPutSlice: This context does not own decoder!
> XvMCPutSlice: This context does not own decoder!
> [mpegvideo_xvmc_vld @ 0x5e2874]XVMC_VLD_field_start: Unknown picture
> coding type: 0
> XvMCPutSlice: This context does not own decoder!
> XvMCPutSlice: This context does not own decoder!
> XvMCPutSlice: This context does not own decoder!
> 2005-04-25 06:38:49.147 AddInheritence( E ) Error, future=frame
> XvMCPutSlice: This context does not own decoder!
> XvMCPutSlice: This context does not own decoder!
> XvMCPutSlice: This context does not own decoder!
> XvMCPutSlice: This context does not own decoder!
> XvMCPutSlice: This context does not own decoder!
> XvMCPutSlice: This context does not own decoder!
>
> I suspect this could be caused by not calling the XvMCSyncSurface().
> This call releases the HWMPEG controller for other processes, and
> I suspect a lock is not being released when it is not called.
>
> 2. If DVB-T cards are set to PS mode the system will show TV
> on startup, but will fail on channel change.
> Before changing channel I get the same errors as for TS mode:
> After changeing I get no picture/sound with the following errors:
>
> 2005-04-25 06:48:23.866 Prebuffer wait timed out 10 times.
> 2005-04-25 06:48:24.482 AddInheritence(A ) Error, future=frame
> 2005-04-25 06:48:24.501 AddInheritence( B ) Error, future=frame
> 2005-04-25 06:48:26.714 Timed out waiting for free video buffers.
> 2005-04-25 06:48:28.913 Timed out waiting for free video buffers.
> 2005-04-25 06:48:31.113 Timed out waiting for free video buffers.
> 2005-04-25 06:48:33.312 Timed out waiting for free video buffers.
> 2005-04-25 06:48:35.512 Timed out waiting for free video buffers.
> 2005-04-25 06:48:37.711 Timed out waiting for free video buffers.
> 2005-04-25 06:48:39.911 Timed out waiting for free video buffers.
> 2005-04-25 06:48:42.111 Timed out waiting for free video buffers.
>
> I suspect this is a DVB issue.
>
> 3. The sound/video stutter badly on channes with multile audio
> channels. This used to be cleared by setting the DVB-T
> option "HW Encoder", but this no longer seems to
> work .... (Probably a DVB/AVCodec issue).
>
> Terry
>
>
> TV Client: Network boot Via M10K connected to TV with SVideo,
> Unichrome drivers. Using XvMC VLD HW MPEG acceleration.
> Server: 1G Celeron system with twin DVB-T cards
> Software: Fedora core 3 with updates 2.6.10-1.770_FC3 kernel
> MythTv: MythTv CVS 2005.04.25
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
Some more on this:
I modified the code in VideoOutputXv::SyncSurface() to call
XvMCSyncSurface(). However this bit of code is never called
during playback (something fishy here) ....
#ifdef ZAP
X11S(XvMCFlushSurface(disp, surf));
while (IsRendering(frame))
usleep(50);
#else
fprintf(stderr, "BEAM: Sync\n");
XvMCSyncSurface(disp, surf);
#endif
Terry
More information about the mythtv-dev
mailing list