39
edits
| 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, or | #* 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}}, or this [https://github.com/mozilla-b2g/platform_frameworks_av/pull/4/files pull request]. | #* 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''' | # '''Problem: Keyboard or dial sound is missing in first touch''' | ||
edits