diff options
Diffstat (limited to 'kradio3/plugins/recording/encoder_ogg.h')
-rw-r--r-- | kradio3/plugins/recording/encoder_ogg.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/kradio3/plugins/recording/encoder_ogg.h b/kradio3/plugins/recording/encoder_ogg.h new file mode 100644 index 0000000..55cf8e6 --- /dev/null +++ b/kradio3/plugins/recording/encoder_ogg.h @@ -0,0 +1,55 @@ +/*************************************************************************** + encoder_ogg.h + ------------------- + begin : Sat Aug 20 2005 + copyright : (C) 2005 by Martin Witte + email : witte@kawo1.rwth-aachen.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef KRADIO_RECORDING_ENCODER_OGG_H +#define KRADIO_RECORDING_ENCODER_OGG_H + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include "encoder.h" + +#ifdef HAVE_OGG + #include <vorbis/vorbisenc.h> +#endif + +class RecordingEncodingOgg : public RecordingEncoding +{ +public: + RecordingEncodingOgg(QObject *parent, SoundStreamID id, const RecordingConfig &cfg, const RadioStation *rs, const QString &filename); + virtual ~RecordingEncodingOgg(); + + bool openOutput(const QString &outputFile); + void closeOutput(); + +protected: + void encode(const char *_buffer, size_t buffer_size, char *&export_buffer, size_t &export_buffer_size); + +#ifdef HAVE_OGG + FILE *m_OggOutput; + char *m_OggExportBuffer; + size_t m_OggExportBufferSize; + ogg_stream_state m_OggStream; + vorbis_dsp_state m_VorbisDSP; + vorbis_block m_VorbisBlock; + vorbis_info m_VorbisInfo; +#endif +}; + + +#endif |