The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
/*
 * Logo detect
 *
 */

#ifndef AD_AUDIO_STRUCT_H_
#define AD_AUDIO_STRUCT_H_

#include "ad_perl_struct.h"

// 16-bit results
#define MAX_VOL		0xffff

// 16-bit equates to this range
#define MIN_DB		-96

//---------------------------------------------------------------------------------------------------------------------------
// This structure contains all of the settings for this detector
//
struct Ad_audio_settings {
	//-- settings --
	unsigned debug ;

	// scale the results (e.g. set to 10 to get 1dp)
	unsigned scale ;

	// threshold below which audio is treated as silence (set in dB e.g. -26 for threshold = -26dB)
	int		silence_threshold ;

	struct Ad_perl_settings perl_set ;
	unsigned silence_window ;

} ;

//---------------------------------------------------------------------------------------------------------------------------
// Audio state
struct Ad_audio_state {

} ;

//---------------------------------------------------------------------------------------------------------------------------
// Audio results
struct Ad_audio_results {

	unsigned		audio_framenum ;
	int64_t			pts ;
	unsigned		volume ;
	unsigned		max_volume ;

	unsigned 		sample_rate	;
	unsigned 		channels ;
	unsigned 		samples_per_frame ;
	unsigned 		samples ;
	unsigned 		framesize ;

	int				volume_dB ;
	unsigned		silent_frame ;

} ;

// Totals
struct Ad_audio_totals {
	unsigned	num_silent_frames ;
};



#endif