Skip to content

Releases: shiguredo/sora-android-sdk

2025.1.0

27 Jan 03:54
8441cc2
Compare
Choose a tag to compare

リリース日: 2025-01-27

  • [UPDATE] libwebrtc を 132.6834.5.0 に上げる
  • [UPDATE] SoraForwardingFilterOption 型の引数を Sora での 2025 年 12 月の廃止に向けて非推奨にする
    • 今後はリスト形式の転送フィルター設定を利用してもらう
    • 非推奨になるクラス
      • SoraMediaChannel
      • SignalingChannelImpl
      • ConnectMessage (Any で定義されているが、実態は SoraForwardingFilterOption を Map に変換したもの)
    • @zztkm
  • [UPDATE] OfferMessage に項目を追加する
    • 追加した項目
      • version
      • simulcastMulticodec
      • spotlight
      • channelId
      • sessionId
      • audio
      • audioCodecType
      • audioBitRate
      • video
      • videoCodecType
      • videoBitRate
    • @zztkm
  • [UPDATE] NotificationMessage に項目を追加する
    • 追加した項目
      • timestamp
      • spotlightNumber
      • failedConnectionId
      • currentState
      • previousState
    • @zztkm
  • [ADD] 転送フィルター機能の設定を表すクラス SoraForwardingFilterOptionnamepriority を追加する
  • [ADD] 転送フィルターをリスト形式で指定するためのプロパティを追加する
    • プロパティが追加されるクラス
      • SoraMediaChannel に forwardingFiltersOption を追加する
      • SignalingChannelImpl に forwardingFiltersOption を追加する
      • ConnectMessage に forwardingFilters を追加する
      • クラスそのものに変更はないが MessageConverter.buildConnectMessageforwardingFiltersOption を追加する
    • @zztkm
  • [FIX] SoraMediaChannel のコンストラクタで signalingMetadatasignalingNotifyMetadata に Map オブジェクトを指定した場合、null を持つフィールドが connect メッセージ送信時に省略されてしまう問題を修正
    • signalingMetadatasignalingNotifyMetadata に設定する情報はユーザが任意に設定する項目であり value 値が null の情報も送信できるようにする必要がある
    • Gson は JSON シリアライズ時、デフォルトで null フィールドを無視するので、null を持つフィールドは省略される
    • signalingMetadatasignalingNotifyMetadata のみ null フィールドを省略しないようにする必要があるため、以下のような手順で JSON シリアライズを行うようにした
      • まず、デフォルトの Gson インスタンスで ConnectMessage をシリアライズする
      • その後、シリアライズした JSON 文字列を JsonObject に変換する (この時点で null のフィールドは省略されている)
      • JsonObject に metadata, signalingNotifyMetadata をセットし直す
      • JsonObject を serializeNulls() を呼び出した Gson インスタンスでシリアライズする
    • @zztkm

2024.3.1

30 Aug 05:56
Compare
Choose a tag to compare

2024.3.1

リリース日: 2024-08-30

  • [FIX] JitPack で発生した Gradle Task の暗黙的な依存関係によるビルドエラーを修正する
    • generateMetadataFileForSora-android-sdkPublication は暗黙的に sourcesJar に依存していた
    • このため、タスクの実行順序によってはビルドエラーが発生する状況になっており、kotlin 1.9 に上げたタイミングで問題が発現した
    • この問題に対処するために、generateMetadataFileForSora-android-sdkPublicationsourcesJar に依存していることを明示的に宣言した
    • @zztkm

2024.3.0

