1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Copyright (c) 2012-2017 VideoStitch SAS
// Copyright (c) 2018 stitchEm
#include "exposureDiffImageMerger.hpp"
#include "imageMapping.hpp"
#include "gpu/core1/mergerKernel.hpp"
#include "parse/json.hpp"
namespace VideoStitch {
namespace Core {
Potential<ImageMerger> ExposureDiffImageMerger::Factory::create(const PanoDefinition& pano, ImageMapping& fromIm,
const ImageMerger* to, bool) const {
return new ExposureDiffImageMerger(pano, fromIm, to);
}
ImageMergerFactory* ExposureDiffImageMerger::Factory::clone() const { return new Factory(); }
Ptv::Value* Core::ExposureDiffImageMerger::Factory::serialize() const {
Ptv::Value* res = Ptv::Value::emptyObject();
res->push("type", new Parse::JsonValue("exposure_diff"));
return res;
}
ExposureDiffImageMerger::ExposureDiffImageMerger(const PanoDefinition& /*pano*/, ImageMapping& fromIm,
const ImageMerger* to)
: ImageMerger(fromIm.getImId(), to) {}
ExposureDiffImageMerger::~ExposureDiffImageMerger() {}
std::string ExposureDiffImageMerger::Factory::hash() const { return "v1_ExposureDiffImageMerger"; }
Status ExposureDiffImageMerger::mergeAsync(TextureTarget t, const PanoDefinition& pano,
GPU::Buffer<uint32_t> panoDevOut, GPU::UniqueBuffer<uint32_t>&,
const ImageMapping& fromIm, bool, GPU::Stream stream) const {
return exposureDiffRGB(t, pano, panoDevOut, fromIm, stream);
}
Status ExposureDiffImageMerger::reconstruct(TextureTarget, const PanoDefinition& pano, GPU::Buffer<uint32_t> panoDevOut,
bool, GPU::Stream stream) const {
return disregardNoDiffArea(pano, panoDevOut, stream);
}
} // namespace Core
} // namespace VideoStitch