summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2021-11-25ipa: raspberrypi: Update documentation urlsNaushir Patuck
2021-11-24libcamera: object: Avoid argument copies in invokeMethod()Laurent Pinchart
2021-11-24v4l2: Convert to pragma onceKieran Bingham
2021-11-24utils: Convert to pragma onceKieran Bingham
2021-11-24test: Convert to pragma onceKieran Bingham
2021-11-24qcam: Convert to pragma onceKieran Bingham
2021-11-24lc-compliance: Convert to pragma onceKieran Bingham
2021-11-24ipa: libipa: Convert to pragma onceKieran Bingham
2021-11-24ipa: ipu3: Convert to pragma onceKieran Bingham
2021-11-24gstreamer: Convert to pragma onceKieran Bingham
2021-11-24cam: Convert to pragma onceKieran Bingham
2021-11-24android: Convert to pragma onceKieran Bingham
2021-11-24libcamera: pipeline: Convert to pragma onceKieran Bingham
2021-11-24libcamera: ipa: Convert to pragma onceKieran Bingham
2021-11-24libcamera: internal: Convert to pragma onceKieran Bingham
2021-11-24libcamera: base: Convert to pragma onceKieran Bingham
2021-11-24libcamera: Convert to pragma onceKieran Bingham
2021-11-23ipa: ipu3: Fix IPAContext documentationJean-Michel Hautbois
2021-11-23pipeline: raspberrypi: Avoid invalid PixelFormat warning messageNaushir Patuck
2021-11-23pipeline: raspberrypi: Increase the V4L2BufferCache slot allocationsNaushir Patuck
2021-11-23pipeline: raspberrypi: Rework the internal buffer allocation schemeNaushir Patuck
2021-11-23pipeline: raspberrypi: Add const qualifer in isRaw()Naushir Patuck
2021-11-23ipa: ipu3: agc: Saturate the averages when computing relative luminanceLaurent Pinchart
2021-11-23ipa: ipu3: agc: Return the inter-quantile mean from measureBrightness()Laurent Pinchart
2021-11-23ipa: ipu3: agc: Rename currentYGainLaurent Pinchart
2021-11-23ipa: ipu3: agc: Standardize vocabulary on "relative luminance"Laurent Pinchart
2021-11-23ipa: ipu3: agc: Drop kMaxLuminance constantLaurent Pinchart
2021-11-18Documentation: coding-style: Document the git commit hooksLaurent Pinchart
2021-11-16ipa: ipu3: agc: Remove the threshold for the histogram calculationJean-Michel Hautbois
2021-11-15lc-compliance: Build with gtest in subprojectsHirokazu Honda
2021-11-15ipa: ipu3: Set the AnalogueGain controlJean-Michel Hautbois
2021-11-15ipa: ipu3: Move ExposureTime to IPAJean-Michel Hautbois
2021-11-15ipa: ipu3: Cache line duration at configure callJean-Michel Hautbois
2021-11-15ipa: ipu3: Send color temperature in the metadataJean-Michel Hautbois
2021-11-15ipa: ipu3: awb: Add support for color temperatureJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Store exposure in units of timeJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Update previous exposure valueJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Improve gain calculationJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Refactor ev gain calculation and testingJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Compute the gain for each frameJean-Michel Hautbois
2021-11-15ipa: ipu3: agc: Limit the number of saturated cellsJean-Michel Hautbois
2021-11-15ipa: ipu3: Use sensor controls to update frameContextJean-Michel Hautbois
2021-11-15ipu3: ipa: Report effective sensor controls with statistics to IPAHan-Lin Chen
2021-11-15ipa: ipu3: Extend ipu3 ipa interface for sensor controlsHan-Lin Chen
2021-11-11libcamera: pipeline: ipu3: Fix minCrop indentationKieran Bingham
2021-11-08android: Camera3RequestDescriptor: Provide a constructor for StreamBufferUmang Jain
2021-11-08android: mm: Null check for CameraBufferManagerUmang Jain
2021-11-06ipa: ipu3: List the events in their order of callingJean-Michel Hautbois
2021-11-04libcamera: framebuffer: Fix isContiguous log messageKieran Bingham
2021-11-02pipeline: raspberrypi: Fix rounding issue in findBestFormat()Naushir Patuck
class="hl num">1, S...> { }; template<int... S> struct generator<0, S...> { typedef sequence<S...> type; }; #endif using PackType = std::tuple<typename std::remove_reference<Args>::type...>; template<int... S> void invokePack(void *pack, sequence<S...>) { PackType *args = static_cast<PackType *>(pack); invoke(std::get<S>(*args)...); delete args; } public: BoundMethodArgs(void *obj, Object *object, ConnectionType type) : BoundMethodBase(obj, object, type) {} void invokePack(void *pack) override { invokePack(pack, typename generator<sizeof...(Args)>::type()); } virtual void activate(Args... args) = 0; virtual void invoke(Args... args) = 0; }; template<typename T, typename... Args> class BoundMemberMethod : public BoundMethodArgs<Args...> { public: using PackType = std::tuple<typename std::remove_reference<Args>::type...>; BoundMemberMethod(T *obj, Object *object, void (T::*func)(Args...), ConnectionType type = ConnectionTypeAuto) : BoundMethodArgs<Args...>(obj, object, type), func_(func) { } bool match(void (T::*func)(Args...)) const { return func == func_; } void activate(Args... args) { if (this->object_) BoundMethodBase::activatePack(new PackType{ args... }, false); else (static_cast<T *>(this->obj_)->*func_)(args...); } void invoke(Args... args) { (static_cast<T *>(this->obj_)->*func_)(args...); } private: void (T::*func_)(Args...); }; template<typename... Args> class BoundStaticMethod : public BoundMethodArgs<Args...> { public: BoundStaticMethod(void (*func)(Args...)) : BoundMethodArgs<Args...>(nullptr, nullptr, ConnectionTypeAuto), func_(func) { } bool match(void (*func)(Args...)) const { return func == func_; } void activate(Args... args) { (*func_)(args...); } void invoke(Args...) {} private: