+ /* ***** Get configuration of ffmpeg plugin ***** */
+ p_sys->p_context->workaround_bugs =
+ config_GetInt( p_dec, "ffmpeg-workaround-bugs" );
+ p_sys->p_context->error_resilience =
+ config_GetInt( p_dec, "ffmpeg-error-resilience" );
+
+ var_Create( p_dec, "grayscale", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
+ var_Get( p_dec, "grayscale", &val );
+ if( val.b_bool ) p_sys->p_context->flags |= CODEC_FLAG_GRAY;
+
+ var_Create( p_dec, "ffmpeg-vismv", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
+ var_Get( p_dec, "ffmpeg-vismv", &val );
+ if( val.i_int ) p_sys->p_context->debug_mv = val.i_int;
+
+ var_Create( p_dec, "ffmpeg-lowres", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
+ var_Get( p_dec, "ffmpeg-lowres", &val );
+ if( val.i_int > 0 && val.i_int <= 2 ) p_sys->p_context->lowres = val.i_int;
+
+ var_Create( p_dec, "ffmpeg-skiploopfilter",
+ VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
+ var_Get( p_dec, "ffmpeg-skiploopfilter", &val );
+ if( val.i_int > 0 ) p_sys->p_context->skip_loop_filter = AVDISCARD_NONREF;
+ if( val.i_int > 1 ) p_sys->p_context->skip_loop_filter = AVDISCARD_BIDIR;
+ if( val.i_int > 2 ) p_sys->p_context->skip_loop_filter = AVDISCARD_NONKEY;
+ if( val.i_int > 3 ) p_sys->p_context->skip_loop_filter = AVDISCARD_ALL;
+
+ /* ***** ffmpeg frame skipping ***** */
+ var_Create( p_dec, "ffmpeg-hurry-up", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
+ var_Get( p_dec, "ffmpeg-hurry-up", &val );
+ p_sys->b_hurry_up = val.b_bool;
+
+ var_Create( p_dec, "ffmpeg-skip-frame", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
+ var_Get( p_dec, "ffmpeg-skip-frame", &val );
+ switch( val.i_int )
+ {
+ case -1:
+ p_sys->p_context->skip_frame = AVDISCARD_NONE;
+ break;
+ case 0:
+ p_sys->p_context->skip_frame = AVDISCARD_DEFAULT;
+ break;
+ case 1:
+ p_sys->p_context->skip_frame = AVDISCARD_BIDIR;
+ break;
+ case 2:
+ p_sys->p_context->skip_frame = AVDISCARD_NONKEY;
+ break;
+ case 3:
+ p_sys->p_context->skip_frame = AVDISCARD_ALL;
+ break;
+ default:
+ p_sys->p_context->skip_frame = AVDISCARD_NONE;
+ break;
+ }
+ p_sys->i_skip_frame = p_sys->p_context->skip_frame;
+
+ var_Create( p_dec, "ffmpeg-skip-idct", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
+ var_Get( p_dec, "ffmpeg-skip-idct", &val );
+ switch( val.i_int )
+ {
+ case -1:
+ p_sys->p_context->skip_idct = AVDISCARD_NONE;
+ break;
+ case 0:
+ p_sys->p_context->skip_idct = AVDISCARD_DEFAULT;
+ break;
+ case 1:
+ p_sys->p_context->skip_idct = AVDISCARD_BIDIR;
+ break;
+ case 2:
+ p_sys->p_context->skip_idct = AVDISCARD_NONKEY;
+ break;
+ case 3:
+ p_sys->p_context->skip_idct = AVDISCARD_ALL;
+ break;
+ default:
+ p_sys->p_context->skip_idct = AVDISCARD_NONE;
+ break;