OSDN Git Service

LinGui: Changes required by latest x264
[handbrake-jp/handbrake-jp-git.git] / libhb / encxvid.c
index 6d869ae..18961dc 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"
@@ -128,10 +128,10 @@ void encxvidClose( hb_work_object_t * w )
 
     if( pv->xvid )
     {
-        hb_log( "encxvid: closing libxvidcore" );
+        hb_deep_log( 2, "encxvid: closing libxvidcore" );
         xvid_encore( pv->xvid, XVID_ENC_DESTROY, NULL, NULL);
     }
-    
+
     free( pv );
     w->private_data = NULL;
 }
@@ -149,6 +149,14 @@ 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 ( in->size <= 0 )
+    {
+        /* EOF on input - send it downstream & say we're done */
+        *buf_out = in;
+        *buf_in = NULL;
+       return HB_WORK_DONE;
+    }
+
     /* Should be way too large */
     buf = hb_buffer_init( 3 * job->width * job->height / 2 );
     buf->start = in->start;
@@ -186,7 +194,7 @@ int encxvidWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
     frame.quant_inter_matrix = NULL;
 
     buf->size = xvid_encore( pv->xvid, XVID_ENC_ENCODE, &frame, NULL );
-    buf->key = ( frame.out_flags & XVID_KEYFRAME );
+    buf->frametype = ( frame.out_flags & XVID_KEYFRAME ) ? HB_FRAME_KEY : HB_FRAME_REF;
 
     if( !pv->configDone )
     {
@@ -212,7 +220,7 @@ int encxvidWork( hb_work_object_t * w, hb_buffer_t ** buf_in,
             }
         }
 
-        hb_log( "encxvid: VOL size is %d bytes", vop_start - vol_start );
+        hb_deep_log( 2, "encxvid: VOL size is %d bytes", vop_start - vol_start );
         job->config.mpeg4.length = vop_start - vol_start;
         memcpy( job->config.mpeg4.bytes, &buf->data[vol_start],
                 job->config.mpeg4.length );