Magnus Jedvert | 4eb0188 | 2017-11-20 22:33:40 +0100 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2017 The WebRTC project authors. All Rights Reserved. |
| 3 | * |
| 4 | * Use of this source code is governed by a BSD-style license |
| 5 | * that can be found in the LICENSE file in the root of the source |
| 6 | * tree. An additional intellectual property rights grant can be found |
| 7 | * in the file PATENTS. All contributing project authors may |
| 8 | * be found in the AUTHORS file in the root of the source tree. |
| 9 | */ |
| 10 | |
| 11 | #include "sdk/android/src/jni/encodedimage.h" |
| 12 | |
| 13 | #include "common_video/include/video_frame.h" |
| 14 | #include "rtc_base/timeutils.h" |
| 15 | #include "sdk/android/generated_video_jni/jni/EncodedImage_jni.h" |
| 16 | |
| 17 | namespace webrtc { |
| 18 | namespace jni { |
| 19 | |
| 20 | jobject NativeToJavaFrameType(JNIEnv* env, FrameType frame_type) { |
| 21 | return Java_FrameType_fromNativeIndex(env, frame_type); |
| 22 | } |
| 23 | |
| 24 | jobject NativeToJavaEncodedImage(JNIEnv* jni, const EncodedImage& image) { |
| 25 | jobject buffer = jni->NewDirectByteBuffer(image._buffer, image._length); |
| 26 | jobject frame_type = NativeToJavaFrameType(jni, image._frameType); |
| 27 | jobject qp = (image.qp_ == -1) ? nullptr : JavaIntegerFromInt(jni, image.qp_); |
Magnus Jedvert | 1f2a3e7 | 2017-11-23 16:56:44 +0100 | [diff] [blame] | 28 | return Java_EncodedImage_Constructor( |
Magnus Jedvert | 4eb0188 | 2017-11-20 22:33:40 +0100 | [diff] [blame] | 29 | jni, buffer, image._encodedWidth, image._encodedHeight, |
| 30 | image.capture_time_ms_ * rtc::kNumNanosecsPerMillisec, frame_type, |
| 31 | static_cast<jint>(image.rotation_), image._completeFrame, qp); |
| 32 | } |
| 33 | |
| 34 | } // namespace jni |
| 35 | } // namespace webrtc |