vlc | branch: master | Steve Lhomme <[email protected]> | Wed Jun 28 13:52:42 2017 +0200| [ed564cbcb76a150264e683f6648bbb55c09c4047] | committer: Jean-Baptiste Kempf
deinterlace: add function to initialize the deinterlacing context Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ed564cbcb76a150264e683f6648bbb55c09c4047 --- modules/video_filter/deinterlace/common.c | 18 ++++++++++++++++++ modules/video_filter/deinterlace/common.h | 2 ++ modules/video_filter/deinterlace/deinterlace.c | 11 +---------- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/modules/video_filter/deinterlace/common.c b/modules/video_filter/deinterlace/common.c index a1b68dc869..cfd3a38983 100644 --- a/modules/video_filter/deinterlace/common.c +++ b/modules/video_filter/deinterlace/common.c @@ -33,6 +33,24 @@ #include "common.h" +void InitDeinterlacingContext( struct deinterlace_ctx *p_context ) +{ + p_context->b_double_rate = false; + p_context->b_half_height = false; + p_context->b_use_frame_history = false; + + p_context->meta[0].pi_date = VLC_TS_INVALID; + p_context->meta[0].pi_nb_fields = 2; + p_context->meta[0].pb_top_field_first = true; + for( int i = 1; i < METADATA_SIZE; i++ ) + p_context->meta[i] = p_context->meta[i-1]; + + p_context->i_frame_offset = 0; /* start with default value (first-ever frame + cannot have offset) */ + for( int i = 0; i < HISTORY_SIZE; i++ ) + p_context->pp_history[i] = NULL; +} + void FlushDeinterlacing(struct deinterlace_ctx *p_context) { p_context->meta[0].pi_date = VLC_TS_INVALID; diff --git a/modules/video_filter/deinterlace/common.h b/modules/video_filter/deinterlace/common.h index a8e3de430a..ad74b5353d 100644 --- a/modules/video_filter/deinterlace/common.h +++ b/modules/video_filter/deinterlace/common.h @@ -89,6 +89,8 @@ struct deinterlace_ctx #define DEINTERLACE_DST_SIZE 3 +void InitDeinterlacingContext( struct deinterlace_ctx * ); + /** * @brief Get the field duration based on the previous fields or the frame rate * @param fmt output format of the deinterlacer with the frame rate diff --git a/modules/video_filter/deinterlace/deinterlace.c b/modules/video_filter/deinterlace/deinterlace.c index 210557716d..9888e58d25 100644 --- a/modules/video_filter/deinterlace/deinterlace.c +++ b/modules/video_filter/deinterlace/deinterlace.c @@ -333,16 +333,7 @@ notsupp: char *psz_mode = var_InheritString( p_filter, FILTER_CFG_PREFIX "mode" ); SetFilterMethod( p_filter, psz_mode, packed ); - for( int i = 0; i < METADATA_SIZE; i++ ) - { - p_sys->context.meta[i].pi_date = VLC_TS_INVALID; - p_sys->context.meta[i].pi_nb_fields = 2; - p_sys->context.meta[i].pb_top_field_first = true; - } - p_sys->context.i_frame_offset = 0; /* start with default value (first-ever frame - cannot have offset) */ - for( int i = 0; i < HISTORY_SIZE; i++ ) - p_sys->context.pp_history[i] = NULL; + InitDeinterlacingContext( &p_sys->context ); IVTCClearState( p_filter ); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
