RtspStream.stopRecord() sometimes blocks in Service.onDestroy() since 2.8.1
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- audio-video-rtc, mobile-dev
Hướng nghiên cứu
Start by reading the RtspStream.stopRecord() implementation and the RecordController stop/status-callback path, then check how they interact with Android Service onDestroy(). Try to reproduce the intermittent hang on the reported Android 13 device and compare behavior between library versions 2.6.7 and 2.8.1. Done means stopRecord() returns during service destruction and the STOPPED event is emitted.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
After upgrading the library from version 2.6.7 to 2.8.1, RtspStream.stopRecord() sometimes blocks when it is called from the onDestroy() method of an Android Service.
With library version 2.6.7, the same implementation worked correctly.
When the issue occurs, the call to:
rtspStream.stopRecord()
does not appear to return. The expected RecordController onStatusChange STOPPED event is not received.
The issue is intermittent and does not occur every time the Service is destroyed.
To Reproduce
Steps to reproduce the behavior:
Use com.github.pedroSG94.RootEncoder:library:2.8.1.
Use an Android 13 custom device.
Create and start an RtspStream.
Start recording.
Destroy the Android Service that manages the stream.
Call rtspStream.stopRecord() from the Service onDestroy() method.
In some cases, stopRecord() appears to block.
The expected RecordController onStatusChange STOPPED event is never received.
Code after rtspStream.stopRecord() is not executed.
The same steps work correctly with library version 2.6.7.
Expected behavior
rtspStream.stopRecord() should complete normally when called from the Service onDestroy() method.
The RecordController should emit the STOPPED status event and execution should continue with the code following rtspStream.stopRecord().
This behavior worked correctly with library version 2.6.7.
Library version: 2.8.1
Device: Custom Android device
OS: Android 13
Media server: RTSP
Class used: RtspStream
Additional context
The application uses:
implementation "com.github.pedroSG94.RootEncoder:library:2.8.1"
The problem appears to be a regression between library versions 2.6.7 and 2.8.1, since the same application code and device configuration worked correctly with version 2.6.7.
The relevant code is executed from the onDestroy() method of an Android Service:
override fun onDestroy() {
// ...
rtspStream.stopRecord()
// These instructions are not executed when the issue occurs
// ...
super.onDestroy()
}
When the problem occurs, execution stops at rtspStream.stopRecord(). I do not receive the expected:
RecordController onStatusChange STOPPED callback.
The issue is intermittent: sometimes stopRecord() works correctly, while other times it appears to remain blocked indefinitely.
- Ngôn ngữ chính
- Kotlin
- Star
- 3k
- Fork
- 946
- Merge trung bình
- 4 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 9
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của pedroSG94/RootEncoder
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
pedroSG94/RootEncoder#2213 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
pedroSG94/RootEncoder#2207 · 1 reaction ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
pedroSG94/RootEncoder#2203 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
pedroSG94/RootEncoder#2177 · 44 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Docs/Migration: 1.x → 2.x breaking API changes are not documented (package rename, ConnectChecker rename)Có thể làm lại được @pedroSG94 đã nhận 77 ngày trước và không có pull request nào đang mở. Đang mởenhancement
pedroSG94/RootEncoder#2118 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của pedroSG94/RootEncoder
Issue tương tự
-
Dev
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
ankidroid/Anki-Android#22555 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Good first issue: add kotlin-spring-boot stack budget preset (Kotlin + Spring Boot 3 + Gradle)Đang mởenhancement good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
core: RAC_LLM_OPTIONS_DEFAULT.min_p disagrees with the IDL's annotated defaultCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởbug core p3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
RunanywhereAI/runanywhere-sdks#1083 ·
Maintainer thường phản hồi trong vòng 5 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Java and Kotlin (JVM): parse gradle/wrapper/gradle-wrapper.properties with exact line locationsĐang mởarea: detector eco: java help wanted lane: free-agent roadmap size: S type: parser
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
arminazimi/evergreen#355 ·
Maintainer thường phản hồi trong vòng 1 ngày