Let me explain a little bit more the sequence in case somebody has an idea 
of what could be done in this case.

1.- Realize and create the engine, output mux and media player
2.- start pushing date through the buffer queue interface and change the 
state of the media player using the Playback interface to 
XA_PLAYSTATE_PLAYING
3.- I get an error notification through a callback registered through the 
prefetch status interface
4.- I call clear on the buffer queue interface, I change the state of the 
media player to XA_PLAYSTATE_STOPPED
5.- I call Destroy to the media player XAObjectItf, since this is a 
synchronous call we hang in there and the API never returns

I noticed that if I comment out the Destroy call on the MediaPlayer object 
I can pass that point and call destroy on the OutputMix object and the 
Engine but it seems that none of those calls actually happens because 
they're still being referenced by the media player. These logs are printed 
out:

07-11 11:28:31.687  1960  2012 E libOpenSLES: Object::Destroy(0x2c1078) for 
OutputMix ignored; 1 players attached 
07-11 11:28:31.687  1960  2012 E libOpenSLES: Object::Destroy(0x2c1078) not 
allowed 
07-11 11:28:31.687  1960  2012 E libOpenSLES: Object::Destroy(0x26b2f0) for 
engine ignored; 2 total active objects 
07-11 11:28:31.687  1960  2012 E libOpenSLES: Object::Destroy(0x26b2f0) for 
engine ignored; active object ID 2 at 0x2c1078 
07-11 11:28:31.687  1960  2012 E libOpenSLES: Object::Destroy(0x26b2f0) for 
engine ignored; active object ID 3 at 0x2c1f20

I think this will probably could leave a leak but at least I still have 
control over the app.
Let me know if there is another way to bypass this error
thx
Memo

On Tuesday, July 10, 2012 6:11:08 PM UTC-7, MR wrote:
>
> Hi
> I'm currently using the OpenMaxAL interface provided in Android 4.0.x to 
> render a h264/AAC mpeg2-ts stream. There is one particular file that 
> triggers an error inside the decoder of my Galaxy Nexus. The error looks 
> like this:
>
> 07-10 16:47:51.031   116   116 E IMGSRV  : :0: gralloc_device_alloc: 
> Invalid color format (2130706433)
> 07-10 16:47:51.031   116   116 W GraphicBufferAllocator: alloc(1536, 1184, 
> 2130706433, 00002b00, ...) failed -22 (Invalid argument)
> 07-10 16:47:51.031   116   116 E SurfaceFlinger: 
> GraphicBufferAlloc::createGraphicBuffer(w=1536, h=1184) failed (Invalid 
> argument), handle=0x0
> 07-10 16:47:51.031   116   116 E SurfaceTexture: [SurfaceView] 
> dequeueBuffer: SurfaceComposer::createGraphicBuffer failed
> 07-10 16:47:51.031   119  2869 E ACodec  : dequeueBuffer failed: Invalid 
> argument (22)
> 07-10 16:47:51.031   119  2869 E ACodec  : Failed to allocate output port 
> buffers after port reconfiguration (error 0xffffffea)
> 07-10 16:47:51.031   119  2865 E NuPlayer: Received error from video 
> decoder, aborting playback.
> 07-10 16:47:51.031   119  2865 E NuPlayer: video track encountered an 
> error (-2147483648)
> 07-10 16:47:51.031  2825  2864 E libOpenSLES: Error after prepare: 1
>
> After I catch the error using the prefetch status interface I try to stop 
> all my rendering activities and start tearing down everything, but the app 
> seems to become unresponsive once I call Destroy to the XAObjectItf 
> interface of the media player object. Is this a known issue?
> thx
> Memo
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to