diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-01-07 23:22:48 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-01-07 23:23:08 +0100 |
| commit | 2ac6688e4e75ff26db9208e760966bd071dcc48f (patch) | |
| tree | b07e8890c13c23b7d3a05274965029697f4fc4dc /src/lib/decoder_factory.cc | |
| parent | 89d4090c6b1bdf889c2302b92e1f4bf33cf7cf05 (diff) | |
C++11 tidying.
Diffstat (limited to 'src/lib/decoder_factory.cc')
| -rw-r--r-- | src/lib/decoder_factory.cc | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/src/lib/decoder_factory.cc b/src/lib/decoder_factory.cc index 1acef6f4f..cb17d27d1 100644 --- a/src/lib/decoder_factory.cc +++ b/src/lib/decoder_factory.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2016-2020 Carl Hetherington <cth@carlh.net> + Copyright (C) 2016-2022 Carl Hetherington <cth@carlh.net> This file is part of DCP-o-matic. @@ -18,82 +18,86 @@ */ + #include "atmos_mxf_content.h" #include "atmos_mxf_decoder.h" -#include "ffmpeg_content.h" -#include "ffmpeg_decoder.h" #include "dcp_content.h" #include "dcp_decoder.h" +#include "dcp_subtitle_content.h" +#include "dcp_subtitle_decoder.h" +#include "ffmpeg_content.h" +#include "ffmpeg_decoder.h" #include "image_content.h" #include "image_decoder.h" #include "string_text_file_content.h" #include "string_text_file_decoder.h" -#include "dcp_subtitle_content.h" -#include "dcp_subtitle_decoder.h" +#include "timer.h" #include "video_mxf_content.h" #include "video_mxf_decoder.h" -#include "timer.h" + +using std::dynamic_pointer_cast; using std::list; +using std::make_shared; using std::shared_ptr; -using std::dynamic_pointer_cast; + template <class T> shared_ptr<T> maybe_cast (shared_ptr<Decoder> d) { if (!d) { - return shared_ptr<T> (); + return {}; } return dynamic_pointer_cast<T> (d); } -/** - @param tolerant true to proceed in the face of `survivable' errors, otherwise false. - @param old_decoder A `used' decoder that has been previously made for this piece of content, or 0 + +/** @param tolerant true to proceed in the face of `survivable' errors, otherwise false. + * @param old_decoder A `used' decoder that has been previously made for this piece of content, or 0 */ shared_ptr<Decoder> decoder_factory (shared_ptr<const Film> film, shared_ptr<const Content> content, bool fast, bool tolerant, shared_ptr<Decoder> old_decoder) { - shared_ptr<const FFmpegContent> fc = dynamic_pointer_cast<const FFmpegContent> (content); + auto fc = dynamic_pointer_cast<const FFmpegContent>(content); if (fc) { - return shared_ptr<Decoder> (new FFmpegDecoder(film, fc, fast)); + return make_shared<FFmpegDecoder>(film, fc, fast); } - shared_ptr<const DCPContent> dc = dynamic_pointer_cast<const DCPContent> (content); + auto dc = dynamic_pointer_cast<const DCPContent>(content); if (dc) { try { - return shared_ptr<Decoder> (new DCPDecoder(film, dc, fast, tolerant, maybe_cast<DCPDecoder>(old_decoder))); + return make_shared<DCPDecoder>(film, dc, fast, tolerant, maybe_cast<DCPDecoder>(old_decoder)); } catch (KDMError& e) { /* This will be found and reported to the user when the content is examined */ - return shared_ptr<Decoder>(); + return {}; } } - shared_ptr<const ImageContent> ic = dynamic_pointer_cast<const ImageContent> (content); + auto ic = dynamic_pointer_cast<const ImageContent>(content); if (ic) { - return shared_ptr<Decoder> (new ImageDecoder(film, ic)); + return make_shared<ImageDecoder>(film, ic); } - shared_ptr<const StringTextFileContent> rc = dynamic_pointer_cast<const StringTextFileContent> (content); + auto rc = dynamic_pointer_cast<const StringTextFileContent>(content); if (rc) { - return shared_ptr<Decoder> (new StringTextFileDecoder(film, rc)); + return make_shared<StringTextFileDecoder>(film, rc); } - shared_ptr<const DCPSubtitleContent> dsc = dynamic_pointer_cast<const DCPSubtitleContent> (content); + auto dsc = dynamic_pointer_cast<const DCPSubtitleContent> (content); if (dsc) { - return shared_ptr<Decoder> (new DCPSubtitleDecoder(film, dsc)); + return make_shared<DCPSubtitleDecoder>(film, dsc); } - shared_ptr<const VideoMXFContent> vmc = dynamic_pointer_cast<const VideoMXFContent> (content); + auto vmc = dynamic_pointer_cast<const VideoMXFContent> (content); if (vmc) { - return shared_ptr<Decoder> (new VideoMXFDecoder(film, vmc)); + return make_shared<VideoMXFDecoder>(film, vmc); } - shared_ptr<const AtmosMXFContent> amc = dynamic_pointer_cast<const AtmosMXFContent> (content); + auto amc = dynamic_pointer_cast<const AtmosMXFContent> (content); if (amc) { - return shared_ptr<Decoder> (new AtmosMXFDecoder(film, amc)); + return make_shared<AtmosMXFDecoder>(film, amc); } - return shared_ptr<Decoder> (); + return {}; } |
