Skip to content

Commit

Permalink
Bump up HaishinKit.kt to 0.13.1
Browse files Browse the repository at this point in the history
  • Loading branch information
shogo4405 committed Feb 12, 2024
1 parent ba96d2e commit 029b6a2
Show file tree
Hide file tree
Showing 6 changed files with 133 additions and 38 deletions.
6 changes: 3 additions & 3 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ buildscript {
}

dependencies {
classpath 'com.android.tools.build:gradle:8.1.0'
classpath 'com.android.tools.build:gradle:8.1.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Expand All @@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
android {
namespace 'com.haishinkit.haishin_kit'

compileSdkVersion 34
compileSdk 34

compileOptions {
sourceCompatibility JavaVersion.VERSION_17
Expand All @@ -47,5 +47,5 @@ android {
}

dependencies {
implementation 'com.github.shogo4405.HaishinKit~kt:haishinkit:0.13.0'
implementation 'com.github.shogo4405.HaishinKit~kt:haishinkit:0.13.1'
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class HaishinKitPlugin : FlutterPlugin, MethodCallHandler {
"newRtmpStream" -> {
val connection = call.argument<Int>("connection")
val handler =
RtmpStreamHandler(this, handlers[connection] as? RtmpConnectionHandler)
RtmpStreamHandler(this, handlers[connection] as? RtmpConnectionHandler)
handlers[handler.hashCode()] = handler
result.success(handler.hashCode())
}
Expand Down
144 changes: 120 additions & 24 deletions android/src/main/kotlin/com/haishinkit/haishin_kit/ProfileLevel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,124 @@ package com.haishinkit.haishinkit
import android.media.MediaCodecInfo

enum class ProfileLevel(val rawValue: String, val profile: Int, val level: Int) {
H264Baseline31("H264_Baseline_3_1", MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline, MediaCodecInfo.CodecProfileLevel.AVCLevel31),
H264Baseline32("H264_Baseline_3_2", MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline, MediaCodecInfo.CodecProfileLevel.AVCLevel32),
H264Baseline40("H264_Baseline_4_0", MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline, MediaCodecInfo.CodecProfileLevel.AVCLevel4),
H264Baseline41("H264_Baseline_4_1", MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline, MediaCodecInfo.CodecProfileLevel.AVCLevel41),
H264Baseline42("H264_Baseline_4_2", MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline, MediaCodecInfo.CodecProfileLevel.AVCLevel42),
H264Baseline50("H264_Baseline_5_0", MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline, MediaCodecInfo.CodecProfileLevel.AVCLevel5),
H264Baseline51("H264_Baseline_5_1", MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline, MediaCodecInfo.CodecProfileLevel.AVCLevel51),
H264Baseline52("H264_Baseline_5_2", MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline, MediaCodecInfo.CodecProfileLevel.AVCLevel52),
H264Main31("H264_Main_3_1", MediaCodecInfo.CodecProfileLevel.AVCProfileMain, MediaCodecInfo.CodecProfileLevel.AVCLevel31),
H264Main32("H264_Main_3_2", MediaCodecInfo.CodecProfileLevel.AVCProfileMain, MediaCodecInfo.CodecProfileLevel.AVCLevel32),
H264Main40("H264_Main_4_0", MediaCodecInfo.CodecProfileLevel.AVCProfileMain, MediaCodecInfo.CodecProfileLevel.AVCLevel4),
H264Main41("H264_Main_4_1", MediaCodecInfo.CodecProfileLevel.AVCProfileMain, MediaCodecInfo.CodecProfileLevel.AVCLevel41),
H264Main42("H264_Main_4_2", MediaCodecInfo.CodecProfileLevel.AVCProfileMain, MediaCodecInfo.CodecProfileLevel.AVCLevel42),
H264Main50("H264_Main_5_0", MediaCodecInfo.CodecProfileLevel.AVCProfileMain, MediaCodecInfo.CodecProfileLevel.AVCLevel5),
H264Main51("H264_Main_5_1", MediaCodecInfo.CodecProfileLevel.AVCProfileMain, MediaCodecInfo.CodecProfileLevel.AVCLevel51),
H264Main52("H264_Main_5_2", MediaCodecInfo.CodecProfileLevel.AVCProfileMain, MediaCodecInfo.CodecProfileLevel.AVCLevel52),
H264High31("H264_High_3_1", MediaCodecInfo.CodecProfileLevel.AVCProfileHigh, MediaCodecInfo.CodecProfileLevel.AVCLevel31),
H264High32("H264_High_3_2", MediaCodecInfo.CodecProfileLevel.AVCProfileHigh, MediaCodecInfo.CodecProfileLevel.AVCLevel32),
H264High40("H264_High_4_0", MediaCodecInfo.CodecProfileLevel.AVCProfileHigh, MediaCodecInfo.CodecProfileLevel.AVCLevel4),
H264High41("H264_High_4_1", MediaCodecInfo.CodecProfileLevel.AVCProfileHigh, MediaCodecInfo.CodecProfileLevel.AVCLevel41),
H264High42("H264_High_4_2", MediaCodecInfo.CodecProfileLevel.AVCProfileHigh, MediaCodecInfo.CodecProfileLevel.AVCLevel42),
H264High50("H264_High_5_0", MediaCodecInfo.CodecProfileLevel.AVCProfileHigh, MediaCodecInfo.CodecProfileLevel.AVCLevel5),
H264High51("H264_High_5_1", MediaCodecInfo.CodecProfileLevel.AVCProfileHigh, MediaCodecInfo.CodecProfileLevel.AVCLevel51),
H264High52("H264_High_5_2", MediaCodecInfo.CodecProfileLevel.AVCProfileHigh, MediaCodecInfo.CodecProfileLevel.AVCLevel52),
H264Baseline31(
"H264_Baseline_3_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline,
MediaCodecInfo.CodecProfileLevel.AVCLevel31
),
H264Baseline32(
"H264_Baseline_3_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline,
MediaCodecInfo.CodecProfileLevel.AVCLevel32
),
H264Baseline40(
"H264_Baseline_4_0",
MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline,
MediaCodecInfo.CodecProfileLevel.AVCLevel4
),
H264Baseline41(
"H264_Baseline_4_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline,
MediaCodecInfo.CodecProfileLevel.AVCLevel41
),
H264Baseline42(
"H264_Baseline_4_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline,
MediaCodecInfo.CodecProfileLevel.AVCLevel42
),
H264Baseline50(
"H264_Baseline_5_0",
MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline,
MediaCodecInfo.CodecProfileLevel.AVCLevel5
),
H264Baseline51(
"H264_Baseline_5_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline,
MediaCodecInfo.CodecProfileLevel.AVCLevel51
),
H264Baseline52(
"H264_Baseline_5_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileBaseline,
MediaCodecInfo.CodecProfileLevel.AVCLevel52
),
H264Main31(
"H264_Main_3_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel31
),
H264Main32(
"H264_Main_3_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel32
),
H264Main40(
"H264_Main_4_0",
MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel4
),
H264Main41(
"H264_Main_4_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel41
),
H264Main42(
"H264_Main_4_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel42
),
H264Main50(
"H264_Main_5_0",
MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel5
),
H264Main51(
"H264_Main_5_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel51
),
H264Main52(
"H264_Main_5_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileMain,
MediaCodecInfo.CodecProfileLevel.AVCLevel52
),
H264High31(
"H264_High_3_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
MediaCodecInfo.CodecProfileLevel.AVCLevel31
),
H264High32(
"H264_High_3_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
MediaCodecInfo.CodecProfileLevel.AVCLevel32
),
H264High40(
"H264_High_4_0",
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
MediaCodecInfo.CodecProfileLevel.AVCLevel4
),
H264High41(
"H264_High_4_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
MediaCodecInfo.CodecProfileLevel.AVCLevel41
),
H264High42(
"H264_High_4_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
MediaCodecInfo.CodecProfileLevel.AVCLevel42
),
H264High50(
"H264_High_5_0",
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
MediaCodecInfo.CodecProfileLevel.AVCLevel5
),
H264High51(
"H264_High_5_1",
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
MediaCodecInfo.CodecProfileLevel.AVCLevel51
),
H264High52(
"H264_High_5_2",
MediaCodecInfo.CodecProfileLevel.AVCProfileHigh,
MediaCodecInfo.CodecProfileLevel.AVCLevel52
),
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel

class RtmpConnectionHandler(
private val plugin: HaishinKitPlugin
private val plugin: HaishinKitPlugin
) : MethodChannel.MethodCallHandler, IEventListener,
EventChannel.StreamHandler {
EventChannel.StreamHandler {
companion object {
private const val TAG = "RtmpConnection"
}
Expand All @@ -24,8 +24,8 @@ class RtmpConnectionHandler(
init {
instance?.addEventListener(Event.RTMP_STATUS, this)
channel = EventChannel(
plugin.flutterPluginBinding.binaryMessenger,
"com.haishinkit.eventchannel/${hashCode()}"
plugin.flutterPluginBinding.binaryMessenger,
"com.haishinkit.eventchannel/${hashCode()}"
)
channel.setStreamHandler(this)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.haishinkit.haishin_kit

import android.content.Context
import android.graphics.Point
import android.graphics.Rect
import android.hardware.camera2.CameraCharacteristics
import android.media.MediaFormat.KEY_LEVEL
import android.media.MediaFormat.KEY_PROFILE
Expand All @@ -15,13 +15,12 @@ import com.haishinkit.haishinkit.ProfileLevel
import com.haishinkit.media.AudioRecordSource
import com.haishinkit.media.Camera2Source
import com.haishinkit.rtmp.RtmpStream
import com.haishinkit.util.Rectangle
import io.flutter.plugin.common.EventChannel
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel

class RtmpStreamHandler(
private val plugin: HaishinKitPlugin, handler: RtmpConnectionHandler?
private val plugin: HaishinKitPlugin, handler: RtmpConnectionHandler?
) : MethodChannel.MethodCallHandler, IEventListener, EventChannel.StreamHandler {
companion object {
private const val TAG = "RtmpStream"
Expand All @@ -43,11 +42,11 @@ class RtmpStreamHandler(
init {
handler?.instance?.let {
instance = RtmpStream(plugin.flutterPluginBinding.applicationContext, it)
instance?.screen?.frame = Rectangle(Point(0, 0), Size(1024, 576))
instance?.screen?.frame = Rect(0, 0, 1280, 720)
instance?.addEventListener(Event.RTMP_STATUS, this)
}
channel = EventChannel(
plugin.flutterPluginBinding.binaryMessenger, "com.haishinkit.eventchannel/${hashCode()}"
plugin.flutterPluginBinding.binaryMessenger, "com.haishinkit.eventchannel/${hashCode()}"
)
channel.setStreamHandler(this)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import io.flutter.embedding.engine.plugins.FlutterPlugin
import io.flutter.view.TextureRegistry

class StreamDrawableTexture(binding: FlutterPlugin.FlutterPluginBinding) :
StreamDrawable {
StreamDrawable {
override var videoGravity: VideoGravity
get() = pixelTransform.videoGravity
set(value) {
Expand Down

0 comments on commit 029b6a2

Please sign in to comment.