Initial support for pixel-shift for the Sony A7RIII

Only with ARQ files for now, and no sony-specific constants for motion correction yet
This commit is contained in:
Alberto Griggio
2017-12-12 20:49:43 +01:00
parent 4cc7861125
commit 890d896817
3 changed files with 81 additions and 0 deletions

View File

@@ -295,6 +295,43 @@ void calcFrameBrightnessFactor(unsigned int frame, uint32_t datalen, LUT<uint32_
}
class RawDataFrameReorder {
public:
typedef array2D<float> *array2D_ptr;
RawDataFrameReorder(const std::string &model, array2D_ptr *rawDataFrames):
model_(model),
frames_(rawDataFrames)
{
if (model_ == "ILCE-7RM3") {
std::swap(frames_[2], frames_[3]);
}
}
~RawDataFrameReorder()
{
if (model_ == "ILCE-7RM3") {
std::swap(frames_[2], frames_[3]);
}
}
unsigned int getframe(unsigned int frame)
{
if (model_ == "ILCE-7RM3") {
if (frame == 2) {
return 3;
} else if (frame == 3) {
return 2;
}
}
return frame;
}
private:
std::string model_;
array2D_ptr *frames_;
};
}
using namespace std;
@@ -307,6 +344,9 @@ void RawImageSource::pixelshift(int winx, int winy, int winw, int winh, const RA
return;
}
RawDataFrameReorder reorder_frames(model, rawDataFrames);
frame = reorder_frames.getframe(frame);
RAWParams::BayerSensor bayerParams = bayerParamsIn;
bayerParams.pixelShiftAutomatic = true;