2
* Copyright (C) 2011 Philippe Normand <pnormand@igalia.com>
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2 of the License, or (at your option) any later version.
9
* This library is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with this library; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
#ifndef AudioDestinationGStreamer_h
20
#define AudioDestinationGStreamer_h
23
#include "AudioDestination.h"
25
typedef struct _GstElement GstElement;
26
typedef struct _GstPad GstPad;
30
class AudioDestinationGStreamer : public AudioDestination {
32
AudioDestinationGStreamer(AudioIOCallback&, float sampleRate);
33
virtual ~AudioDestinationGStreamer();
38
bool isPlaying() { return m_isPlaying; }
39
float sampleRate() const { return m_sampleRate; }
40
AudioIOCallback& callback() const { return m_callback; }
42
void finishBuildingPipelineAfterWavParserPadReady(GstPad*);
45
AudioIOCallback& m_callback;
50
bool m_wavParserAvailable;
51
bool m_audioSinkAvailable;
52
GstElement* m_pipeline;
55
} // namespace WebCore
57
#endif // AudioDestinationGStreamer_h