RF64, RF64 (WAV) and MBWF native file header formats

This commit is contained in:
Paul Davis 2015-09-08 17:39:41 -04:00
parent f1c0f587ca
commit bbfb53e881
2 changed files with 32 additions and 0 deletions

View file

@ -152,6 +152,23 @@ SndFileSource::SndFileSource (Session& s, const string& path, const string& orig
_flags = Flag (_flags & ~Broadcast);
break;
case RF64_WAV:
fmt = SF_FORMAT_RF64;
_flags = Flag (_flags & ~Broadcast);
_flags = Flag (_flags | RF64_RIFF);
break;
case MBWF:
fmt = SF_FORMAT_RF64;
_flags = Flag (_flags | Broadcast);
_flags = Flag (_flags | RF64_RIFF);
break;
case RF64:
fmt = SF_FORMAT_RF64;
_flags = Flag (_flags & ~Broadcast);
break;
default:
fatal << string_compose (_("programming error: %1"), X_("unsupported audio header format requested")) << endmsg;
abort(); /*NOTREACHED*/
@ -296,6 +313,19 @@ SndFileSource::open ()
_length = _info.frames;
#ifdef HAVE_RF64_RIFF
if (_file_is_new && _length == 0 && writable()) {
if (_flags & RF64_RIFF) {
if (sf_command (_sndfile, SFC_AUTO_DOWNGRADE_RF64, 0, 0) != SF_TRUE) {
char errbuf[256];
sf_error_str (_sndfile, errbuf, sizeof (errbuf) - 1);
error << string_compose (_("Cannot mark RF64 audio file for automatic downgrade to WAV: %1"), errbuf)
<< endmsg;
}
}
}
#endif
if (!_broadcast_info) {
_broadcast_info = new BroadcastInfo;
}

View file

@ -649,6 +649,8 @@ ARDOUR::native_header_format_extension (HeaderFormat hf, const DataType& type)
case iXML:
return ".ixml";
case RF64:
case RF64_WAV:
case MBWF:
return ".rf64";
}