diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-12-19 00:36:36 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-12-19 00:36:38 +0100 |
| commit | de019cc2fd8c1a3b05f0b6399f29add48700aaf8 (patch) | |
| tree | 3c8231e7ce71e43926ade0f9d9a9be3b0c9b383c | |
| parent | 00fa987750d18ad8f0439bd8a4d940e2852854c3 (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.cc | 33 |
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 (); } |
