[mythtv-commits] mythtv commits

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Tue Apr 26 16:45:02 UTC 2005

Changes committed by danielk on Tue Apr 26 16:44:57 2005

Modified Files:
   in mythtv/libs/libavcodec:
   in mythtv/libs/libmythtv:
        NuppelVideoPlayer.cpp NuppelVideoPlayer.h XvMCSurfaceTypes.cpp 
        XvMCSurfaceTypes.h avformatdecoder.cpp avformatdecoder.h 
        decoderbase.h videoout_xv.cpp videoout_xv.h videooutbase.cpp 
   in mythtv/programs/mythtranscode:
Log Message:

This changes the NVP API to something closer to what it was before the 
XVideo/XvMC merge. We do no longer need to reinitialize the stream with
decoder->OpenFile() in case of an XvMC stream type. Instead,
AVFormatDecoder queries VideoOutputXv for the best supported ffmpeg
codec, using the new GetBestSupportedCodec() function. This function
takes the xvmc stream type (MPEG1, MPEG2, H263, MPEG4), xvmc chroma
(420, 422, or 444) and the dimensions of the acceleration surface
desired. The dimensions are important because XvMC is supported at
480i but not 1080i on some hardware. (This is why I put the 
VideoOutputXv::GetBestSupportedCodec() call in AVFD::ScanStreams()
instead of in NVP.)

This also removes SetPixelFormat() and SetMPEG2Codec() from DecoderBase,
as they are no longer needed. IsXvMCCompatible() has been replaced with
GetVideoCodecID(), which in avformatdecoder returns the actual codec
being used by avformatdecoder for the video stream. This is used in
InitVideoOut() the same way IsXvMCCompatible was, except that it tells
VideoOutputXv which surfaces are safe to use.

I've renamed NVP::SetNoVideo() to NVP::SetNullVideo(), since the
video actually is decoded, and sometimes displayed, in "No Video"
mode the confusion about it's meaning caused me some problems. This
explains the change in programs/mythtranscode/transcode.cpp...

BTW In order to actually support XvMC chroma formats other than 420
we would need to make some minor additional changes to NVP and
videooutput, but in order to support XvMC acceleration of H263,
and MPEG4 surfaces some additional work would be needed in ffmpeg.


More information about the mythtv-commits mailing list