use the "correct" order for loading frames in sony_arq_load_raw instead of reordering in pixelshift
This is cleaner (avoids having to add special cases for camera maker/model in pixelshift)
This commit is contained in:
parent
2c8349887b
commit
816fbef394
@ -2353,19 +2353,21 @@ void CLASS unpacked_load_raw()
|
||||
// RT
|
||||
void CLASS sony_arq_load_raw()
|
||||
{
|
||||
static unsigned frame2pos[] = { 0, 1, 3, 2 };
|
||||
int row, col, bits=0;
|
||||
ushort samples[4];
|
||||
unsigned frame = frame2pos[shot_select];
|
||||
|
||||
while (1 << ++bits < maximum);
|
||||
for (row=0; row < ((shot_select < 2) ? 1 : raw_height); row++) {
|
||||
for (row=0; row < ((frame < 2) ? 1 : raw_height); row++) {
|
||||
for (col=0; col < ((row == 0) ? raw_width : 1); col++) {
|
||||
RAW(row,col) = 0;
|
||||
}
|
||||
}
|
||||
for (row=0; row < raw_height; row++) {
|
||||
int r = row + (shot_select & 1);
|
||||
int r = row + (frame & 1);
|
||||
for (col=0; col < raw_width; col++) {
|
||||
int c = col + ((shot_select >> 1) & 1);
|
||||
int c = col + ((frame >> 1) & 1);
|
||||
read_shorts(samples, 4);
|
||||
if (r < raw_height && c < raw_width) {
|
||||
RAW(r,c) = samples[(2 * (r & 1)) + (c & 1)];
|
||||
|
@ -294,44 +294,6 @@ 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;
|
||||
@ -344,9 +306,6 @@ 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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user