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.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/src/video_out/xvmc_vld.c b/src/video_out/xvmc_vld.c
index 93c5f00bd..ba1b51795 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.3 2005/05/04 04:27:20 totte67 Exp $
+ * $Id: xvmc_vld.c,v 1.4 2005/05/06 07:42:21 totte67 Exp $
*
* xvmc_vld.c, X11 decoding accelerated video extension interface for xine
*
@@ -92,24 +92,14 @@ 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)) ||
- ((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;
- }
+
XVMCLOCKDISPLAY( driver->display );
XvMCLoadQMatrix(driver->display, &driver->context, &qmx);
+
while((cf->xxmc_data.result =
XvMCBeginSurface(driver->display, &driver->context, cf->xvmc_surf,
fs, bs, &ctl)));
XVMCUNLOCKDISPLAY( driver->display );
- xvmc_context_reader_unlock( &driver->xvmc_lock );
driver->cpu_saver = 0.;
}
@@ -120,12 +110,6 @@ void xvmc_vld_slice(vo_frame_t *this_gen)
xxmc_driver_t
*driver = (xxmc_driver_t *) cf->vo_frame.driver;
- xvmc_context_reader_lock( &driver->xvmc_lock );
- if ( ! xxmc_xvmc_surface_valid( driver, cf->xvmc_surf)) {
- cf->xxmc_data.result = 128;
- xvmc_context_reader_unlock( &driver->xvmc_lock );
- return;
- }
XVMCLOCKDISPLAY( driver->display );
cf->xxmc_data.result =
XvMCPutSlice2(driver->display,&driver->context,cf->xxmc_data.slice_data,
@@ -138,7 +122,6 @@ void xvmc_vld_slice(vo_frame_t *this_gen)
*/
XVMCUNLOCKDISPLAY( driver->display );
- xvmc_context_reader_unlock( &driver->xvmc_lock );
if (driver->cpu_save_enabled) {
driver->cpu_saver += 1.;
if (driver->cpu_saver >= cf->xxmc_data.sleep) {