Fix false-positive duplicate format detection

Previously, stem-exports of more than 1 channel always included
the export-format, even if only one format was exported.
This commit is contained in:
Robin Gareus 2018-10-02 21:22:36 +02:00
parent 2b95b5b8b3
commit 62cd539143
2 changed files with 11 additions and 3 deletions

View File

@ -185,8 +185,7 @@ ExportFilename::get_path (ExportFormatSpecPtr format) const
&& !include_timespan
&& !include_channel_config
&& !include_channel
&& !include_date
&& !include_format_name) {
&& !include_date) {
with_timespan = true;
}

View File

@ -227,7 +227,16 @@ ExportHandler::handle_duplicate_format_extensions()
ExtCountMap counts;
for (ConfigMap::iterator it = timespan_bounds.first; it != timespan_bounds.second; ++it) {
counts[it->second.format->extension()]++;
if (it->second.filename->include_channel_config && it->second.channel_config) {
/* stem-export has multiple files in the same timestamp, but a different channel_config for each.
* However channel_config is only set in ExportGraphBuilder::Encoder::init_writer()
* so we cannot yet use it->second.filename->get_path(it->second.format).
* We have to explicily check uniqueness of "channel-config + extension" here:
*/
counts[it->second.channel_config->name() + it->second.format->extension()]++;
} else {
counts[it->second.format->extension()]++;
}
}
bool duplicates_found = false;