- /* Create a few object variables for interface interaction */
- var_Create( p_vout, "deinterlace", VLC_VAR_STRING | VLC_VAR_HASCHOICE );
- text.psz_string = _("Deinterlace");
- var_Change( p_vout, "deinterlace", VLC_VAR_SETTEXT, &text, NULL );
- val.psz_string = (char *)""; text.psz_string = _("Disable");
- var_Change( p_vout, "deinterlace", VLC_VAR_ADDCHOICE, &val, &text );
- val.psz_string = (char *)"discard"; text.psz_string = _("Discard");
- var_Change( p_vout, "deinterlace", VLC_VAR_ADDCHOICE, &val, &text );
- val.psz_string = (char *)"blend"; text.psz_string = _("Blend");
- var_Change( p_vout, "deinterlace", VLC_VAR_ADDCHOICE, &val, &text );
- val.psz_string = (char *)"mean"; text.psz_string = _("Mean");
- var_Change( p_vout, "deinterlace", VLC_VAR_ADDCHOICE, &val, &text );
- val.psz_string = (char *)"bob"; text.psz_string = _("Bob");
- var_Change( p_vout, "deinterlace", VLC_VAR_ADDCHOICE, &val, &text );
- val.psz_string = (char *)"linear"; text.psz_string = _("Linear");
- var_Change( p_vout, "deinterlace", VLC_VAR_ADDCHOICE, &val, &text );
- val.psz_string = (char *)"x"; text.psz_string = (char *)"X";
- var_Change( p_vout, "deinterlace", VLC_VAR_ADDCHOICE, &val, &text );
-
- if( var_Get( p_vout, "deinterlace-mode", &val ) == VLC_SUCCESS )
- {
- var_Set( p_vout, "deinterlace", val );
- free( val.psz_string );
- }
- var_AddCallback( p_vout, "deinterlace", DeinterlaceCallback, NULL );
-
- var_Create( p_vout, "vout-filter", VLC_VAR_STRING | VLC_VAR_DOINHERIT );
- text.psz_string = _("Filters");
- var_Change( p_vout, "vout-filter", VLC_VAR_SETTEXT, &text, NULL );
- var_AddCallback( p_vout, "vout-filter", FilterCallback, NULL );
-
- /* Calculate delay created by internal caching */
- p_input_thread = (input_thread_t *)vlc_object_find( p_vout,
- VLC_OBJECT_INPUT, FIND_ANYWHERE );
- if( p_input_thread )
- {
- p_vout->i_pts_delay = p_input_thread->i_pts_delay;
- vlc_object_release( p_input_thread );
- }
- else
- {
- p_vout->i_pts_delay = DEFAULT_PTS_DELAY;
- }