summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-12-19 00:36:36 +0100
committerCarl Hetherington <cth@carlh.net>2022-12-19 00:36:38 +0100
commitde019cc2fd8c1a3b05f0b6399f29add48700aaf8 (patch)
tree3c8231e7ce71e43926ade0f9d9a9be3b0c9b383c
parent00fa987750d18ad8f0439bd8a4d940e2852854c3 (diff)
Fix weird exception handling.
This is a bit cleaner and stops odd messages about stereoscopic assets appearing in the logs.
-rw-r--r--src/lib/video_mxf_decoder.cc33
1 files changed, 9 insertions, 24 deletions
diff --git a/src/lib/video_mxf_decoder.cc b/src/lib/video_mxf_decoder.cc
index 92cab0259..40d3a461a 100644
--- a/src/lib/video_mxf_decoder.cc
+++ b/src/lib/video_mxf_decoder.cc
@@ -43,37 +43,22 @@ VideoMXFDecoder::VideoMXFDecoder (shared_ptr<const Film> film, shared_ptr<const
{
video = make_shared<VideoDecoder>(this, content);
- shared_ptr<dcp::MonoPictureAsset> mono;
try {
- mono = make_shared<dcp::MonoPictureAsset>(_content->path(0));
+ auto mono = make_shared<dcp::MonoPictureAsset>(_content->path(0));
+ _mono_reader = mono->start_read ();
+ _mono_reader->set_check_hmac (false);
+ _size = mono->size ();
+ return;
} catch (dcp::MXFFileError& e) {
/* maybe it's stereo */
} catch (dcp::ReadError& e) {
/* maybe it's stereo */
}
- shared_ptr<dcp::StereoPictureAsset> stereo;
- try {
- stereo = make_shared<dcp::StereoPictureAsset>(_content->path(0));
- } catch (dcp::MXFFileError& e) {
- if (!mono) {
- throw;
- }
- } catch (dcp::ReadError& e) {
- if (!mono) {
- throw;
- }
- }
-
- if (mono) {
- _mono_reader = mono->start_read ();
- _mono_reader->set_check_hmac (false);
- _size = mono->size ();
- } else {
- _stereo_reader = stereo->start_read ();
- _stereo_reader->set_check_hmac (false);
- _size = stereo->size ();
- }
+ auto stereo = make_shared<dcp::StereoPictureAsset>(_content->path(0));
+ _stereo_reader = stereo->start_read ();
+ _stereo_reader->set_check_hmac (false);
+ _size = stereo->size ();
}