#ifndef BASE_ANDROID_SCOPED_HARDWARE_BUFFER_FENCE_SYNC_H_
#define BASE_ANDROID_SCOPED_HARDWARE_BUFFER_FENCE_SYNC_H_
#include "base/android/scoped_hardware_buffer_handle.h"
#include "base/base_export.h"
#include "base/files/scoped_file.h"
namespace base {
namespace android {
class BASE_EXPORT ScopedHardwareBufferFenceSync {
public:
ScopedHardwareBufferFenceSync(
base::android::ScopedHardwareBufferHandle handle,
base::ScopedFD fence_fd,
base::ScopedFD available_fence_fd,
bool is_video);
virtual ~ScopedHardwareBufferFenceSync();
AHardwareBuffer* buffer() const { return handle_.get(); }
ScopedHardwareBufferHandle TakeBuffer();
ScopedFD TakeFence();
ScopedFD TakeAvailableFence();
bool is_video() const { return is_video_; }
virtual void SetReadFence(base::ScopedFD fence_fd) = 0;
private:
ScopedHardwareBufferHandle handle_;
ScopedFD fence_fd_;
ScopedFD available_fence_fd_;
const bool is_video_;
};
}
}
#endif