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.


Reply via email to