Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(504)

Unified Diff: media/capture/video/android/video_capture_device_android.cc

Issue 2186043002: VideoCaptureDeviceAndroid: add ThreadChecker, lock access to |client_|, mini cleanup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/capture/video/android/video_capture_device_android.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/capture/video/android/video_capture_device_android.cc
diff --git a/media/capture/video/android/video_capture_device_android.cc b/media/capture/video/android/video_capture_device_android.cc
index 715f8f4c966eacb91e7d918024e9b8191f127d03..5c26b38e78dfe9b16e6d6fcf5be2104a0670ff86 100644
--- a/media/capture/video/android/video_capture_device_android.cc
+++ b/media/capture/video/android/video_capture_device_android.cc
@@ -43,6 +43,7 @@ VideoCaptureDeviceAndroid::VideoCaptureDeviceAndroid(const Name& device_name)
}
VideoCaptureDeviceAndroid::~VideoCaptureDeviceAndroid() {
+ DCHECK(thread_checker_.CalledOnValidThread());
StopAndDeAllocate();
}
@@ -59,7 +60,7 @@ bool VideoCaptureDeviceAndroid::Init() {
void VideoCaptureDeviceAndroid::AllocateAndStart(
const VideoCaptureParams& params,
std::unique_ptr<Client> client) {
- DVLOG(1) << __FUNCTION__;
+ DCHECK(thread_checker_.CalledOnValidThread());
{
base::AutoLock lock(lock_);
if (state_ != kIdle)
@@ -79,7 +80,6 @@ void VideoCaptureDeviceAndroid::AllocateAndStart(
return;
}
- // Store current width and height.
capture_format_.frame_size.SetSize(
Java_VideoCapture_queryWidth(env, j_capture_.obj()),
Java_VideoCapture_queryHeight(env, j_capture_.obj()));
@@ -97,9 +97,9 @@ void VideoCaptureDeviceAndroid::AllocateAndStart(
capture_format_.frame_rate);
}
- DVLOG(1) << "VideoCaptureDeviceAndroid::Allocate: queried frame_size="
- << capture_format_.frame_size.ToString()
- << ", frame_rate=" << capture_format_.frame_rate;
+ DVLOG(1) << __FUNCTION__ << " requested ("
+ << capture_format_.frame_size.ToString() << ")@ "
+ << capture_format_.frame_rate << "fps";
ret = Java_VideoCapture_startCapture(env, j_capture_.obj());
if (!ret) {
@@ -114,7 +114,7 @@ void VideoCaptureDeviceAndroid::AllocateAndStart(
}
void VideoCaptureDeviceAndroid::StopAndDeAllocate() {
- DVLOG(1) << __FUNCTION__;
+ DCHECK(thread_checker_.CalledOnValidThread());
{
base::AutoLock lock(lock_);
if (state_ != kCapturing && state_ != kError)
@@ -123,7 +123,7 @@ void VideoCaptureDeviceAndroid::StopAndDeAllocate() {
JNIEnv* env = AttachCurrentThread();
- jboolean ret = Java_VideoCapture_stopCapture(env, j_capture_.obj());
+ const jboolean ret = Java_VideoCapture_stopCapture(env, j_capture_.obj());
if (!ret) {
SetErrorState(FROM_HERE, "failed to stop capture");
return;
@@ -139,7 +139,7 @@ void VideoCaptureDeviceAndroid::StopAndDeAllocate() {
}
void VideoCaptureDeviceAndroid::TakePhoto(TakePhotoCallback callback) {
- DVLOG(1) << __FUNCTION__;
+ DCHECK(thread_checker_.CalledOnValidThread());
{
base::AutoLock lock(lock_);
if (state_ != kCapturing)
@@ -165,6 +165,7 @@ void VideoCaptureDeviceAndroid::TakePhoto(TakePhotoCallback callback) {
void VideoCaptureDeviceAndroid::GetPhotoCapabilities(
GetPhotoCapabilitiesCallback callback) {
+ DCHECK(thread_checker_.CalledOnValidThread());
JNIEnv* env = AttachCurrentThread();
PhotoCapabilities caps(
@@ -199,6 +200,7 @@ void VideoCaptureDeviceAndroid::GetPhotoCapabilities(
void VideoCaptureDeviceAndroid::SetPhotoOptions(
mojom::PhotoSettingsPtr settings,
SetPhotoOptionsCallback callback) {
+ DCHECK(thread_checker_.CalledOnValidThread());
JNIEnv* env = AttachCurrentThread();
// |width| and/or |height| are kept for the next TakePhoto()s.
if (settings->has_width || settings->has_height)
@@ -225,9 +227,11 @@ void VideoCaptureDeviceAndroid::OnFrameAvailable(
jint rotation) {
DVLOG(3) << __FUNCTION__ << " length =" << length;
- base::AutoLock lock(lock_);
- if (state_ != kCapturing || !client_.get())
- return;
+ {
+ base::AutoLock lock(lock_);
+ if (state_ != kCapturing || !client_.get())
+ return;
+ }
chfremer 2016/07/27 17:07:59 Not sure we really can reduce the scope of the loc
mcasas 2016/07/27 18:40:54 You're right, done.
jbyte* buffer = env->GetByteArrayElements(data, NULL);
if (!buffer) {
« no previous file with comments | « media/capture/video/android/video_capture_device_android.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698