diff options
Diffstat (limited to 'extern/audaspace/plugins/ffmpeg/FFMPEGWriter.h')
-rw-r--r-- | extern/audaspace/plugins/ffmpeg/FFMPEGWriter.h | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/extern/audaspace/plugins/ffmpeg/FFMPEGWriter.h b/extern/audaspace/plugins/ffmpeg/FFMPEGWriter.h deleted file mode 100644 index 690185deb64..00000000000 --- a/extern/audaspace/plugins/ffmpeg/FFMPEGWriter.h +++ /dev/null @@ -1,145 +0,0 @@ -/******************************************************************************* - * Copyright 2009-2016 Jörg Müller - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - ******************************************************************************/ - -#pragma once - -#ifdef FFMPEG_PLUGIN -#define AUD_BUILD_PLUGIN -#endif - -/** - * @file FFMPEGWriter.h - * @ingroup plugin - * The FFMPEGWriter class. - */ - -#include "respec/ConverterFunctions.h" -#include "util/Buffer.h" -#include "file/IWriter.h" - -#include <string> - -struct AVCodecContext; -extern "C" { -#include <libavformat/avformat.h> -} - -AUD_NAMESPACE_BEGIN - -/** - * This class writes a sound file via ffmpeg. - */ -class AUD_PLUGIN_API FFMPEGWriter : public IWriter -{ -private: - /** - * The current position in samples. - */ - int m_position; - - /** - * The specification of the audio data. - */ - DeviceSpecs m_specs; - - /** - * The AVFormatContext structure for using ffmpeg. - */ - AVFormatContext* m_formatCtx; - - /** - * The AVCodecContext structure for using ffmpeg. - */ - AVCodecContext* m_codecCtx; - - /** - * The AVOutputFormat structure for using ffmpeg. - */ - AVOutputFormat* m_outputFmt; - - /** - * The AVStream structure for using ffmpeg. - */ - AVStream* m_stream; - - /** - * The input buffer for the format converted data before encoding. - */ - Buffer m_input_buffer; - - /** - * The buffer used for deinterleaving. - */ - Buffer m_deinterleave_buffer; - - /** - * The count of input samples we have so far. - */ - unsigned int m_input_samples; - - /** - * The count of input samples necessary to encode a packet. - */ - unsigned int m_input_size; - - /** - * Whether the ouput has to be deinterleaved before writing. - */ - bool m_deinterleave; - - /** - * Converter function. - */ - convert_f m_convert; - - // delete copy constructor and operator= - FFMPEGWriter(const FFMPEGWriter&) = delete; - FFMPEGWriter& operator=(const FFMPEGWriter&) = delete; - - /** - * Encodes to the output buffer. - */ - AUD_LOCAL void encode(); - - /** - * Finishes writing to the file. - */ - AUD_LOCAL void close(); - -public: - /** - * Creates a new writer. - * \param filename The path to the file to be read. - * \param specs The file's audio specification. - * \param format The file's container format. - * \param codec The codec used for encoding the audio data. - * \param bitrate The bitrate for encoding. - * \exception Exception Thrown if the file specified does not exist or - * cannot be read with ffmpeg. - */ - FFMPEGWriter(std::string filename, DeviceSpecs specs, Container format, Codec codec, unsigned int bitrate); - - /** - * Destroys the writer and closes the file. - */ - virtual ~FFMPEGWriter(); - - virtual int getPosition() const; - virtual DeviceSpecs getSpecs() const; - virtual void write(unsigned int length, sample_t* buffer); -}; - -AUD_NAMESPACE_END |