OSDN Git Service
(root)
/
handbrake-jp
/
handbrake-jp-git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Workaround from "van" to prevent double chapter markers when using advanced deinterla...
[handbrake-jp/handbrake-jp-git.git]
/
libhb
/
deinterlace.c
diff --git
a/libhb/deinterlace.c
b/libhb/deinterlace.c
index
fd84206
..
2d35ecf
100644
(file)
--- a/
libhb/deinterlace.c
+++ b/
libhb/deinterlace.c
@@
-65,7
+65,7
@@
hb_filter_private_t * hb_deinterlace_init( int pix_fmt,
int height,
\r
char * settings );
\r
\r
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
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
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
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
/* 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
\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
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
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
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
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
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
\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
\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
\r
return FILTER_OK;
\r
}
\r