Question

I'm developing an application on Android which heavily uses video playback (an interactive movie) which is already on the market.

The problem is that the video playback does not work on a Samsung Galaxy Gio (2.3.3), although it works on older models with smaller resolutions.

It seems there is a codec problem since I tried to manually load the video with the default media player and it cannot play it. Other media players have no problem with it.

The video is encoded using Handbrake with MPEG-4 (FFmpeg) at a resolution of 800x480.

This is a logcat dump with the errors

12-26 14:04:43.269: E/QCvdec(95): get_parameter: unknown param 0ff7a347
12-26 14:04:43.269: E/VideoMIO(95): AndroidSurfaceOutput::setParametersSync()  VIDEO ROTATION 0
12-26 14:04:43.269: E/QCvdec(95): Setparameter: unknown param 117440513
12-26 14:04:43.459: E/QCvdec(95): Omx Flush issued when vdec is not initialized yet.
12-26 14:04:43.459: E/(95): profile_and_level_indication =  3
12-26 14:04:43.459: E/(95): video_object_type_indication =  1
12-26 14:04:43.459: V/PlayerDriver(95): HandleInformationalEvent: UNKNOWN PVMFStatus
12-26 14:04:43.459: V/PlayerDriver(95): HandleInformationalEvent: type=44 UNHANDLED
12-26 14:04:43.459: W/MediaPlayer(2705): info/warning (1, 44)
12-26 14:04:43.459: V/PlayerDriver(95): CommandCompleted
12-26 14:04:43.459: V/PlayerDriver(95): Completed command PLAYER_PREPARE status=PVMFSuccess
12-26 14:04:43.459: V/PlayerDriver(95): PLAYER_PREPARE complete mDownloadContextData=0x0, mDataReadyReceived=0
12-26 14:04:43.459: V/PVPlayer(95): stop
12-26 14:04:43.459: V/PlayerDriver(95): Send player code: 9
12-26 14:04:43.459: V/PVPlayer(95): check_for_live_streaming s=0, cancelled=0
12-26 14:04:43.459: E/QCvdec(95): Omx Flush issued when vdec is not initialized yet.
12-26 14:04:43.459: E/QCvdec(95): OMXCORE-SM:Recieved command DISABLE (2)
12-26 14:04:43.459: E/QCvdec(95): Omx Flush issued when vdec is not initialized yet.
12-26 14:04:43.459: E/QCvdec(95): OMXCORE-SM:Recieved command ENABLE (3)
12-26 14:04:43.459: E/(95): vdec: failed to allocate pmem arena (10161152 bytes)
12-26 14:04:43.459: E/QCvdec(95): ERROR!!! vdec_open failed
12-26 14:04:43.459: E/VideoMIO(95): AndroidSurfaceOutput::setParametersSync()  VIDEO ROTATION 0
12-26 14:04:43.469: E/PVOMXVidDecNode(95): Ln 1458 OMX_EventError nData1 0x0 nData2 0x0
12-26 14:04:43.469: V/PlayerDriver(95): HandleInformationalEvent: PVMFInfoErrorHandlingStart
12-26 14:04:43.469: V/PlayerDriver(95): HandleInformationalEvent: type=26 UNHANDLED
12-26 14:04:43.469: W/MediaPlayer(2705): info/warning (1, 26)
12-26 14:04:43.469: E/PlayerDriver(95): HandleErrorEvent: PVMFErrProcessing
12-26 14:04:43.469: E/MediaPlayer(2705): error (1, -18)
12-26 14:04:43.479: E/QCvdec(95): Omx Flush issued when vdec is not initialized yet.
12-26 14:04:43.479: W/QCvdec(95): ======================================================================
12-26 14:04:43.479: W/QCvdec(95):                    Open Max Statistics                                
12-26 14:04:43.479: W/QCvdec(95): ======================================================================
12-26 14:04:43.479: W/QCvdec(95): empty this buffer rate = 2985.074707
12-26 14:04:43.479: W/QCvdec(95): empty this buffer total time = 670
12-26 14:04:43.479: W/QCvdec(95): empty this buffer count = 2

=====================================================================

Is there a way to install more codecs on a device for the default player?

Any help will be greatly appreciated. Thank you

Was it helpful?

Solution

We had a similar problem with an older Android 2.2 device. It turned out that the VideoView wasn't able to scale the video to the correct size for some reason. We reduced the video resolution to fit into device resolution and it worked.

The Samsung Galaxy Gio only has a 320x480 display and you have a 800x480 video. Maybe you can reduce the video resolution so it fits into the 320x480 display without being resized (just to test if thats the problem).

Did you encode the video with baseline profile? This is required by some devices for correct video playback. See Android media formats for details.

You can also try to add an OnErrorListener to your media player. Maybe you get an useful error message :)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top