blob: f540b77f1ef16dd4a002fa2ccb9c4076d1865a3a [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_);
28 return Java_EncodedImage_create(
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