// Copyright (c) 2012-2017 VideoStitch SAS
// Copyright (c) 2018 stitchEm
#include "gpu/event.hpp"
#include <cuda_runtime.h>
#include <cuda/error.hpp>
#include <memory>
namespace VideoStitch {
namespace GPU {
class Event::DeviceEvent {
public:
explicit DeviceEvent(cudaEvent_t e) : event{new cudaEvent_t(e), &EventDeleter} {}
static Event create(cudaEvent_t cle);
static void EventDeleter(cudaEvent_t *cudaPtr) {
CUDA_ERROR(cudaEventDestroy(*cudaPtr));
delete cudaPtr;
}
friend class Event;
std::shared_ptr<cudaEvent_t> event;
};
} // namespace GPU
} // namespace VideoStitch
-
stitchEm authoredf1d60797