diff options
author | Robin Gareus <robin@gareus.org> | 2018-11-19 23:44:50 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-11-20 00:21:01 +0100 |
commit | 27e0e78e1df90c2c1fa41a342a11d1c941fca1bf (patch) | |
tree | 8a51367d3b91b86e774c1e2a0e0c2226f6ca1264 /libs/ardour/ardour/export_formats.h | |
parent | 5fa05b403ca21a6573d07b921dc14f0769dc9fc7 (diff) |
Implement FFMPEG/MP3 export-format spec and profile
Diffstat (limited to 'libs/ardour/ardour/export_formats.h')
-rw-r--r-- | libs/ardour/ardour/export_formats.h | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/libs/ardour/ardour/export_formats.h b/libs/ardour/ardour/export_formats.h index 8e51827b89..b8ce3db96a 100644 --- a/libs/ardour/ardour/export_formats.h +++ b/libs/ardour/ardour/export_formats.h @@ -52,6 +52,8 @@ class LIBARDOUR_API ExportFormat : public ExportFormatBase, public ExportFormatB Quality get_quality () const { return *qualities.begin(); } bool has_sample_format (); + bool has_codec_quality (); + bool sample_format_is_compatible (SampleFormat format) const; /* If the format has a specific sample format, this function should be overridden @@ -76,6 +78,7 @@ class LIBARDOUR_API ExportFormat : public ExportFormatBase, public ExportFormatB virtual bool has_broadcast_info () const { return false; } + protected: void add_sample_rate (SampleRate rate) { sample_rates.insert (rate); } @@ -85,6 +88,36 @@ class LIBARDOUR_API ExportFormat : public ExportFormatBase, public ExportFormatB void set_quality (Quality value) { qualities.clear(); qualities.insert (value); } }; +class LIBARDOUR_API HasCodecQuality : public PBD::ScopedConnectionList { +public: + struct CodecQuality { + CodecQuality (std::string const& n, int q) + : name (n) + , quality (q) + {} + + std::string name; + int quality; + }; + + typedef boost::shared_ptr<CodecQuality> CodecQualityPtr; + typedef std::list<CodecQualityPtr> CodecQualityList; + + virtual ~HasCodecQuality () {} + + void add_codec_quality (std::string const& name, int q) { + CodecQualityPtr ptr (new CodecQuality (name, q)); + _codec_qualties.push_back (ptr); + } + + CodecQualityList const & get_codec_qualities () const { + return _codec_qualties; + } + +protected: + CodecQualityList _codec_qualties; +}; + /// Class to be inherited by export formats that have a selectable sample format class LIBARDOUR_API HasSampleFormat : public PBD::ScopedConnectionList { public: @@ -211,7 +244,7 @@ class LIBARDOUR_API ExportFormatBWF : public ExportFormat, public HasSampleForma }; -class LIBARDOUR_API ExportFormatFFMPEG : public ExportFormat { +class LIBARDOUR_API ExportFormatFFMPEG : public ExportFormat, public HasCodecQuality { public: ExportFormatFFMPEG (std::string const& name, std::string const& ext); ~ExportFormatFFMPEG () {}; |