gst_plugins_base/gst/audiotestsrc/gstaudiotestsrc.h
branchRCL_3
changeset 29 567bb019e3e3
parent 0 0e761a78d257
child 30 7e817e7e631c
equal deleted inserted replaced
6:9b2c3c7a1a9c 29:567bb019e3e3
    43  * @GST_AUDIO_TEST_SRC_WAVE_SINE: a sine wave
    43  * @GST_AUDIO_TEST_SRC_WAVE_SINE: a sine wave
    44  * @GST_AUDIO_TEST_SRC_WAVE_SQUARE: a square wave
    44  * @GST_AUDIO_TEST_SRC_WAVE_SQUARE: a square wave
    45  * @GST_AUDIO_TEST_SRC_WAVE_SAW: a saw wave
    45  * @GST_AUDIO_TEST_SRC_WAVE_SAW: a saw wave
    46  * @GST_AUDIO_TEST_SRC_WAVE_TRIANGLE: a tringle wave
    46  * @GST_AUDIO_TEST_SRC_WAVE_TRIANGLE: a tringle wave
    47  * @GST_AUDIO_TEST_SRC_WAVE_SILENCE: silence
    47  * @GST_AUDIO_TEST_SRC_WAVE_SILENCE: silence
    48  * @GST_AUDIO_TEST_SRC_WAVE_WHITE_NOISE: white noise
    48  * @GST_AUDIO_TEST_SRC_WAVE_WHITE_NOISE: white uniform noise
    49  * @GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE: pink noise
    49  * @GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE: pink noise
    50  * @GST_AUDIO_TEST_SRC_WAVE_SINE_TAB: sine wave using a table
    50  * @GST_AUDIO_TEST_SRC_WAVE_SINE_TAB: sine wave using a table
       
    51  * @GST_AUDIO_TEST_SRC_WAVE_TICKS: periodic ticks
       
    52  * @GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE: white (zero mean) Gaussian noise;  volume sets the standard deviation of the noise in units of the range of values of the sample type, e.g. volume=0.1 produces noise with a standard deviation of 0.1*32767=3277 with 16-bit integer samples, or 0.1*1.0=0.1 with floating-point samples.
    51  *
    53  *
    52  * Different types of supported sound waves.
    54  * Different types of supported sound waves.
    53  */
    55  */
    54 typedef enum {
    56 typedef enum {
    55   GST_AUDIO_TEST_SRC_WAVE_SINE,
    57   GST_AUDIO_TEST_SRC_WAVE_SINE,
    57   GST_AUDIO_TEST_SRC_WAVE_SAW,
    59   GST_AUDIO_TEST_SRC_WAVE_SAW,
    58   GST_AUDIO_TEST_SRC_WAVE_TRIANGLE,
    60   GST_AUDIO_TEST_SRC_WAVE_TRIANGLE,
    59   GST_AUDIO_TEST_SRC_WAVE_SILENCE,
    61   GST_AUDIO_TEST_SRC_WAVE_SILENCE,
    60   GST_AUDIO_TEST_SRC_WAVE_WHITE_NOISE,
    62   GST_AUDIO_TEST_SRC_WAVE_WHITE_NOISE,
    61   GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE,
    63   GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE,
    62   GST_AUDIO_TEST_SRC_WAVE_SINE_TAB
    64   GST_AUDIO_TEST_SRC_WAVE_SINE_TAB,
       
    65   GST_AUDIO_TEST_SRC_WAVE_TICKS,
       
    66   GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE
    63 } GstAudioTestSrcWave; 
    67 } GstAudioTestSrcWave; 
    64 
    68 
    65 #define PINK_MAX_RANDOM_ROWS   (30)
    69 #define PINK_MAX_RANDOM_ROWS   (30)
    66 #define PINK_RANDOM_BITS       (16)
    70 #define PINK_RANDOM_BITS       (16)
    67 #define PINK_RANDOM_SHIFT      ((sizeof(long)*8)-PINK_RANDOM_BITS)
    71 #define PINK_RANDOM_SHIFT      ((sizeof(long)*8)-PINK_RANDOM_BITS)
   101   GstAudioTestSrcWave wave;
   105   GstAudioTestSrcWave wave;
   102   gdouble volume;
   106   gdouble volume;
   103   gdouble freq;
   107   gdouble freq;
   104     
   108     
   105   /* audio parameters */
   109   /* audio parameters */
       
   110   gint channels;
   106   gint samplerate;
   111   gint samplerate;
   107   gint samples_per_buffer;
   112   gint samples_per_buffer;
       
   113   gint sample_size;
   108   GstAudioTestSrcFormat format;
   114   GstAudioTestSrcFormat format;
   109   
   115   
   110   /*< private >*/
   116   /*< private >*/
   111   gboolean tags_pushed;			/* send tags just once ? */
   117   gboolean tags_pushed;			/* send tags just once ? */
   112   GstClockTimeDiff timestamp_offset;    /* base offset */
   118   GstClockTimeDiff timestamp_offset;    /* base offset */
   113   GstClockTime running_time;            /* total running time */
   119   GstClockTime next_time;               /* next timestamp */
   114   gint64 n_samples;                     /* total samples sent */
   120   gint64 next_sample;                   /* next sample to send */
   115   gint64 n_samples_stop;
   121   gint64 next_byte;                     /* next byte to send */
       
   122   gint64 sample_stop;
   116   gboolean check_seek_stop;
   123   gboolean check_seek_stop;
   117   gboolean eos_reached;
   124   gboolean eos_reached;
   118   gint generate_samples_per_buffer;	/* used to generate a partial buffer */
   125   gint generate_samples_per_buffer;	/* used to generate a partial buffer */
       
   126   gboolean can_activate_pull;
   119   
   127   
   120   /* waveform specific context data */
   128   /* waveform specific context data */
   121   gdouble accumulator;			/* phase angle */
   129   gdouble accumulator;			/* phase angle */
   122   GstPinkNoise pink;
   130   GstPinkNoise pink;
   123   gdouble wave_table[1024];
   131   gdouble wave_table[1024];