リリース日: 2024-08-29

  • [UPDATE] libwebrtc を 127.6533.1.1 に上げる
  • [UPDATE] Android Gradle Plugin (AGP) を 8.5.0 にアップグレードする
    • Android Studion の AGP Upgrade Assistant を利用してアップグレードされた内容
      • com.android.tools.build:gradle を 8.5.0 に上げる
      • ビルドに利用される Gradle を 8.7 に上げる
      • Android マニフェストからビルドファイルにパッケージを移動
        • Android マニフェストに定義されていた package を削除
        • ビルドファイルに namespace を追加
      • buildTypes に定義されていた debug ブロックを削除
    • AGP 8.5.0 対応で発生したビルドスクリプトのエラーを手動で修正した内容
    • GitHub Actions で利用する JDK のバージョンを 17 にする
    • JitPack でのビルドで利用する JDK のバージョンを 17 にする
    • @zztkm
  • [UPDATE] 依存ライブラリーのバージョンを上げる
    • com.google.code.gson:gson を 2.11.0 に上げる
    • com.squareup.okhttp3:okhttp を 4.12.0 に上げる
    • org.jetbrains.kotlinx:kotlinx-coroutines-android を 1.8.1 に上げる
    • androidx.test:core を 1.6.1 に上げる
    • org.robolectric:robolectric を 4.13 に上げる
    • @zztkm
  • [UPDATE] Kotlin のバージョンを 1.9.25 に上げる
  • [FIX] Offer メッセージの encodings 内 maxFramerate の値が整数でない値であった場合にエラーとなる問題を修正
    • W3C では maxFramerate を Double で定義しているが、libwebrtc では Integer となっているため、SDK も Integer を使用していた
    • W3C の定義に合わせて Double を受け入れるようにし、また SDK 内部では libwebrtc に合わせて Integer とする方針となった
    • 方針に合わせ SDK に対して maxFramerate を Double を受け入れるように修正し、int にキャストして設定するように変更
    • 参考
    • @torikizi
  • [FIX] Offer メッセージでサイマルキャスト有効を指定した場合にサイマルキャストが有効にならない問題を修正
    • 接続時にクライアントが指定したサイマルキャスト有効/無効の設定により SimulcastVideoEncoder を利用していたが、Sora 側でサイマルキャスト有効の指定は変更できるためサイマルキャスト有効/無効の判断は Offer メッセージの simulcast の値を元に行う必要があった
    • @miosakuma

2024.3.0

29 Aug 07:19
Compare
Choose a tag to compare

JitPack でのビルドに失敗したため再リリースを行なっています。 2024.3.1 を利用してください。

リリース日: 2024-08-29

  • [UPDATE] libwebrtc を 127.6533.1.1 に上げる
  • [UPDATE] Android Gradle Plugin (AGP) を 8.5.0 にアップグレードする
    • Android Studion の AGP Upgrade Assistant を利用してアップグレードされた内容
      • com.android.tools.build:gradle を 8.5.0 に上げる
      • ビルドに利用される Gradle を 8.7 に上げる
      • Android マニフェストからビルドファイルにパッケージを移動
        • Android マニフェストに定義されていた package を削除
        • ビルドファイルに namespace を追加
      • buildTypes に定義されていた debug ブロックを削除
    • AGP 8.5.0 対応で発生したビルドスクリプトのエラーを手動で修正した内容
    • GitHub Actions で利用する JDK のバージョンを 17 にする
    • JitPack でのビルドで利用する JDK のバージョンを 17 にする
    • @zztkm
  • [UPDATE] 依存ライブラリーのバージョンを上げる
    • com.google.code.gson:gson を 2.11.0 に上げる
    • com.squareup.okhttp3:okhttp を 4.12.0 に上げる
    • org.jetbrains.kotlinx:kotlinx-coroutines-android を 1.8.1 に上げる
    • androidx.test:core を 1.6.1 に上げる
    • org.robolectric:robolectric を 4.13 に上げる
    • @zztkm
  • [UPDATE] Kotlin のバージョンを 1.9.25 に上げる
  • [FIX] Offer メッセージの encodings 内 maxFramerate の値が整数でない値であった場合にエラーとなる問題を修正
    • W3C では maxFramerate を Double で定義しているが、libwebrtc では Integer となっているため、SDK も Integer を使用していた
    • W3C の定義に合わせて Double を受け入れるようにし、また SDK 内部では libwebrtc に合わせて Integer とする方針となった
    • 方針に合わせ SDK に対して maxFramerate を Double を受け入れるように修正し、int にキャストして設定するように変更
    • 参考
    • @torikizi
  • [FIX] Offer メッセージでサイマルキャスト有効を指定した場合にサイマルキャストが有効にならない問題を修正
    • 接続時にクライアントが指定したサイマルキャスト有効/無効の設定により SimulcastVideoEncoder を利用していたが、Sora 側でサイマルキャスト有効の指定は変更できるためサイマルキャスト有効/無効の判断は Offer メッセージの simulcast の値を元に行う必要があった
    • @miosakuma

2024.2.0

23 Apr 07:49
Compare
Choose a tag to compare
  • [UPDATE] libwebrtc を 122.6261.1.0 に上げる
  • [UPDATE] Github Actions の actions/setup-java@v4 にあげる

2024.1.1

