Releases: shiguredo/sora-android-sdk
Releases · shiguredo/sora-android-sdk
2024.2.0
- [UPDATE] libwebrtc を 122.6261.1.0 に上げる
- [UPDATE] Github Actions の actions/setup-java@v4 にあげる
2024.1.1
2024.1.1
- [FIX] jitpack.yml を追加して jdk のバージョンを 11 に指定する
- JitPack で jdk 8 でビルドが走ってエラーとなったため、明示的に利用する jdk を指定する
- @miosakuma
2024.1.0
- [CHANGE]
NotificationMessage
のmatadata_list
を削除する- 2022.1.0 の Sora で metadata_list が廃止されたため
- NotificationMessage の data で値の取得が可能
- @miosakuma
- [CHANGE]
NotificationMessage
のchannel_id
を削除する- Sora から値を通知しておらず利用していない項目のため削除する
- @miosakuma
- [UPDATE] libwebrtc を 121.6167.4.0 に上げる
- コンバイルに利用する Java のバージョンを 1.8 に上げる
- @miosakuma
- [UPDATE] 解像度に
qHD
(960x540, 540x960) を追加する - [UPDATE]
ForwardingFilter
にversion
とmetadata
を追加する - [ADD] H.265 に対応する
SoraVideoOption
のCodec
にH265
を追加しました- @enm10k
- [FIX] connect メッセージに設定するバージョンの取得に git describe を使うのを止める
- 開発中に develop ブランチなどでの出力が意図せぬ結果になるため修正
- リリースされた Sora Android SDK では正常な出力になるため、ユーザーへの影響はなし
- @enm10k
- [FIX]
ForwardingFilter
のaction
を未指定にできるようにする - [FIX]
NotificationMessage
に項目を追加するsession_id
kind
destination_connection_id
source_connection_id
recv_connection_id
send_connection_id
stream_id
- @miosakuma
2024.1.0
JitPack でのビルドに失敗したため再リリースを行なっています。 2024.1.1 を利用してください。
- [CHANGE]
NotificationMessage
のmatadata_list
を削除する- 2022.1.0 の Sora で metadata_list が廃止されたため
- NotificationMessage の data で値の取得が可能
- @miosakuma
- [CHANGE]
NotificationMessage
のchannel_id
を削除する- Sora から値を通知しておらず利用していない項目のため削除する
- @miosakuma
- [UPDATE] libwebrtc を 121.6167.4.0 に上げる
- コンバイルに利用する Java のバージョンを 1.8 に上げる
- @miosakuma
- [UPDATE] 解像度に
qHD
(960x540, 540x960) を追加する - [UPDATE]
ForwardingFilter
にversion
とmetadata
を追加する - [ADD] H.265 に対応する
SoraVideoOption
のCodec
にH265
を追加しました- @enm10k
- [FIX] connect メッセージに設定するバージョンの取得に git describe を使うのを止める
- 開発中に develop ブランチなどでの出力が意図せぬ結果になるため修正
- リリースされた Sora Android SDK では正常な出力になるため、ユーザーへの影響はなし
- @enm10k
- [FIX]
ForwardingFilter
のaction
を未指定にできるようにする - [FIX]
NotificationMessage
に項目を追加するsession_id
kind
destination_connection_id
source_connection_id
recv_connection_id
send_connection_id
stream_id
- @miosakuma
2023.2.0
- [UPDATE] システム条件を更新する
- Android Studio 2022.2.1 以降
- WebRTC SFU Sora 2023.1.0 以降
- @miosakuma
- [UPDATE] libwebrtc を 115.5790.8.0 に上げる
- [ADD] 転送フィルター機能を追加する
- [ADD] scalability mode に対応する
- VP9 / AV1 のサイマルキャストに対応可能になる
- @szktty
- [ADD] 映像コーデックパラメータを追加する
SoraMediaOption
にvideoVp9Params
,videoAv1Params
,videoH264Params
を追加する- @miosakuma
2023.1.0
- [UPDATE] システム条件を更新する
- Android Studio 2022.1.1 以降
- WebRTC SFU Sora 2022.2.0 以降
- @miosakuma
- [UPDATE] Kotlin のバージョンを 1.8.10 に上げる
- [UPDATE] Gradle を 7.6.1 に上げる
- [UPDATE] 依存ライブラリーのバージョンを上げる
- org.jetbrains.dokka:dokka-gradle-plugin を 1.8.10 に上げる
- com.android.tools.build:gradle を 7.4.2 に上げる
- com.github.ben-manes:gradle-versions-plugin を 0.46.0 に上げる
- org.jlleitschuh.gradle:ktlint-gradle を 11.3.1 に上げる
- com.google.code.gson:gson を 2.10.1 に上げる
- androidx.test:core を 1.5.0 に上げる
- org.robolectric:robolectric を 4.9.2 に上げる
- @miosakuma
- [UPDATE] libwebrtc を 112.5615.1.0 に上げる
- [UPDATE] 映像コーデックに
AV1
を追加する - [ADD]
SoraMediaOption
にaudioStreamingLanguageCode
を追加する - [FIX] テストコード内に廃止された role が残っていたため最新化する
- [FIX]
PeerConnection.ContinualGatheringPolicy.GATHER_CONTINUALLY
は Sora がネットワーク変更に対応しておらず不要な設定であるため削除する
2022.4.0
- [CHANGE] type: offer の mid を必須にする
- この修正の結果、 type: offer に mid が含まれない場合は、エラーになります
- @enm10k
- [UPDATE] libwebrtc を 105.5195.0.0 に上げる
- [UPDATE]
compileSdkVersion
を 32 に上げる - [UPDATE]
targetSdkVersion
を 32 に上げる - [UPDATE]
Kotlin
のバージョンを 1.7.10 に上げる - [UPDATE] Gradle を 7.5.1 に上げる
- [UPDATE] 依存ライブラリーのバージョンを上げる
com.android.tools.build:gradle
を 7.2.2 に上げるorg.jetbrains.kotlin:kotlin-gradle-plugin
を 1.7.10 に上げるorg.ajoberstar.grgit:grgit-gradle
を 5.0.0 に上げるorg.jetbrains.dokka:dokka-gradle-plugin
を 1.7.10 に上げるcom.github.ben-manes:gradle-versions-plugin
を 0.42.0 に上げるorg.jlleitschuh.gradle:ktlint-gradle
を 10.3.0 に上げるcom.pinterest:ktlint
を 0.45.2 に上げるcom.google.code.gson:gson
を 2.9.1 に上げるcom.squareup.okhttp3:okhttp
を 4.10.0 に上げるorg.jetbrains.kotlinx:kotlinx-coroutines-android
を 1.6.4 に上げるorg.robolectric:robolectric
を 4.8.1 に上げる- @miosakuma
- [FIX] mid を nullable に変更する
- 「type: offer の mid を必須にする」の対応で role が recvonly の時にエラーとなる不具合の修正
- @miosakuma
- [FIX] offer で受信した encodings が反映されない不具合を修正する
- [FIX] EGLContext が取れなかった場合、DefaultVideoDecoderFactory, SoraDefaultVideoEncoderFactory を使用する
- EGLContext が取れなかった場合の Decoder を SoftwareVideoDecoderFactory から DefaultVideoDecoderFactory に変更する
- EGLContext が取れなかった場合の Encoder を SoftwareVideoEncoderFactory から SoraDefaultVideoEncoderFactory に変更する
- EGLContext は null でも Hardware を使用する MediaCodec は動作するため HW も動作可能な DefaultVideoDecoderFactory, SoraDefaultVideoEncoderFactory を使用する
- @miosakuma
2022.3.0
- [CHANGE] SoraMediaOption に hardwareVideoEncoderResolutionAdjustment を追加する
- HW エンコーダーに入力されるフレームの解像度が指定された数の倍数になるように調整する
- デフォルトでは 16 が指定されている
- このオプションを実装した経緯は以下の通り
- 解像度が 16 の倍数でない場合、 HW エンコーダーの初期化がエラーになる変更が libwebrtc のメインストリームに入った
- 参照: https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/sdk/android/src/java/org/webrtc/HardwareVideoEncoder.java;l=214-218;drc=0f50cc284949f225f663408e7d467f39d549d3dc
- Android CTS では、 HW エンコーダー (= MediaCodec) を 16で割り切れる解像度のみでテストしており、かつ 16 で割り切れない解像度で問題が発生する端末があったことが理由で上記の変更が行われた
- Sora Android SDK では一部の解像度が影響を受けるため、対応としてこのオプションを実装した
- 解像度が 16 の倍数でない場合、 HW エンコーダーの初期化がエラーになる変更が libwebrtc のメインストリームに入った
- Sora Android SDK では libwebrtc にパッチを当て、上記の HW エンコーダー初期化時の解像度のチェックを無効化している
- そのため、このフラグを SoraVideoOption.ResolutionAdjustment.NONE に設定することで、従来通り、解像度を調整することなく HW エンコーダーを利用できる
- より詳細な情報は以下のリンクを参照
- 加えて、解像度調整ありでエンコーダーの初期化またはエンコード処理に失敗した際に、解像度調整なしで操作をリトライする処理も実装した
- Android OS 11 の Xperia 5 II で VGA のサイマルキャストを H.264 で送信しようとした際、解像度調整ありの場合 (= hardwareVideoEncoderResolutionAdjustment が MULTIPLE_OF_16 の場合) は HW エンコーダーの初期化が失敗するが、解像度調整なしの場合は成功する現象を確認したため、この処理を実装した
- @enm10k
- [UPDATE] SoraMediaOption.enableSpotlight() の引数に
enableSimulcast
を追加し、サイマルキャスト無効の状態でスポットライト機能を利用できるようにする - [UPDATE] libwebrtc を 103.5060.4.0 に上げる
- [UPDATE] 依存ライブラリー
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9
を追加する - [UPDATE] システム条件を Android Studio 2021.2.1 に上げる
- [ADD] HTTP プロキシに対応する
- [ADD] SoraMediaChannel に
bundleId
を追加する
2022.2.0
- [CHANGE] Sora で廃止となった以下のフィールドを削除する
- NotificationMessage.numberOfUpstreamConnections
- NotificationMessage.numberOfDownstreamConnections
- ChannelAttendeesCount.numberOfUpstreams
- ChannelAttendeesCount.numberOfDownstreams
- @miosakuma
- [UPDATE] SoraMediaChannel に contactSignalingEndpoint を追加する
- 最初に type: connect を送信したエンドポイントを表す
- この変更と併せて、 connectedSignalingEndpoint をセットするタイミングを、 type: connect 送信時から type: offer 送信時に変更した
- @enm10k
- [UPDATE] SoraMediaOption に role を追加する
- type: connect の role を明示的に指定できるようなった
- 未指定の場合は、従来通り、 SDK が role を自動的に決定する
- @enm10k
- [ADD] メッセージング機能に対応する
- [FIX] SoraMediaChannel.Listener に onOfferMessage を追加する
- type: offer に含まれる metadata などにアクセスするために必要だった
- @enm10k
2022.1.0
- [CHANGE] スポットライトレガシーを削除する
- [UPDATE] libwebrtc を 96.4664.2.1 に上げる
- [UPDATE] dokka を 1.5.31 に上げる
- [ADD] 複数シグナリング URL の指定に対応する
- SoraMediaChannel に connectedSignalingEndpoint を追加する
- @enm10k
- [ADD] redirect メッセージに対応する
- [ADD] type: disconnect に reason を追加する
- [FIX] 視聴のみかつ H.264 した場合に接続できない問題についてのワークアラウンドを削除する
- SoraMediaOption.videoUpstreamContext が無く SoraMediaOption.videoDownstreamContext
がある場合はコーデック指定に依らず、 DefaultVideoEncoderFactory を使用する - @miosakuma
- SoraMediaOption.videoUpstreamContext が無く SoraMediaOption.videoDownstreamContext
- [FIX] libwebrtc の更新で発生するようになったサイマルキャストのクラッシュを修正する
- SimulcastVideoEncoderFactoryWrapper.kt の Fallback クラスが原因で java.lang.UnsupportedOperationException が発生していた
- 調査の結果、 Fallback クラスを削除できることがわかったので、その方向で修正した
- その過程で、 libwebrtc に適用している Android のサイマルキャスト対応のパッチを更新し、 SimulcastVideoEncoderFactory の fallback に null を指定できるようにした
- @enm10k