Delete transitional method EncodedImage.maybeRetain
Bug: webrtc:9378 Change-Id: Ibe3d5bad835d1725faa38f8e2a804efc9272776e Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/155661 Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30072}
This commit is contained in:
@ -29,7 +29,7 @@ class JavaEncodedImageBuffer : public EncodedImageBufferInterface {
|
||||
const JavaRef<jobject>& j_encoded_image,
|
||||
const uint8_t* payload,
|
||||
size_t size)
|
||||
: j_encoded_image_(ScopedJavaRefCounted::Adopt(env, j_encoded_image)),
|
||||
: j_encoded_image_(ScopedJavaRefCounted::Retain(env, j_encoded_image)),
|
||||
data_(const_cast<uint8_t*>(payload)),
|
||||
size_(size) {}
|
||||
|
||||
@ -65,7 +65,7 @@ ScopedJavaLocalRef<jobject> NativeToJavaEncodedImage(
|
||||
// TODO(bugs.webrtc.org/9378): Keep a reference to the C++ EncodedImage data,
|
||||
// and use the releaseCallback to manage lifetime.
|
||||
return Java_EncodedImage_Constructor(
|
||||
jni, buffer, /*supportsRetain=*/true,
|
||||
jni, buffer,
|
||||
/*releaseCallback=*/ScopedJavaGlobalRef<jobject>(nullptr),
|
||||
static_cast<int>(image._encodedWidth),
|
||||
static_cast<int>(image._encodedHeight),
|
||||
@ -90,13 +90,8 @@ EncodedImage JavaToNativeEncodedImage(JNIEnv* env,
|
||||
const size_t buffer_size = env->GetDirectBufferCapacity(j_buffer.obj());
|
||||
|
||||
EncodedImage frame;
|
||||
if (Java_EncodedImage_maybeRetain(env, j_encoded_image)) {
|
||||
frame.SetEncodedData(new rtc::RefCountedObject<JavaEncodedImageBuffer>(
|
||||
env, j_encoded_image, buffer, buffer_size));
|
||||
} else {
|
||||
// Encoder doesn't support retain/release, so make a copy.
|
||||
frame.SetEncodedData(EncodedImageBuffer::Create(buffer, buffer_size));
|
||||
}
|
||||
frame.SetEncodedData(new rtc::RefCountedObject<JavaEncodedImageBuffer>(
|
||||
env, j_encoded_image, buffer, buffer_size));
|
||||
|
||||
frame._encodedWidth = Java_EncodedImage_getEncodedWidth(env, j_encoded_image);
|
||||
frame._encodedHeight =
|
||||
|
||||
@ -15,12 +15,22 @@
|
||||
namespace webrtc {
|
||||
namespace jni {
|
||||
|
||||
// static
|
||||
ScopedJavaRefCounted ScopedJavaRefCounted::Retain(
|
||||
JNIEnv* jni,
|
||||
const JavaRef<jobject>& j_object) {
|
||||
Java_RefCounted_retain(jni, j_object);
|
||||
CHECK_EXCEPTION(jni)
|
||||
<< "Unexpected java exception from java JavaRefCounted.retain()";
|
||||
return Adopt(jni, j_object);
|
||||
}
|
||||
|
||||
ScopedJavaRefCounted::~ScopedJavaRefCounted() {
|
||||
if (!j_object_.is_null()) {
|
||||
JNIEnv* jni = AttachCurrentThreadIfNeeded();
|
||||
Java_RefCounted_release(jni, j_object_);
|
||||
CHECK_EXCEPTION(jni)
|
||||
<< "Unexpected java exception from ScopedJavaRefCounted.release()";
|
||||
<< "Unexpected java exception from java RefCounted.release()";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -20,11 +20,14 @@ namespace jni {
|
||||
class ScopedJavaRefCounted {
|
||||
public:
|
||||
// Takes over the caller's reference.
|
||||
static ScopedJavaRefCounted Adopt(JNIEnv* env,
|
||||
static ScopedJavaRefCounted Adopt(JNIEnv* jni,
|
||||
const JavaRef<jobject>& j_object) {
|
||||
return ScopedJavaRefCounted(env, j_object);
|
||||
return ScopedJavaRefCounted(jni, j_object);
|
||||
}
|
||||
|
||||
// Retains the java object for the live time of this object.
|
||||
static ScopedJavaRefCounted Retain(JNIEnv* jni,
|
||||
const JavaRef<jobject>& j_object);
|
||||
ScopedJavaRefCounted(ScopedJavaRefCounted&& other) = default;
|
||||
|
||||
// TODO(nisse): Implement move assignment and copy operations when needed.
|
||||
@ -35,8 +38,8 @@ class ScopedJavaRefCounted {
|
||||
|
||||
private:
|
||||
// Adopts reference.
|
||||
ScopedJavaRefCounted(JNIEnv* env, const JavaRef<jobject>& j_object)
|
||||
: j_object_(env, j_object) {}
|
||||
ScopedJavaRefCounted(JNIEnv* jni, const JavaRef<jobject>& j_object)
|
||||
: j_object_(jni, j_object) {}
|
||||
|
||||
ScopedJavaGlobalRef<jobject> j_object_;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user