changeset 4005:7c07bc1e0a81

Fixes to sync code
author mswitch
date Sun, 06 Jan 2002 14:29:58 +0000
parents 6f2ae5226367
children f473505a2744
files libvo/vo_dxr3.c
diffstat 1 files changed, 6 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/vo_dxr3.c	Sun Jan 06 14:28:29 2002 +0000
+++ b/libvo/vo_dxr3.c	Sun Jan 06 14:29:58 2002 +0000
@@ -67,9 +67,11 @@
 #ifdef USE_MP1E
 void write_dxr3( rte_context* context, void* data, size_t size, void* user_data )
 {
+    size_t data_left = size;
     if(ioctl(fd_video,EM8300_IOCTL_VIDEO_SETPTS,&vo_pts) < 0)
 	    printf( "VO: [dxr3] Unable to set pts\n" );
-    write( fd_video, data, size );
+    while( data_left )
+	data_left -= write( fd_video, (void*) data+(size-data_left), data_left );
 }
 #endif
 
@@ -113,18 +115,12 @@
     v_width = scr_width;
     v_height = scr_height;
 
-    /* Calculate screen res */    
-    /*aspect_save_orig(v_width,v_height);
-    aspect_save_prescale(width,height);
-    aspect_save_screenres(702,575);*/ /* Reference values from DVD spec (711,483) (702,575) */
-    /*aspect(&s_width,&s_height,A_ZOOM);*/
     s_width = (v_width+15)/16; s_width*=16;
     s_height = (v_height+15)/16; s_height*=16;
     
     /* Try to figure out whether to use ws output or not */
     tmp1 = abs(height - ((width/4)*3));
     tmp2 = abs(height - (int)(width/2.35));
-    printf( "%d:%d\n",s_width,s_height);
     if(tmp1 < tmp2)
     {
 	tmp1 = EM8300_ASPECTRATIO_4_3;
@@ -290,14 +286,14 @@
 {
     if( img_format == IMGFMT_MPEGPES )
     {
-        int data_left;
 	vo_mpegpes_t *p=(vo_mpegpes_t *)src[0];
+        size_t data_left = p->size;
 
 	if(ioctl(fd_video,EM8300_IOCTL_VIDEO_SETPTS,&vo_pts) < 0)
 	    printf( "VO: [dxr3] Unable to set pts\n" );
-	data_left = p->size;
+
 	while( data_left )
-	    data_left -= write( fd_video, &((unsigned char*)p->data)[p->size-data_left], data_left );
+	    data_left -= write( fd_video, (void*) p->data+(p->size-data_left), data_left );
 
 	return 0;
     }