Hi All,
I am trying to get WiFi Display up on exynos4 platform . I faced some
issues and posting my analysis below. Any inputs on the logic in the code
here would be helpful.
Analysis:
Once the DisplayDevice is added successfully, the logs show error in
BufferQueue.cpp :
setBufferCount: requested buffer count (5) is less than minimum (6)
I observed that in
hardware\samsung_slsi\exynos4\multimedia\openmax\component\video\enc\SEC_OMX_Venc.c,
we set
* pSECPort->portDefinition.nBufferCountActual =
MAX_VIDEO_INPUTBUFFER_NUM; //5*
This is what gets set as max count in setMaxAcquiredBufferCount.
When I checked the logic for “setBufferCount”, I see that 1 is added to
mMaxAcquiredBufferCount to calculate the min count . Since max is set to 5
, min becomes 6 and hence the error.
See code snippet below.
*status_t BufferQueue::setBufferCount(int bufferCount) (BufferQueue.cpp
:frameworks\native\libs\gui)*
*if (bufferCount < minBufferSlots) {*
* ST_LOGE("setBufferCount: requested buffer count (%d) is less
than "*
* "minimum (%d)", bufferCount, minBufferSlots);*
* return BAD_VALUE;*
* }*
* *
*int BufferQueue::getMinMaxBufferCountLocked() const {*
* return getMinUndequeuedBufferCountLocked() + 1;*
*}*
* *
*int BufferQueue::getMinUndequeuedBufferCountLocked() const {*
* return mSynchronousMode ? mMaxAcquiredBufferCount :*
* mMaxAcquiredBufferCount + 1;*
*}*
*
*
*========end of analysis========*
*
*
If I change the value of MAX_VIDEO_INPUTBUFFER_NUM to 4, I do not see the
error but is it right to do this change? Why does *getMinMaxBufferCountLocked
*adds 1* to **mMaxAcquiredBufferCount ?*
Even after I make this change, I see the error and system crashes:
01-01 00:07:31.410 E/SurfaceFlinger( 2414): received event for an invalid
display on HotPlugrecd (id=2)
01-01 00:07:31.410 I/SurfaceTextureClient( 2414):
SurfaceTextureClient::dequeueBuffer
01-01 00:07:31.420 I/cat ( 2408): <4>[ 453.345000] mali-utgard
mali-utgard.0: start latency exceeded, new value 875 ns
01-01 00:07:31.420 I/SurfaceTextureClient( 3037):
SurfaceTextureClient::queueBuffer
01-01 00:07:31.425 E/[Gralloc-ERROR]( 2414): int
gralloc_register_buffer(const gralloc_module_t*, buffer_handle_t):72 Unable
to register handle 0x42101530 coming from different process: 2414
01-01 00:07:31.435 I/SurfaceTextureClient( 2414):
SurfaceTextureClient::queueBuffer
01-01 00:07:31.435 I/SurfaceTextureClient( 2414):
SurfaceTextureClient::queueBuffer making up timestamp: 453365.78 ms
01-01 00:07:31.435 I/SurfaceMediaSource( 2417): onFrameAvailable
01-01 00:07:31.435 I/SurfaceMediaSource( 2417): handle = 0x411b19e0, ,
offset = 8, length = 0
01-01 00:07:31.435 I/SurfaceMediaSource( 2417): Frames encoded = 1,
timestamp = 453365777, time diff = 453365777
01-01 00:07:31.435 I/SurfaceMediaSource( 2417): returning mbuf 0x40e95db8
01-01 00:07:31.435 I/SurfaceMediaSource( 2417): read
01-01 00:07:31.435 I/SurfaceTextureClient( 2414):
SurfaceTextureClient::dequeueBuffer
01-01 00:07:31.440 I/InputReader( 2861): Reconfiguring input devices.
changes=0x00000004
01-01 00:07:31.440 I/InputReader( 2861): Device reconfigured: id=1,
name='pixcir_ts', size 480x800, orientation 0, mode 1, display id 0
01-01 00:07:31.455 E/[Gralloc-ERROR]( 2414): int
gralloc_register_buffer(const gralloc_module_t*, buffer_handle_t):72 Unable
to register handle 0x4210ea48 coming from different process: 2414
01-01 00:07:31.455 F/libc ( 2414): Fatal signal 11 (SIGSEGV) at
0x431b3000 (code=1), thread 2513 (SurfaceFlinger)
Any pointers on what can be causing this would be appreciated.
Thanks in advance
Pragya
------
On Tuesday, February 12, 2013 12:34:44 PM UTC+5:30, Pragya Gupta wrote:
>
> Hi All,
>
> Has anyone tried to bring up WiFi Display on JB4.2 ? Does anyone know if
> android uses soft encoder by default and we need to make changes to make it
> work with our hardware encoder? or is it that soft encoder is not supported
> ?
>
> Thanks
> Pragya
>
--
--
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
---
You received this message because you are subscribed to the Google Groups
"android-porting" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.