blob: 966ef93d39b3041d098389326f748809e22bc1f4 [file] [log] [blame]
Magnus Jedvert4eb01882017-11-20 22:33:40 +01001/*
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
17namespace webrtc {
18namespace jni {
19
20jobject NativeToJavaFrameType(JNIEnv* env, FrameType frame_type) {
21 return Java_FrameType_fromNativeIndex(env, frame_type);
22}
23
24jobject 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 Jedvert1f2a3e72017-11-23 16:56:44 +010028 return Java_EncodedImage_Constructor(
Magnus Jedvert4eb01882017-11-20 22:33:40 +010029 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