OSDN Git Service

Wait until 4 frames are stashed in the delay_queue before outputting any frames from...
[handbrake-jp/handbrake-jp-git.git] / libhb / encxvid.c
index 7bdee7b..b509baf 100644 (file)
@@ -1,7 +1,7 @@
 /* $Id: encxvid.c,v 1.10 2005/03/09 23:28:39 titer Exp $
 
    This file is part of the HandBrake source code.
-   Homepage: <http://handbrake.m0k.org/>.
+   Homepage: <http://handbrake.fr/>.
    It may be used under the terms of the GNU General Public License. */
 
 #include "hb.h"
@@ -131,7 +131,7 @@ void encxvidClose( hb_work_object_t * w )
         hb_log( "encxvid: closing libxvidcore" );
         xvid_encore( pv->xvid, XVID_ENC_DESTROY, NULL, NULL);
     }
-    
+
     free( pv );
     w->private_data = NULL;
 }
@@ -149,10 +149,11 @@ int encxvidWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
     xvid_enc_frame_t frame;
     hb_buffer_t * in = *buf_in, * buf;
 
-    /* If this is the last empty frame, we're done */
-    if(!in->data)
+    if ( in->size <= 0 )
     {
-       *buf_out        = NULL;
+        /* EOF on input - send it downstream & say we're done */
+        *buf_out = in;
+        *buf_in = NULL;
        return HB_WORK_DONE;
     }
 
@@ -160,7 +161,6 @@ int encxvidWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
     buf = hb_buffer_init( 3 * job->width * job->height / 2 );
     buf->start = in->start;
     buf->stop  = in->stop;
-    //buf->chap  = in->chap;
 
     memset( &frame, 0, sizeof( frame ) );