从Grafika项目中,文件 DoubleDecodeActivity.java。我在 3 个 SurfaceView 上使用 MediaCodec API 尝试了 3 个同步视频(h264)解码器。在使用 Android 5.1 将第四个解码器添加到第四个 SurfaceView 到 Nexus 7 时崩溃,那么可以或支持多少个同时解码器。
附言。这次崩溃后,MediaCodec 不再工作。需要重启设备才能使用MediaCodec。
下面是崩溃日志。第四个解码器线程的函数崩溃decoder.start()。
com.example.app.one V/DecodeActivity: Mime: video/avc
com.example.app.one I/OMXClient: Using client-side OMX mux.
com.example.app.one V/DecodeActivity: Mime: video/avc
com.example.app.one I/OMXClient: Using client-side OMX mux.
com.example.app.one V/DecodeActivity: Mime: video/avc
com.example.app.one E/ACodec: [OMX.qcom.video.decoder.avc] storeMetaDataInBuffers failed w/ err -2147483648
com.example.app.one E/ACodec: [OMX.qcom.video.decoder.avc] storeMetaDataInBuffers failed w/ err -2147483648
com.example.app.one W/ACodec: do not know color format 0x7fa30c03 = 2141391875
com.example.app.one W/ACodec: do not …Run Code Online (Sandbox Code Playgroud) 默认情况下,哪种调度机制与Linux内核(3.0+)一起使用,我猜Premptive Scheduling?
我们可以在构建时(从menuconfig中)选择一些其他机制,如Deadline First或Round Robin吗?
在Round-Robin机制中,如何在内核中分配和使用时间片?(我的意思是时间片是在运行时计算的吗?)