Cleanup: fix more comments/guards (and add check script).
[libdcp.git] / src / asset_factory.cc
index bab656782bddae21dca3ab88d23441df4666c56f..240b768572c299582a679e760980e28d19d4de27 100644 (file)
  */
 
 
-#include "mono_picture_asset.h"
-#include "stereo_picture_asset.h"
-#include "sound_asset.h"
-#include "stereo_picture_asset.h"
-#include "smpte_subtitle_asset.h"
+#include "asset_factory.h"
 #include "atmos_asset.h"
 #include "compose.hpp"
-#include "asset_factory.h"
+#include "mono_j2k_picture_asset.h"
+#include "smpte_subtitle_asset.h"
+#include "sound_asset.h"
+#include "stereo_j2k_picture_asset.h"
+#include "stereo_j2k_picture_asset.h"
 #include <memory>
 
 
@@ -61,8 +61,10 @@ dcp::asset_factory (boost::filesystem::path path, bool ignore_incorrect_picture_
        */
 
        ASDCP::EssenceType_t type;
-       if (ASDCP::EssenceType (path.string().c_str(), type) != ASDCP::RESULT_OK) {
-               throw ReadError ("Could not find essence type");
+       Kumu::FileReaderFactory factory;
+       auto const result = ASDCP::EssenceType(dcp::filesystem::fix_long_path(path).string().c_str(), type, factory);
+       if (!ASDCP_SUCCESS(result)) {
+               throw ReadError(String::compose("Could not find essence type (%1)", result.Message()), path.string());
        }
        switch (type) {
        case ASDCP::ESS_UNKNOWN:
@@ -70,11 +72,11 @@ 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 make_shared<MonoPictureAsset>(path);
+                       return make_shared<MonoJ2KPictureAsset>(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 */
-                               auto stereo = make_shared<StereoPictureAsset>(path);
+                               auto stereo = make_shared<StereoJ2KPictureAsset>(path);
                                if (stereo && found_threed_marked_as_twod) {
                                        *found_threed_marked_as_twod = true;
                                }
@@ -87,7 +89,7 @@ dcp::asset_factory (boost::filesystem::path path, bool ignore_incorrect_picture_
        case ASDCP::ESS_PCM_24b_96k:
                return make_shared<SoundAsset>(path);
        case ASDCP::ESS_JPEG_2000_S:
-               return make_shared<StereoPictureAsset>(path);
+               return make_shared<StereoJ2KPictureAsset>(path);
        case ASDCP::ESS_TIMED_TEXT:
                return make_shared<SMPTESubtitleAsset>(path);
        case ASDCP::ESS_DCDATA_DOLBY_ATMOS: