diff options
Diffstat (limited to 'src/video_out/xvmc_vld.c')
-rw-r--r-- | src/video_out/xvmc_vld.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/video_out/xvmc_vld.c b/src/video_out/xvmc_vld.c index e667761d7..93c5f00bd 100644 --- a/src/video_out/xvmc_vld.c +++ b/src/video_out/xvmc_vld.c @@ -18,7 +18,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA * - * $Id: xvmc_vld.c,v 1.2 2004/10/03 12:36:15 totte67 Exp $ + * $Id: xvmc_vld.c,v 1.3 2005/05/04 04:27:20 totte67 Exp $ * * xvmc_vld.c, X11 decoding accelerated video extension interface for xine * @@ -93,7 +93,12 @@ void xvmc_vld_frame(struct vo_frame_s *this_gen) qmx.load_chroma_intra_quantiser_matrix = 0; qmx.load_chroma_non_intra_quantiser_matrix = 0; xvmc_context_reader_lock( &driver->xvmc_lock ); - if ( ! xxmc_xvmc_surface_valid( driver, cf->xvmc_surf)) { + if ( (!xxmc_xvmc_surface_valid( driver, cf->xvmc_surf)) || + ((ctl.picture_coding_type == XVMC_P_PICTURE || + ctl.picture_coding_type == XVMC_B_PICTURE) && + !xxmc_xvmc_surface_valid( driver, fs )) || + ((ctl.picture_coding_type == XVMC_B_PICTURE) && + !xxmc_xvmc_surface_valid( driver, bs )) ) { cf->xxmc_data.result = 128; xvmc_context_reader_unlock( &driver->xvmc_lock ); return; |