return dynamic_cast<HasSampleFormat *> (this);
}
+bool
+ExportFormat::has_codec_quality ()
+{
+ return dynamic_cast<HasCodecQuality *> (this);
+}
+
+
bool
ExportFormat::sample_format_is_compatible (SampleFormat format) const
{
add_sample_rate (SR_48);
add_sample_rate (SR_88_2);
add_sample_rate (SR_96);
+ add_sample_rate (SR_176_4);
add_sample_rate (SR_192);
add_sample_rate (SR_Session);
add_sample_rate (SR_48);
add_sample_rate (SR_88_2);
add_sample_rate (SR_96);
+ add_sample_rate (SR_176_4);
add_sample_rate (SR_192);
add_sample_rate (SR_Session);
+ /* these are 100 vorbis_encode_init_vbr() quality */
+ add_codec_quality ("Low (0)", 0);
+ add_codec_quality ("Default (4)", 40);
+ add_codec_quality ("High (6)", 60);
+ add_codec_quality ("Very High (10)", 100);
+
add_endianness (E_FileDefault);
set_extension ("ogg");
add_sample_rate (SR_48);
add_sample_rate (SR_88_2);
add_sample_rate (SR_96);
+ add_sample_rate (SR_176_4);
add_sample_rate (SR_192);
add_sample_rate (SR_Session);
add_sample_rate (SR_48);
add_sample_rate (SR_88_2);
add_sample_rate (SR_96);
+ add_sample_rate (SR_176_4);
add_sample_rate (SR_192);
add_sample_rate (SR_Session);
return compatible;
}
+
+/*** FFMPEG Pipe ***/
+
+ExportFormatFFMPEG::ExportFormatFFMPEG (std::string const& name, std::string const& ext)
+{
+ set_name (name);
+ set_format_id (F_FFMPEG);
+ sample_formats.insert (SF_Float);
+
+ add_sample_rate (SR_8);
+ add_sample_rate (SR_22_05);
+ add_sample_rate (SR_44_1);
+ add_sample_rate (SR_48);
+ add_sample_rate (SR_Session);
+
+ add_endianness (E_Little);
+
+ add_codec_quality ("VBR 220-260 kb/s", 0);
+ add_codec_quality ("VBR 190-250 kb/s", -1);
+ add_codec_quality ("VBR 170-210 kb/s", -2);
+ add_codec_quality ("VBR 150-195 kb/s", -3);
+ add_codec_quality ("VBR 140-185 kb/s", -4);
+ add_codec_quality ("VBR 120-150 kb/s", -5);
+ add_codec_quality ("VBR 100-130 kb/s", -6);
+ add_codec_quality ("VBR 80-120 kb/s", -7);
+ add_codec_quality ("VBR 70-105 kb/s", -8);
+ add_codec_quality ("VBR 45-85 kb/s", -9);
+ /* Available CBR options are:
+ * 8, 16, 24, 32, 40, 48, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320
+ */
+ add_codec_quality ("CBR 64 kb/s", 64);
+ add_codec_quality ("CBR 128 kb/s", 128);
+ add_codec_quality ("CBR 160 kb/s", 160);
+ add_codec_quality ("CBR 192 kb/s", 192);
+ add_codec_quality ("CBR 256 kb/s", 256);
+ add_codec_quality ("CBR 320 kb/s", 320);
+
+ set_extension (ext);
+ set_quality (Q_LossyCompression);
+}
+
+bool
+ExportFormatFFMPEG::set_compatibility_state (ExportFormatCompatibility const & compatibility)
+{
+ bool compatible = compatibility.has_format (F_FFMPEG);
+ set_compatible (compatible);
+ return compatible;
+}
+
+
}; // namespace ARDOUR