iOS11 When RTMP, not in the main thread
- Dominant language
- C
- Stars
- 33.2k
- Forks
- 8.2k
- PR merge metrics
- No merged PRs in 30d
Description
ijkmp_start()
ijkmp_start()=0
ijkmp_get_msg: FFP_REQ_START
aout_pause_audio(0)
ijkmp_get_msg: FFP_REQ_START
aout_pause_audio(0)
SDL_VoutFFmpeg_CreateOverlay(w=288, h=352, fmt=I420(0x30323449, dp=0x1d067eec0)
Video: first frame decoded
2018-09-25 11:31:56.827717+0800 HXHY[1006:599939] FFP_MSG_VIDEO_SIZE_CHANGED: 288, 352
SDL_VoutFFmpeg_CreateOverlay(w=288, h=352, fmt=I420(0x30323449, dp=0x1d067eec0)
2018-09-25 11:31:56.828725+0800 HXHY[1006:599939] FFP_MSG_VIDEO_SIZE_CHANGED: 288, 352
SDL_VoutFFmpeg_CreateOverlay(w=288, h=352, fmt=I420(0x30323449, dp=0x1d067eec0)
2018-09-25 11:31:56.829626+0800 HXHY[1006:599939] FFP_MSG_VIDEO_SIZE_CHANGED: 288, 352
[GLES2] Version = OpenGL ES 2.0 Metal - 52.3.2
[GLES2] Vendor = Apple Inc.
[GLES2] Renderer = Apple A11 GPU
[GLES2] Extensions = GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_vertex_array_object GL_EXT_blend_minmax GL_EXT_color_buffer_half_float GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_discard_framebuffer GL_EXT_draw_instanced GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_EXT_occlusion_query_boolean GL_EXT_pvrtc_sRGB GL_EXT_read_format_bgra GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_texture_lod GL_EXT_shadow_samplers GL_EXT_sRGB GL_EXT_texture_filter_anisotropic GL_EXT_texture_rg GL_EXT_texture_storage GL_APPLE_clip_distance GL_APPLE_color_buffer_packed_float GL_APPLE_copy_texture_levels GL_APPLE_framebuffer_multisample GL_APPLE_rgb_422 GL_APPLE_sync GL_APPLE_texture_format_BGRA8888 GL_APPLE_texture_max_level GL_APPLE_texture_packed_float GL_IMG_read_format GL_IMG_texture_compression_pvrtc
create render yuv420p
use render yuv420p
avcodec/Audio: first frame decoded
2018-09-25 11:31:56.863601+0800 HXHY[1006:599939] FFP_MSG_AUDIO_RENDERING_START:
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView layer]
PID: 1006, TID: 600356, Thread name: ff_vout, Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 HXHY 0x00000001038fcb90 -[IJKSDLGLView displayInternal:] + 56
5 HXHY 0x00000001038fcabc -[IJKSDLGLView display:] + 192
6 HXHY 0x000000010390b6a8 vout_display_overlay + 92
7 HXHY 0x00000001038f9a90 video_display2 + 88
8 HXHY 0x00000001038f82a8 video_refresh_thread + 1648
9 HXHY 0x00000001038fb120 SDL_RunThread + 40
10 libsystem_pthread.dylib 0x0000000184085220 + 272
11 libsystem_pthread.dylib 0x0000000184085110 + 0
12 libsystem_pthread.dylib 0x0000000184083b10 thread_start + 4
2018-09-25 11:31:56.924443+0800 HXHY[1006:600356] [reports] Main Thread Checker: UI API called on a background thread: -[UIView layer]
PID: 1006, TID: 600356, Thread name: ff_vout, Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 HXHY 0x00000001038fcb90 -[IJKSDLGLView displayInternal:] + 56
5 HXHY 0x00000001038fcabc -[IJKSDLGLView display:] + 192
6 HXHY 0x000000010390b6a8 vout_display_overlay + 92
7 HXHY 0x00000001038f9a90 video_display2 + 88
8 HXHY 0x00000001038f82a8 video_refresh_thread + 1648
9 HXHY 0x00000001038fb120 SDL_RunThread + 40
10 libsystem_pthread.dylib 0x0000000184085220 + 272
11 libsystem_pthread.dylib 0x0000000184085110 + 0
12 libsystem_pthread.dylib 0x0000000184083b10 thread_start + 4
2018-09-25 11:31:57.064434+0800 HXHY[1006:600356] IJKSDLGLView: renderbufferStorage fromDrawable
2018-09-25 11:31:57.078662+0800 HXHY[1006:599939] FFP_MSG_VIDEO_RENDERING_START:
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at IJKSDLGLView displayInternal: and display:, then follow the reported path through vout_display_overlay, video_display2, and video_refresh_thread. Reproduce the iOS 11 RTMP case with Main Thread Checker enabled; done means the video renders without UIKit APIs being called from the ff_vout background thread.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, objective-c
- Domain
- audio-video-rtc, mobile-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100