39
edits
(8 intermediate revisions by 3 users not shown) | |||
Line 18: | Line 18: | ||
#* Solution: Make sure all the buffers allocated from '''''ANativeWindows''''' can be used for video decoding. | #* Solution: Make sure all the buffers allocated from '''''ANativeWindows''''' can be used for video decoding. | ||
#* Reference: {{attachment|744257}} on {{bug|864230}} | #* Reference: {{attachment|744257}} on {{bug|864230}} | ||
#** In AOSP, ANativeWindow is used as a buffer source and also as a render target. ANativeWindow needs to keep at least ''minUndequeuedBufs'' while rendering video. Although some number of buffers have to be kept in ANativeWindow, every buffer in the buffer queue can takes turns to be filled, be rendered, and be emptied. So utilization of buffers in the queue is ok. | #** In AOSP, ''ANativeWindow'' is used as a buffer source and also as a render target. ''ANativeWindow'' needs to keep at least ''minUndequeuedBufs'' while rendering video. Although some number of buffers have to be kept in ''ANativeWindow'', every buffer in the buffer queue can takes turns to be filled, be rendered, and be emptied. So utilization of buffers in the queue is ok. | ||
#** In Firefox OS, ANativeWindow is used as a buffer source, but not as a render target. If we keep ''minUndequeuedBufs'' buffers in ANativeWindow, these buffers will always be kept in ANativeWindow and never have chances to be filled. As a result, it's very easy to encounter buffer starvation during video decoding. | #** In Firefox OS, ''ANativeWindow'' is used as a buffer source, but not as a render target. If we keep ''minUndequeuedBufs'' buffers in ''ANativeWindow'', these buffers will always be kept in ''ANativeWindow'' and never have chances to be filled. As a result, it's very easy to encounter buffer starvation during video decoding. | ||
# '''Problem: I cannot resume playback by clicking the play button after the video/audio has been paused.''' | # '''Problem: I cannot resume playback by clicking the play button after the video/audio has been paused.''' | ||
#* Solution: Make sure to return '''''ERROR_UNSUPPORTED''''' in '''''OMXCodec::pause()''''' if underlying OMX IL component doesn't support pause and resume function. | #* Solution: Make sure to return '''''ERROR_UNSUPPORTED''''' in '''''OMXCodec::pause()''''' if underlying OMX IL component doesn't support pause and resume function, or ''OMXCodec'' itself cannot be resumed by ''OMXCodec::start()'' after ''OMXCodec::pause()'' has been called. | ||
#* Reference: {{attachment|8340486}} on {{bug|919590}} | #* Reference: {{attachment|8340486}} on {{bug|919590}}, or this [https://github.com/mozilla-b2g/platform_frameworks_av/pull/4/files pull request]. | ||
#** | # '''Problem: Keyboard or dial sound is missing in first touch''' | ||
#* Solution: Make sure that PCM data decoded by AudioFlinger is right. | |||
#** Find AudioFlinger source code, Each project has different location. According Tarako, source code are in frameworks/base/services/audioflnger | |||
#** Add some code {{bug|977481}} to dump audio pcm data at AudioFlinger::MixerThread::threadLoop() | |||
#* Reference: {{bug|967581}} | |||
# '''Problem: Publicnotification audio channel type is not supported''' | |||
#* Solution: add SL_ANDROID_STREAM_SYSTEM_ENFORCED & CUBEB_STREAM_TYPE_ENFORCED_AUDIBLE in FxOS | |||
#** add SYSTEM_ENFORCED (ENFORCED_AUDIBLE) in sles_definitions.h | |||
#** support CUBEB_STREAM_TYPE_SYSTEM_ENFORCED in cubeb_opensl.c & AudioStream.cpp | |||
#* Reference: {{bug|1007552}} | |||
# '''Problem: Playing music is choopy when the A2DP is connected''' | |||
#* Solution: restrict the framecount value | |||
#* Reference: {{bug|1045489}} | |||
# '''Problem: I encounter a weird bug only on JellyBean from CodeAuroraForum with Gecko v2.0 (or above).''' | |||
#* Solution: Sorry. There are no plans for CAF to support v2.0 with JB. | |||
#* Reference: [https://bugzilla.mozilla.org/show_bug.cgi?id=1045351#c16 Comment 16] on {{bug|1045351}} |
edits