19 Mar 07:24
Compare
Choose a tag to compare

2024.1.1

  • [FIX] jitpack.yml を追加して jdk のバージョンを 11 に指定する
    • JitPack で jdk 8 でビルドが走ってエラーとなったため、明示的に利用する jdk を指定する
    • @miosakuma

2024.1.0

  • [CHANGE] NotificationMessagematadata_list を削除する
    • 2022.1.0 の Sora で metadata_list が廃止されたため
    • NotificationMessage の data で値の取得が可能
    • @miosakuma
  • [CHANGE] NotificationMessagechannel_id を削除する
    • Sora から値を通知しておらず利用していない項目のため削除する
    • @miosakuma
  • [UPDATE] libwebrtc を 121.6167.4.0 に上げる
    • コンバイルに利用する Java のバージョンを 1.8 に上げる
    • @miosakuma
  • [UPDATE] 解像度に qHD (960x540, 540x960) を追加する
  • [UPDATE] ForwardingFilterversionmetadata を追加する
  • [ADD] H.265 に対応する
    • SoraVideoOptionCodecH265 を追加しました
    • @enm10k
  • [FIX] connect メッセージに設定するバージョンの取得に git describe を使うのを止める
    • 開発中に develop ブランチなどでの出力が意図せぬ結果になるため修正
    • リリースされた Sora Android SDK では正常な出力になるため、ユーザーへの影響はなし
    • @enm10k
  • [FIX] ForwardingFilteraction を未指定にできるようにする
  • [FIX] NotificationMessage に項目を追加する
    • session_id
    • kind
    • destination_connection_id
    • source_connection_id
    • recv_connection_id
    • send_connection_id
    • stream_id
    • @miosakuma

2024.1.0

19 Mar 05:56
Compare
Choose a tag to compare

JitPack でのビルドに失敗したため再リリースを行なっています。 2024.1.1 を利用してください。

  • [CHANGE] NotificationMessagematadata_list を削除する
    • 2022.1.0 の Sora で metadata_list が廃止されたため
    • NotificationMessage の data で値の取得が可能
    • @miosakuma
  • [CHANGE] NotificationMessagechannel_id を削除する
    • Sora から値を通知しておらず利用していない項目のため削除する
    • @miosakuma
  • [UPDATE] libwebrtc を 121.6167.4.0 に上げる
    • コンバイルに利用する Java のバージョンを 1.8 に上げる
    • @miosakuma
  • [UPDATE] 解像度に qHD (960x540, 540x960) を追加する
  • [UPDATE] ForwardingFilterversionmetadata を追加する
  • [ADD] H.265 に対応する
    • SoraVideoOptionCodecH265 を追加しました
    • @enm10k
  • [FIX] connect メッセージに設定するバージョンの取得に git describe を使うのを止める
    • 開発中に develop ブランチなどでの出力が意図せぬ結果になるため修正
    • リリースされた Sora Android SDK では正常な出力になるため、ユーザーへの影響はなし
    • @enm10k
  • [FIX] ForwardingFilteraction を未指定にできるようにする
  • [FIX] NotificationMessage に項目を追加する
    • session_id
    • kind
    • destination_connection_id
    • source_connection_id
    • recv_connection_id
    • send_connection_id
    • stream_id
    • @miosakuma

2023.2.0

29 Aug 07:24
Compare
Choose a tag to compare
  • [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] 映像コーデックパラメータを追加する
    • SoraMediaOptionvideoVp9Params, videoAv1Params, videoH264Params を追加する
    • @miosakuma

2023.1.0

05 Apr 05:01
Compare
Choose a tag to compare
  • [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] SoraMediaOptionaudioStreamingLanguageCode を追加する
  • [FIX] テストコード内に廃止された role が残っていたため最新化する
  • [FIX] PeerConnection.ContinualGatheringPolicy.GATHER_CONTINUALLY は Sora がネットワーク変更に対応しておらず不要な設定であるため削除する

2022.4.0

16 Sep 08:58
Compare
Choose a tag to compare
  • [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

29 Jun 01:38
Compare
Choose a tag to compare
  • [CHANGE] SoraMediaOption に hardwareVideoEncoderResolutionAdjustment を追加する
    • HW エンコーダーに入力されるフレームの解像度が指定された数の倍数になるように調整する
    • デフォルトでは 16 が指定されている
    • このオプションを実装した経緯は以下の通り
    • 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 を追加する