summaryrefslogtreecommitdiff
path: root/src/video_out/xvmc_vld.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_out/xvmc_vld.c')
-rw-r--r--src/video_out/xvmc_vld.c9
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;