X-Git-Url: https://main.carlh.net/gitweb/?p=libdcp.git;a=blobdiff_plain;f=src%2Fasset_factory.cc;h=ecda1701476d2aeb81ec2838116ddbe78ac79407;hp=83580cbd18662c9eca41a37e0fbba5f9d6e7cca9;hb=a65c9be7a5c455111b44b24690fe162413268b9f;hpb=302a059052e2e55345e91b5300e2389b87bd7f0a diff --git a/src/asset_factory.cc b/src/asset_factory.cc index 83580cbd..ecda1701 100644 --- a/src/asset_factory.cc +++ b/src/asset_factory.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2018 Carl Hetherington + Copyright (C) 2018-2021 Carl Hetherington This file is part of libdcp. @@ -42,6 +42,7 @@ #include using std::shared_ptr; +using std::make_shared; using namespace dcp; shared_ptr @@ -61,27 +62,27 @@ dcp::asset_factory (boost::filesystem::path path, bool ignore_incorrect_picture_ throw ReadError ("MPEG2 video essences are not supported"); case ASDCP::ESS_JPEG_2000: try { - return shared_ptr (new MonoPictureAsset (path)); + return make_shared(path); } catch (dcp::MXFFileError& e) { if (ignore_incorrect_picture_mxf_type && e.number() == ASDCP::RESULT_SFORMAT) { /* Tried to load it as mono but the error says it's stereo; try that instead */ - return shared_ptr (new StereoPictureAsset (path)); + return make_shared(path); } else { throw; } } case ASDCP::ESS_PCM_24b_48k: case ASDCP::ESS_PCM_24b_96k: - return shared_ptr (new SoundAsset (path)); + return make_shared(path); case ASDCP::ESS_JPEG_2000_S: - return shared_ptr (new StereoPictureAsset (path)); + return make_shared(path); case ASDCP::ESS_TIMED_TEXT: - return shared_ptr (new SMPTESubtitleAsset (path)); + return make_shared(path); case ASDCP::ESS_DCDATA_DOLBY_ATMOS: - return shared_ptr (new AtmosAsset (path)); + return make_shared(path); default: - throw ReadError (String::compose ("Unknown MXF essence type %1 in %2", int(type), path.string())); + throw ReadError (String::compose("Unknown MXF essence type %1 in %2", static_cast(type), path.string())); } - return shared_ptr(); + return {}; }