~audio-recorder/audio-recorder/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef __PIPELINE_H
#define __PIPELINE_H
#include <glib.h>
#include <gdk/gdk.h>
#include <gst/gst.h>
#include <gst/interfaces/propertyprobe.h>

#include "log.h"
#include "support.h"
#include "dconf.h"
#include "utility.h"

typedef struct {
    gchar *source;        // pulsesrc, autoaudiosrc, etc.

    GList *dev_list;      // String list of device names.
                          // See: pactl list | grep -A2 'Source #' | grep 'Name: ' | cut -d" " -f2

    gchar *profile_str;   // Capabilities and encoder pipeline from GNOME's GConf registry.
                          // Eg. "audio/x-raw-float,rate=44100,channels=2 ! vorbisenc name=enc quality=0.5 ! oggmux"

    gchar *file_ext;      // File extension such as "ogg", "flac" or "mp3".

    gchar *filename;      // Record to this file.
    gboolean append;      // Append to file?

} PipelineParms;

void pipeline_free_parms(PipelineParms *parms);

GstElement *pipeline_create(PipelineParms *parms, gchar **err_msg);
GstElement *pipeline_create_VAD(PipelineParms *parms, gchar **err_msg);

#endif