Opened 14 years ago

Closed 14 years ago

Last modified 9 years ago

#2 closed defect (fixed)

XvMC broken for HDTV on the unichrome pro chipset

Reported by: jdonavan Owned by: jdonavan
Priority: major Milestone: 0.19
Component: mythtv Version: head
Severity: high Keywords: hdtv
Cc: Ticket locked: no

Description

When XVMC_MAX_SURF_NUM is 16, XvMC playback of HD sized streams gives either a blank screen + sound or garbage + sound. As the first call to XvMCPutSurface generates an error from Xv that says "X Error: BadAlloc? (insufficient resources for operation0".

Reducing XVMC_MAX_SURF_NUM to 12 allows playback of HD sized streams but with many prebuffering pauses.

Reducing XVMC_MAX_SURF_NUM to 8 allows for smooth playback of HD sized streams.

Change History (7)

comment:1 Changed 14 years ago by Isaac Richards

Milestone: 0.19
Owner: changed from Isaac Richards to jdonavan

comment:2 Changed 14 years ago by wmichaels1@…

I have this problem with mythtv 18.1 as well. I thought it was caused by my new ATI Radeon X800 XL 256 card. Mythtv works fine with starndard definition signals but high definition signals give the symptoms of this bug. I have not fiddled with XVMC_MAX_SURF_NUM yet, but now I have a clue as to how to get things running. With a previous MSI GeForce3 Ti200 video card I was seeing a lot of Prebuffering Pauses and 100% CPU usage with a HD signal. Gosh darn, I may have wasted $359.95 trying to fix a software problem with hardware.

comment:3 Changed 14 years ago by Isaac Richards

Previous comment from wmichaels1@… has _absolutely nothing_ to do with this bug report.

comment:4 Changed 14 years ago by danielk

(In [6728]) This is an UGLY hack for a problem in CreateXvMCSurfaces().

reateXvMCSurfaces is supposed to allocate between 8 and 16 buffers, allocating as many as possible, and reinitializing vbuffers as needed. But it seems with the Unichrome chipset you need to call vbuffers.Init() with the exact number of buffers you are capable of allocating BEFORE CreateXvMCSurfaces is called to allocate them.

Since the Unichrome chipset is the only chipset, I know of, which allows more than eight XvMC buffers this is probably a general problem, exposed simply by the unichrome chipset.

The hack is curtesy of Terry Barnaby, and should at least solve the prebuffering pause problem with VLD until someone can look at why CreateXvMCSurfaces isn't working proberly.

See #2 for a related problem.

comment:5 Changed 14 years ago by jdonavan

Resolution: fixed
Status: newclosed

This is fixed in HEAD.

comment:6 Changed 10 years ago by anonymous

Testing trac fix

comment:7 Changed 9 years ago by Mark Kendall

Build fix #2 following 82f7dda89132423b72b3

Changeset: 640c82f8ee4f006407665cb88784bb441c3b8931

Note: See TracTickets for help on using tickets.