Bug 1350241 -Part1: Provide data structure of {Audio,Video}Info and demuxed sample for the use of HLS on Fennec. r=jolin,jya

MozReview-Commit-ID: 11triLS84Gq

--HG--
extra : rebase_source : a1c0d04a476560156ddf4919ab4fc277833b4db1
This commit is contained in:
Kilik Kuo 2017-05-25 12:46:06 +08:00
Родитель cbf941ed71
Коммит 7f124232fa
6 изменённых файлов: 934 добавлений и 0 удалений

Просмотреть файл

@ -461,6 +461,14 @@ gvjar.sources += [geckoview_thirdparty_source_dir + f for f in [
'java/com/googlecode/eyesfree/braille/selfbraille/WriteData.java',
]]
if CONFIG['MOZ_ANDROID_HLS_SUPPORT']:
gvjar.sources += [geckoview_source_dir + 'java/org/mozilla/gecko/' + x for x in [
'media/GeckoAudioInfo.java',
'media/GeckoHlsSample.java',
'media/GeckoVideoInfo.java',
]]
gvjar.extra_jars += [
CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],

Просмотреть файл

@ -0,0 +1,30 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.media;
import java.nio.ByteBuffer;
import org.mozilla.gecko.annotation.WrapForJNI;
//A subset of the class AudioInfo in dom/media/MediaInfo.h
@WrapForJNI
public final class GeckoAudioInfo {
final public byte[] codecSpecificData;
final public int rate;
final public int channels;
final public int bitDepth;
final public int profile;
final public long duration;
final public String mimeType;
public GeckoAudioInfo(int rate, int channels, int bitDepth, int profile,
long duration, String mimeType, byte[] codecSpecificData) {
this.rate = rate;
this.channels = channels;
this.bitDepth = bitDepth;
this.profile = profile;
this.duration = duration;
this.mimeType = mimeType;
this.codecSpecificData = codecSpecificData;
}
}

Просмотреть файл

