macOS 版 Momo で VideoToolbox 利用時の解像度変更時に落ちる問題の修正 #92
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#77 の修正。
libWebRTC側のデグレなので、暫定的にパッチをあてて対応します。
デバッガで確認したところ、以下のリンク先と同じ問題にヒットしている模様。現状、libWebRTC に patch をあてて対応するしかなさそう。(正確にはカスタムな RTCEncoderFactory を書くという手もあるもがメンテコストが大変なので、個人的に却下しました)長期的には libWebRTC 側で直してもらいたいところ。
https://groups.google.com/forum/#!topic/discuss-webrtc/AVeyMXnM0gY
ここの変更で入った問題のようです。ちゃんと追えてませんが、1年前だから、m73 あたりで入ったのではないかと。
https://webrtc-review.googlesource.com/c/src/+/90403/7/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm
参考
-g
オプションをつけてコンパイルしたmomo
を lldb 経由で起動して落ちた時のログ。落ちている場所が、上記の URL の問題と同じ箇所なので、そこに書いてある修正を、処理の効率を考えて、少し場所は変えて適用しています。