File indexing completed on 2024-05-12 04:51:34
0001 /* 0002 SPDX-FileCopyrightText: 2010 Michal Malek <michalm@jabster.pl> 0003 SPDX-FileCopyrightText: 1998-2008 Sebastian Trueg <trueg@k3b.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef _K3B_OGG_VORBIS_ENCODER_H_ 0009 #define _K3B_OGG_VORBIS_ENCODER_H_ 0010 0011 0012 #include "k3baudioencoder.h" 0013 0014 class K3bOggVorbisEncoder : public K3b::AudioEncoder 0015 { 0016 Q_OBJECT 0017 0018 public: 0019 K3bOggVorbisEncoder( QObject* parent, const QVariantList& ); 0020 ~K3bOggVorbisEncoder() override; 0021 0022 QStringList extensions() const override { return QStringList("ogg"); } 0023 0024 QString fileTypeComment( const QString& ) const override; 0025 0026 long long fileSize( const QString&, const K3b::Msf& msf ) const override; 0027 0028 int pluginSystemVersion() const override { return K3B_PLUGIN_SYSTEM_VERSION; } 0029 0030 private: 0031 void loadConfig(); 0032 void finishEncoderInternal() override; 0033 bool initEncoderInternal( const QString& extension, const K3b::Msf& length, const MetaData& metaData ) override; 0034 qint64 encodeInternal( const char* data, qint64 len ) override; 0035 0036 bool writeOggHeaders(); 0037 void cleanup(); 0038 long flushVorbis(); 0039 0040 class Private; 0041 Private* d; 0042 }; 0043 0044 #endif