26 #include <libopenraw/debug.h>
28 #include "rawfile.hpp"
30 #include "tiffepfile.hpp"
32 #include "ifdfilecontainer.hpp"
34 using namespace Debug;
39 TiffEpFile::TiffEpFile(
const IO::Stream::Ptr &s,
46 IfdDir::Ref TiffEpFile::_locateCfaIfd()
48 const IfdDir::Ref & _mainIfd = mainIfd();
51 LOGDBG1(
"couldn't find main ifd\n");
54 if (_mainIfd->isPrimary()) {
57 auto result = _mainIfd->getSubIFDs();
60 LOGDBG1(
"couldn't find main ifd nor subifds\n");
64 std::vector<IfdDir::Ref> subdirs = result.value();
65 auto i = find_if(subdirs.cbegin(),
67 [] (
const IfdDir::Ref& e) {
68 return e->isPrimary();
70 if (i != subdirs.cend()) {
73 LOGDBG1(
"couldn't find a primary subifd\n");
77 IfdDir::Ref TiffEpFile::_locateMainIfd()
79 return m_container->setDirectory(0);