blob: 2246fd76d2b51a61c4c5fb4c8af054b0016a5d3c [file] [log] [blame]
Sami Kalliomäki82f96e62018-01-29 13:18:57 +01001/*
2 * Copyright 2018 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#ifndef SDK_ANDROID_NATIVE_API_CODECS_WRAPPER_H_
12#define SDK_ANDROID_NATIVE_API_CODECS_WRAPPER_H_
13
14#include <jni.h>
15#include <memory>
Sergey Silkinf16e5502020-04-07 11:57:53 +020016#include <vector>
Sami Kalliomäki82f96e62018-01-29 13:18:57 +010017
Rasmus Brandtbfd44e02018-07-06 10:34:57 +020018#include "api/video_codecs/sdp_video_format.h"
Sami Kalliomäki82f96e62018-01-29 13:18:57 +010019#include "api/video_codecs/video_decoder_factory.h"
Sergey Silkinf16e5502020-04-07 11:57:53 +020020#include "api/video_codecs/video_encoder.h"
Sami Kalliomäki82f96e62018-01-29 13:18:57 +010021#include "api/video_codecs/video_encoder_factory.h"
22
23namespace webrtc {
24
Rasmus Brandtbfd44e02018-07-06 10:34:57 +020025// Creates an instance of webrtc::SdpVideoFormat from Java VideoCodecInfo.
26SdpVideoFormat JavaToNativeVideoCodecInfo(JNIEnv* jni, jobject codec_info);
27
Sami Kalliomäki82f96e62018-01-29 13:18:57 +010028// Creates an instance of webrtc::VideoDecoderFactory from Java
29// VideoDecoderFactory.
30std::unique_ptr<VideoDecoderFactory> JavaToNativeVideoDecoderFactory(
31 JNIEnv* jni,
32 jobject decoder_factory);
33
34// Creates an instance of webrtc::VideoEncoderFactory from Java
35// VideoEncoderFactory.
36std::unique_ptr<VideoEncoderFactory> JavaToNativeVideoEncoderFactory(
37 JNIEnv* jni,
38 jobject encoder_factory);
39
Sergey Silkinf16e5502020-04-07 11:57:53 +020040// Creates an array of VideoEncoder::ResolutionBitrateLimits from Java array
41// of ResolutionBitrateLimits.
42std::vector<VideoEncoder::ResolutionBitrateLimits>
43JavaToNativeResolutionBitrateLimits(JNIEnv* jni,
44 const jobjectArray j_bitrate_limits_array);
45
Sami Kalliomäki82f96e62018-01-29 13:18:57 +010046} // namespace webrtc
47
48#endif // SDK_ANDROID_NATIVE_API_CODECS_WRAPPER_H_