OSDN Git Service

Workaround from "van" to prevent double chapter markers when using advanced deinterla...
[handbrake-jp/handbrake-jp-git.git] / libhb / deinterlace.c
index fd84206..2d35ecf 100644 (file)
@@ -65,7 +65,7 @@ hb_filter_private_t * hb_deinterlace_init( int pix_fmt,
                                            int height,\r
                                            char * settings );\r
 \r
-int hb_deinterlace_work( const hb_buffer_t * buf_in,\r
+int hb_deinterlace_work( hb_buffer_t * buf_in,\r
                          hb_buffer_t ** buf_out,\r
                          int pix_fmt,\r
                          int width, \r
@@ -77,7 +77,7 @@ void hb_deinterlace_close( hb_filter_private_t * pv );
 hb_filter_object_t hb_filter_deinterlace =\r
 {   \r
     FILTER_DEINTERLACE,\r
-    "Deinterlace (yadif/mcdeint)",\r
+    "Deinterlace (ffmpeg or yadif/mcdeint)",\r
     NULL,\r
     hb_deinterlace_init,\r
     hb_deinterlace_work,\r
@@ -394,8 +394,8 @@ hb_filter_private_t * hb_deinterlace_init( int pix_fmt,
     /* Allocate mcdeint specific buffers */\r
     if( pv->mcdeint_mode >= 0 )\r
     {\r
-               avcodec_init();\r
-        register_avcodec( &snow_encoder );\r
+        avcodec_init();\r
+        avcodec_register_all();\r
         \r
         AVCodec * enc = avcodec_find_encoder( CODEC_ID_SNOW );\r
         \r
@@ -425,7 +425,7 @@ hb_filter_private_t * hb_deinterlace_init( int pix_fmt,
                 case 3:\r
                     avctx_enc->refs = 3;\r
                 case 2:\r
-                    avctx_enc->me_method = ME_ITER;\r
+                    avctx_enc->me_method = ME_UMH;\r
                 case 1:\r
                     avctx_enc->flags |= CODEC_FLAG_4MV;\r
                     avctx_enc->dia_size =2;\r
@@ -497,7 +497,7 @@ void hb_deinterlace_close( hb_filter_private_t * pv )
     free( pv );\r
 }\r
 \r
-int hb_deinterlace_work( const hb_buffer_t * buf_in,\r
+int hb_deinterlace_work( hb_buffer_t * buf_in,\r
                          hb_buffer_t ** buf_out,\r
                          int pix_fmt,\r
                          int width, \r
@@ -551,6 +551,9 @@ int hb_deinterlace_work( const hb_buffer_t * buf_in,
         yadif_store_ref( (const uint8_t**)pv->pic_in.data, pv );\r
         \r
         hb_buffer_copy_settings( pv->buf_settings, buf_in );\r
+
+        /* don't let 'work_loop' send a chapter mark upstream */
+        buf_in->new_chap  = 0;
 \r
         pv->yadif_ready = 1;\r
         \r
@@ -588,6 +591,9 @@ int hb_deinterlace_work( const hb_buffer_t * buf_in,
     \r
     /* Replace buffered settings with input buffer settings */\r
     hb_buffer_copy_settings( pv->buf_settings, buf_in );    \r
+
+    /* don't let 'work_loop' send a chapter mark upstream */
+    buf_in->new_chap  = 0;
 \r
     return FILTER_OK;\r
 }\r