@ -0,0 +1,86 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.media;
import android.media.MediaCodec;
import android.media.MediaCodec.BufferInfo;
import android.media.MediaCodec.CryptoInfo;
import org.mozilla.gecko.annotation.WrapForJNI;
import java.io.IOException;
import java.nio.ByteBuffer;
public final class GeckoHlsSample {
public static final GeckoHlsSample EOS;
static {
BufferInfo eosInfo = new BufferInfo();
eosInfo.set(0, 0, Long.MIN_VALUE, MediaCodec.BUFFER_FLAG_END_OF_STREAM);
EOS = new GeckoHlsSample(null, eosInfo, null, 0);
}
// Indicate the index of format which is used by this sample.
@WrapForJNI
final public int formatIndex;
@WrapForJNI
public long duration;
@WrapForJNI
final public BufferInfo info;
@WrapForJNI
final public CryptoInfo cryptoInfo;
private ByteBuffer buffer = null;
@WrapForJNI
public void writeToByteBuffer(ByteBuffer dest) throws IOException {
if (buffer != null && dest != null && info.size > 0) {
dest.put(buffer);
}
}
@WrapForJNI
public boolean isEOS() {
return (info.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0;
}
@WrapForJNI
public boolean isKeyFrame() {
return (info.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0;
}
public static GeckoHlsSample create(ByteBuffer src, BufferInfo info, CryptoInfo cryptoInfo,
int formatIndex) {
return new GeckoHlsSample(src, info, cryptoInfo, formatIndex);
}
private GeckoHlsSample(ByteBuffer buffer, BufferInfo info, CryptoInfo cryptoInfo,
int formatIndex) {
this.formatIndex = formatIndex;
duration = Long.MAX_VALUE;
this.buffer = buffer;
this.info = info;
this.cryptoInfo = cryptoInfo;
}
@Override
public String toString() {
if (isEOS()) {
return "EOS GeckoHlsSample";
}
StringBuilder str = new StringBuilder();
str.append("{ info=").
append("{ offset=").append(info.offset).
append(", size=").append(info.size).
append(", pts=").append(info.presentationTimeUs).
append(", duration=").append(duration).
append(", flags=").append(Integer.toHexString(info.flags)).append(" }").
append(" }");
return str.toString();
}
}

Просмотреть файл

@ -0,0 +1,38 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.media;
import java.nio.ByteBuffer;
import org.mozilla.gecko.annotation.WrapForJNI;
//A subset of the class VideoInfo in dom/media/MediaInfo.h
@WrapForJNI
public final class GeckoVideoInfo {
final public byte[] codecSpecificData;
final public byte[] extraData;
final public int displayWidth;
final public int displayHeight;
final public int pictureWidth;
final public int pictureHeight;
final public int rotation;
final public int stereoMode;
final public long duration;
final public String mimeType;
public GeckoVideoInfo(int displayWidth, int displayHeight,
int pictureWidth, int pictureHeight,
int rotation, int stereoMode, long duration, String mimeType,
byte[] extraData, byte[] codecSpecificData) {
this.displayWidth = displayWidth;
this.displayHeight = displayHeight;
this.pictureWidth = pictureWidth;
this.pictureHeight = pictureHeight;
this.rotation = rotation;
this.stereoMode = stereoMode;
this.duration = duration;
this.mimeType = mimeType;
this.extraData = extraData;
this.codecSpecificData = codecSpecificData;
}
}

Просмотреть файл

@ -1856,6 +1856,228 @@ constexpr char CodecProxy::NativeCallbacks::OnOutput_t::signature[];
constexpr char CodecProxy::NativeCallbacks::OnOutputFormatChanged_t::name[];
constexpr char CodecProxy::NativeCallbacks::OnOutputFormatChanged_t::signature[];
const char GeckoAudioInfo::name[] =
"org/mozilla/gecko/media/GeckoAudioInfo";
constexpr char GeckoAudioInfo::New_t::name[];
constexpr char GeckoAudioInfo::New_t::signature[];
auto GeckoAudioInfo::New(int32_t a0, int32_t a1, int32_t a2, int32_t a3, int64_t a4, mozilla::jni::String::Param a5, mozilla::jni::ByteArray::Param a6) -> GeckoAudioInfo::LocalRef
{
return mozilla::jni::Constructor<New_t>::Call(GeckoAudioInfo::Context(), nullptr, a0, a1, a2, a3, a4, a5, a6);
}
constexpr char GeckoAudioInfo::BitDepth_t::name[];
constexpr char GeckoAudioInfo::BitDepth_t::signature[];
auto GeckoAudioInfo::BitDepth() const -> int32_t
{
return mozilla::jni::Field<BitDepth_t>::Get(GeckoAudioInfo::mCtx, nullptr);
}
constexpr char GeckoAudioInfo::Channels_t::name[];
constexpr char GeckoAudioInfo::Channels_t::signature[];
auto GeckoAudioInfo::Channels() const -> int32_t
{
return mozilla::jni::Field<Channels_t>::Get(GeckoAudioInfo::mCtx, nullptr);
}
constexpr char GeckoAudioInfo::CodecSpecificData_t::name[];
constexpr char GeckoAudioInfo::CodecSpecificData_t::signature[];
auto GeckoAudioInfo::CodecSpecificData() const -> mozilla::jni::ByteArray::LocalRef
{
return mozilla::jni::Field<CodecSpecificData_t>::Get(GeckoAudioInfo::mCtx, nullptr);
}
constexpr char GeckoAudioInfo::Duration_t::name[];
constexpr char GeckoAudioInfo::Duration_t::signature[];
auto GeckoAudioInfo::Duration() const -> int64_t
{
return mozilla::jni::Field<Duration_t>::Get(GeckoAudioInfo::mCtx, nullptr);
}
constexpr char GeckoAudioInfo::MimeType_t::name[];
constexpr char GeckoAudioInfo::MimeType_t::signature[];
auto GeckoAudioInfo::MimeType() const -> mozilla::jni::String::LocalRef
{
return mozilla::jni::Field<MimeType_t>::Get(GeckoAudioInfo::mCtx, nullptr);
}
constexpr char GeckoAudioInfo::Profile_t::name[];
constexpr char GeckoAudioInfo::Profile_t::signature[];
auto GeckoAudioInfo::Profile() const -> int32_t
{
return mozilla::jni::Field<Profile_t>::Get(GeckoAudioInfo::mCtx, nullptr);
}
constexpr char GeckoAudioInfo::Rate_t::name[];
constexpr char GeckoAudioInfo::Rate_t::signature[];
auto GeckoAudioInfo::Rate() const -> int32_t
{
return mozilla::jni::Field<Rate_t>::Get(GeckoAudioInfo::mCtx, nullptr);
}
const char GeckoHlsSample::name[] =
"org/mozilla/gecko/media/GeckoHlsSample";
constexpr char GeckoHlsSample::IsEOS_t::name[];
constexpr char GeckoHlsSample::IsEOS_t::signature[];
auto GeckoHlsSample::IsEOS() const -> bool
{
return mozilla::jni::Method<IsEOS_t>::Call(GeckoHlsSample::mCtx, nullptr);
}
constexpr char GeckoHlsSample::IsKeyFrame_t::name[];
constexpr char GeckoHlsSample::IsKeyFrame_t::signature[];
auto GeckoHlsSample::IsKeyFrame() const -> bool
{
return mozilla::jni::Method<IsKeyFrame_t>::Call(GeckoHlsSample::mCtx, nullptr);
}
constexpr char GeckoHlsSample::WriteToByteBuffer_t::name[];
constexpr char GeckoHlsSample::WriteToByteBuffer_t::signature[];
auto GeckoHlsSample::WriteToByteBuffer(mozilla::jni::ByteBuffer::Param a0) const -> void
{
return mozilla::jni::Method<WriteToByteBuffer_t>::Call(GeckoHlsSample::mCtx, nullptr, a0);
}
constexpr char GeckoHlsSample::CryptoInfo_t::name[];
constexpr char GeckoHlsSample::CryptoInfo_t::signature[];
auto GeckoHlsSample::CryptoInfo() const -> mozilla::jni::Object::LocalRef
{
return mozilla::jni::Field<CryptoInfo_t>::Get(GeckoHlsSample::mCtx, nullptr);
}
constexpr char GeckoHlsSample::Duration_t::name[];
constexpr char GeckoHlsSample::Duration_t::signature[];
auto GeckoHlsSample::Duration() const -> int64_t
{
return mozilla::jni::Field<Duration_t>::Get(GeckoHlsSample::mCtx, nullptr);
}
auto GeckoHlsSample::Duration(int64_t a0) const -> void
{
return mozilla::jni::Field<Duration_t>::Set(GeckoHlsSample::mCtx, nullptr, a0);
}
constexpr char GeckoHlsSample::FormatIndex_t::name[];
constexpr char GeckoHlsSample::FormatIndex_t::signature[];
auto GeckoHlsSample::FormatIndex() const -> int32_t
{
return mozilla::jni::Field<FormatIndex_t>::Get(GeckoHlsSample::mCtx, nullptr);
}
constexpr char GeckoHlsSample::Info_t::name[];
constexpr char GeckoHlsSample::Info_t::signature[];
auto GeckoHlsSample::Info() const -> mozilla::jni::Object::LocalRef
{
return mozilla::jni::Field<Info_t>::Get(GeckoHlsSample::mCtx, nullptr);
}
const char GeckoVideoInfo::name[] =
"org/mozilla/gecko/media/GeckoVideoInfo";
constexpr char GeckoVideoInfo::New_t::name[];
constexpr char GeckoVideoInfo::New_t::signature[];
auto GeckoVideoInfo::New(int32_t a0, int32_t a1, int32_t a2, int32_t a3, int32_t a4, int32_t a5, int64_t a6, mozilla::jni::String::Param a7, mozilla::jni::ByteArray::Param a8, mozilla::jni::ByteArray::Param a9) -> GeckoVideoInfo::LocalRef
{
return mozilla::jni::Constructor<New_t>::Call(GeckoVideoInfo::Context(), nullptr, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
}
constexpr char GeckoVideoInfo::CodecSpecificData_t::name[];
constexpr char GeckoVideoInfo::CodecSpecificData_t::signature[];
auto GeckoVideoInfo::CodecSpecificData() const -> mozilla::jni::ByteArray::LocalRef
{
return mozilla::jni::Field<CodecSpecificData_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::DisplayHeight_t::name[];
constexpr char GeckoVideoInfo::DisplayHeight_t::signature[];
auto GeckoVideoInfo::DisplayHeight() const -> int32_t
{
return mozilla::jni::Field<DisplayHeight_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::DisplayWidth_t::name[];
constexpr char GeckoVideoInfo::DisplayWidth_t::signature[];
auto GeckoVideoInfo::DisplayWidth() const -> int32_t
{
return mozilla::jni::Field<DisplayWidth_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::Duration_t::name[];
constexpr char GeckoVideoInfo::Duration_t::signature[];
auto GeckoVideoInfo::Duration() const -> int64_t
{
return mozilla::jni::Field<Duration_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::ExtraData_t::name[];
constexpr char GeckoVideoInfo::ExtraData_t::signature[];
auto GeckoVideoInfo::ExtraData() const -> mozilla::jni::ByteArray::LocalRef
{
return mozilla::jni::Field<ExtraData_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::MimeType_t::name[];
constexpr char GeckoVideoInfo::MimeType_t::signature[];
auto GeckoVideoInfo::MimeType() const -> mozilla::jni::String::LocalRef
{
return mozilla::jni::Field<MimeType_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::PictureHeight_t::name[];
constexpr char GeckoVideoInfo::PictureHeight_t::signature[];
auto GeckoVideoInfo::PictureHeight() const -> int32_t
{
return mozilla::jni::Field<PictureHeight_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::PictureWidth_t::name[];
constexpr char GeckoVideoInfo::PictureWidth_t::signature[];
auto GeckoVideoInfo::PictureWidth() const -> int32_t
{
return mozilla::jni::Field<PictureWidth_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::Rotation_t::name[];
constexpr char GeckoVideoInfo::Rotation_t::signature[];
auto GeckoVideoInfo::Rotation() const -> int32_t
{
return mozilla::jni::Field<Rotation_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
constexpr char GeckoVideoInfo::StereoMode_t::name[];
constexpr char GeckoVideoInfo::StereoMode_t::signature[];
auto GeckoVideoInfo::StereoMode() const -> int32_t
{
return mozilla::jni::Field<StereoMode_t>::Get(GeckoVideoInfo::mCtx, nullptr);
}
const char MediaDrmProxy::name[] =
"org/mozilla/gecko/media/MediaDrmProxy";

Просмотреть файл

@ -5371,6 +5371,556 @@ public:
template<class Impl> class Natives;
};
class GeckoAudioInfo : public mozilla::jni::ObjectBase<GeckoAudioInfo>
{
public:
static const char name[];
explicit GeckoAudioInfo(const Context& ctx) : ObjectBase<GeckoAudioInfo>(ctx) {}
struct New_t {
typedef GeckoAudioInfo Owner;
typedef GeckoAudioInfo::LocalRef ReturnType;
typedef GeckoAudioInfo::Param SetterType;
typedef mozilla::jni::Args<
int32_t,
int32_t,
int32_t,
int32_t,
int64_t,
mozilla::jni::String::Param,
mozilla::jni::ByteArray::Param> Args;
static constexpr char name[] = "<init>";
static constexpr char signature[] =
"(IIIIJLjava/lang/String;[B)V";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
static auto New(int32_t, int32_t, int32_t, int32_t, int64_t, mozilla::jni::String::Param, mozilla::jni::ByteArray::Param) -> GeckoAudioInfo::LocalRef;
struct BitDepth_t {
typedef GeckoAudioInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "bitDepth";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto BitDepth() const -> int32_t;
struct Channels_t {
typedef GeckoAudioInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "channels";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto Channels() const -> int32_t;
struct CodecSpecificData_t {
typedef GeckoAudioInfo Owner;
typedef mozilla::jni::ByteArray::LocalRef ReturnType;
typedef mozilla::jni::ByteArray::Param SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "codecSpecificData";
static constexpr char signature[] =
"[B";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto CodecSpecificData() const -> mozilla::jni::ByteArray::LocalRef;
struct Duration_t {
typedef GeckoAudioInfo Owner;
typedef int64_t ReturnType;
typedef int64_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "duration";
static constexpr char signature[] =
"J";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto Duration() const -> int64_t;
struct MimeType_t {
typedef GeckoAudioInfo Owner;
typedef mozilla::jni::String::LocalRef ReturnType;
typedef mozilla::jni::String::Param SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "mimeType";
static constexpr char signature[] =
"Ljava/lang/String;";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto MimeType() const -> mozilla::jni::String::LocalRef;
struct Profile_t {
typedef GeckoAudioInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "profile";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto Profile() const -> int32_t;
struct Rate_t {
typedef GeckoAudioInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "rate";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto Rate() const -> int32_t;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
};
class GeckoHlsSample : public mozilla::jni::ObjectBase<GeckoHlsSample>
{
public:
static const char name[];
explicit GeckoHlsSample(const Context& ctx) : ObjectBase<GeckoHlsSample>(ctx) {}
struct IsEOS_t {
typedef GeckoHlsSample Owner;
typedef bool ReturnType;
typedef bool SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "isEOS";
static constexpr char signature[] =
"()Z";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto IsEOS() const -> bool;
struct IsKeyFrame_t {
typedef GeckoHlsSample Owner;
typedef bool ReturnType;
typedef bool SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "isKeyFrame";
static constexpr char signature[] =
"()Z";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto IsKeyFrame() const -> bool;
struct WriteToByteBuffer_t {
typedef GeckoHlsSample Owner;
typedef void ReturnType;
typedef void SetterType;
typedef mozilla::jni::Args<
mozilla::jni::ByteBuffer::Param> Args;
static constexpr char name[] = "writeToByteBuffer";
static constexpr char signature[] =
"(Ljava/nio/ByteBuffer;)V";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto WriteToByteBuffer(mozilla::jni::ByteBuffer::Param) const -> void;
struct CryptoInfo_t {
typedef GeckoHlsSample Owner;
typedef mozilla::jni::Object::LocalRef ReturnType;
typedef mozilla::jni::Object::Param SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "cryptoInfo";
static constexpr char signature[] =
"Landroid/media/MediaCodec$CryptoInfo;";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto CryptoInfo() const -> mozilla::jni::Object::LocalRef;
struct Duration_t {
typedef GeckoHlsSample Owner;
typedef int64_t ReturnType;
typedef int64_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "duration";
static constexpr char signature[] =
"J";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto Duration() const -> int64_t;
auto Duration(int64_t) const -> void;
struct FormatIndex_t {
typedef GeckoHlsSample Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "formatIndex";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto FormatIndex() const -> int32_t;
struct Info_t {
typedef GeckoHlsSample Owner;
typedef mozilla::jni::Object::LocalRef ReturnType;
typedef mozilla::jni::Object::Param SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "info";
static constexpr char signature[] =
"Landroid/media/MediaCodec$BufferInfo;";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto Info() const -> mozilla::jni::Object::LocalRef;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
};
class GeckoVideoInfo : public mozilla::jni::ObjectBase<GeckoVideoInfo>
{
public:
static const char name[];
explicit GeckoVideoInfo(const Context& ctx) : ObjectBase<GeckoVideoInfo>(ctx) {}
struct New_t {
typedef GeckoVideoInfo Owner;
typedef GeckoVideoInfo::LocalRef ReturnType;
typedef GeckoVideoInfo::Param SetterType;
typedef mozilla::jni::Args<
int32_t,
int32_t,
int32_t,
int32_t,
int32_t,
int32_t,
int64_t,
mozilla::jni::String::Param,
mozilla::jni::ByteArray::Param,
mozilla::jni::ByteArray::Param> Args;
static constexpr char name[] = "<init>";
static constexpr char signature[] =
"(IIIIIIJLjava/lang/String;[B[B)V";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
static auto New(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int64_t, mozilla::jni::String::Param, mozilla::jni::ByteArray::Param, mozilla::jni::ByteArray::Param) -> GeckoVideoInfo::LocalRef;
struct CodecSpecificData_t {
typedef GeckoVideoInfo Owner;
typedef mozilla::jni::ByteArray::LocalRef ReturnType;
typedef mozilla::jni::ByteArray::Param SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "codecSpecificData";
static constexpr char signature[] =
"[B";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto CodecSpecificData() const -> mozilla::jni::ByteArray::LocalRef;
struct DisplayHeight_t {
typedef GeckoVideoInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "displayHeight";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto DisplayHeight() const -> int32_t;
struct DisplayWidth_t {
typedef GeckoVideoInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "displayWidth";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto DisplayWidth() const -> int32_t;
struct Duration_t {
typedef GeckoVideoInfo Owner;
typedef int64_t ReturnType;
typedef int64_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "duration";
static constexpr char signature[] =
"J";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto Duration() const -> int64_t;
struct ExtraData_t {
typedef GeckoVideoInfo Owner;
typedef mozilla::jni::ByteArray::LocalRef ReturnType;
typedef mozilla::jni::ByteArray::Param SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "extraData";
static constexpr char signature[] =
"[B";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto ExtraData() const -> mozilla::jni::ByteArray::LocalRef;
struct MimeType_t {
typedef GeckoVideoInfo Owner;
typedef mozilla::jni::String::LocalRef ReturnType;
typedef mozilla::jni::String::Param SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "mimeType";
static constexpr char signature[] =
"Ljava/lang/String;";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto MimeType() const -> mozilla::jni::String::LocalRef;
struct PictureHeight_t {
typedef GeckoVideoInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "pictureHeight";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto PictureHeight() const -> int32_t;
struct PictureWidth_t {
typedef GeckoVideoInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "pictureWidth";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto PictureWidth() const -> int32_t;
struct Rotation_t {
typedef GeckoVideoInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "rotation";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto Rotation() const -> int32_t;
struct StereoMode_t {
typedef GeckoVideoInfo Owner;
typedef int32_t ReturnType;
typedef int32_t SetterType;
typedef mozilla::jni::Args<> Args;
static constexpr char name[] = "stereoMode";
static constexpr char signature[] =
"I";
static const bool isStatic = false;
static const mozilla::jni::ExceptionMode exceptionMode =
mozilla::jni::ExceptionMode::ABORT;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
static const mozilla::jni::DispatchTarget dispatchTarget =
mozilla::jni::DispatchTarget::CURRENT;
};
auto StereoMode() const -> int32_t;
static const mozilla::jni::CallingThread callingThread =
mozilla::jni::CallingThread::ANY;
};
class MediaDrmProxy : public mozilla::jni::ObjectBase<MediaDrmProxy>
{
public: