[FFmpeg-devel] [PATCH]Fix bug in VDPAU h264

Stephen Warren swarren
Sat Jan 10 00:49:39 CET 2009

Carl Eugen Hoyos wrote:
> Michael Niedermayer <michaelni <at> gmx.at> writes:
> > > Using NVIDIA's patch for mplayer, and latest, unchanged svn for
> > > libav*, playing an old HDTV sample (that I had not tried before)
> > > always crashes at the same point without the patch.
> >
> > but why does it crash?
> Because the hardware doesn't like the data it gets?
> > > Crashes means that one of NVIDIA's VDPAU-specific functions
> > > returns with an error value that makes MPlayer exit.
> >
> > which function, which error value?
> vdp_presentation_queue_block_until_surface_idle()
> and the return value is 2 ;-)

This is VDP_STATUS_DISPLAY_PREEMPTED, which basically means that
the HW couldn't parse the input data in most cases. The problem
is reported by this API because the GPU and CPU run asynchronously.

I'd suggest manually inspecting the content of the bitsrream buffers
Passed to VDPAU using gdb or dumping using printf. That should
immediately tell you whether the old/new code is sending different
data and why.

> (VDPAU return values are really exactly as useful as Reimar
> couldn't believe originally;-)

As an aside, I think the return codes are pretty clear for almost
all application-caused problems. Any unclear cases are due to
internal implementation bugs, or bad stream data, and in that case
there's really nothing the application author could ever do about
it, so there's not much point exposing more error detail.


More information about the ffmpeg-devel mailing list