lavfi/atempo: switch to an AVOptions-based system.
Signed-off-by: Pavel Koshevoy <pkoshevoy@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
							parent
							
								
									9ab796127a
								
							
						
					
					
						commit
						8f3c440a39
					
				@ -85,6 +85,8 @@ typedef enum {
 | 
			
		||||
 * Filter state machine
 | 
			
		||||
 */
 | 
			
		||||
typedef struct {
 | 
			
		||||
    const AVClass *class;
 | 
			
		||||
 | 
			
		||||
    // ring-buffer of input samples, necessary because some times
 | 
			
		||||
    // input fragment position may be adjusted backwards:
 | 
			
		||||
    uint8_t *buffer;
 | 
			
		||||
@ -146,6 +148,17 @@ typedef struct {
 | 
			
		||||
    uint64_t nsamples_out;
 | 
			
		||||
} ATempoContext;
 | 
			
		||||
 | 
			
		||||
#define OFFSET(x) offsetof(ATempoContext, x)
 | 
			
		||||
 | 
			
		||||
static const AVOption atempo_options[] = {
 | 
			
		||||
    { "tempo", "set tempo scale factor",
 | 
			
		||||
      OFFSET(tempo), AV_OPT_TYPE_DOUBLE, { .dbl = 1.0 }, 0.5, 2.0,
 | 
			
		||||
      AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_FILTERING_PARAM },
 | 
			
		||||
    { NULL }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
AVFILTER_DEFINE_CLASS(atempo);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Reset filter to initial state, do not deallocate existing local buffers.
 | 
			
		||||
 */
 | 
			
		||||
@ -950,13 +963,9 @@ static int yae_flush(ATempoContext *atempo,
 | 
			
		||||
static av_cold int init(AVFilterContext *ctx, const char *args)
 | 
			
		||||
{
 | 
			
		||||
    ATempoContext *atempo = ctx->priv;
 | 
			
		||||
 | 
			
		||||
    // NOTE: this assumes that the caller has memset ctx->priv to 0:
 | 
			
		||||
    atempo->format = AV_SAMPLE_FMT_NONE;
 | 
			
		||||
    atempo->tempo  = 1.0;
 | 
			
		||||
    atempo->state  = YAE_LOAD_FRAGMENT;
 | 
			
		||||
 | 
			
		||||
    return args ? yae_set_tempo(ctx, args) : 0;
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static av_cold void uninit(AVFilterContext *ctx)
 | 
			
		||||
@ -1166,6 +1175,7 @@ AVFilter avfilter_af_atempo = {
 | 
			
		||||
    .query_formats   = query_formats,
 | 
			
		||||
    .process_command = process_command,
 | 
			
		||||
    .priv_size       = sizeof(ATempoContext),
 | 
			
		||||
    .priv_class      = &atempo_class,
 | 
			
		||||
    .inputs          = atempo_inputs,
 | 
			
		||||
    .outputs         = atempo_outputs,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -687,7 +687,6 @@ static const char *const filters_left_to_update[] = {
 | 
			
		||||
#if FF_API_ACONVERT_FILTER
 | 
			
		||||
    "aconvert",
 | 
			
		||||
#endif
 | 
			
		||||
    "atempo",
 | 
			
		||||
    "buffer",
 | 
			
		||||
    "pan",
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user