summaryrefslogtreecommitdiff
path: root/src/stereo_picture_asset_writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/stereo_picture_asset_writer.cc')
-rw-r--r--src/stereo_picture_asset_writer.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/stereo_picture_asset_writer.cc b/src/stereo_picture_asset_writer.cc
index e02e8360..f4ec7df0 100644
--- a/src/stereo_picture_asset_writer.cc
+++ b/src/stereo_picture_asset_writer.cc
@@ -68,6 +68,17 @@ StereoPictureAssetWriter::StereoPictureAssetWriter (PictureAsset* mxf, boost::fi
}
+StereoPictureAssetWriter::~StereoPictureAssetWriter()
+{
+ try {
+ /* Last-resort finalization to close the file, at least */
+ if (_started) {
+ _state->mxf_writer.Finalize();
+ }
+ } catch (...) {}
+}
+
+
void
StereoPictureAssetWriter::start (uint8_t const * data, int size)
{
@@ -140,6 +151,7 @@ StereoPictureAssetWriter::finalize ()
if (ASDCP_FAILURE(r)) {
boost::throw_exception (MXFFileError("error in finalizing video MXF", _file.string(), r));
}
+ _started = false;
}
_picture_asset->_intrinsic_duration = _frames_written;