Playing an app local video (.mp4) in a webview - android

I have an app that I'm writing for both iOS and Android. I have a content page with which I need to link to/play a .mp4 video in a UIWebView/WebView. The video is going to be included in the app so that it can work offline.
With iOS I just used a video tag (with source to a project file) and then used NSNotifications to fullscreen and landscape the video (app normally runs in portrait mode). Job done.
On Android I'm having some issues.
Firstly, when you use a local image as the video poster it crashed the app (apparently a known bug - using a remote image solves the problem - although not much help for an offline mode).
Secondly it doesn't play. I've tried both a remote and local file (referenced as file:///android_asset/html/video.mp4).
I've tested the .mp4 from the android browser and it plays okay so I know that the video is fine.
I've tried a different tack using a link to a video instead. I found an example at the following link (have to use google cache to view): http://webcache.googleusercontent.com/search?q=cache:EVz7nwc8718J:www.codelark.com/2010/05/12/android-viewing-video-from-embedded-webview/+http://www.codelark.com/2010/05/12/android-viewing-video-from-embedded-webview/&cd=1&hl=en&ct=clnk&gl=uk
My code is as follows:
webengine = (WebView) findViewById(R.id.webview);
webengine.getSettings().setJavaScriptEnabled(true);
webengine.getSettings().setPluginsEnabled(true);
webengine.getSettings().setAllowFileAccess(true);
webengine.setDownloadListener(new DownloadListener()
{
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimeType, long size)
{
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
viewIntent.setDataAndType(Uri.parse(url), mimeType);
try
{
startActivity(viewIntent);
}
catch (ActivityNotFoundException ex)
{
Log.w("sta", "Couldn't find activity to view mimetype: " + mimeType);
}
}
});
webengine.loadUrl("file:///android_asset/html/index.html");
With a remote video link it tries to open the android browser and then bails back to the app. With a local video link it appears to load the player but I get "Cannot play video - Sorry, this video cannot be played"
This is my logcat log:
I/ActivityManager( 168): Starting: Intent { act=android.intent.action.VIEW dat=file:///android_asset/html/standrewsanimation.mp4 typ=video/mp4 cmp=com.cooliris.media/.MovieView } from pid 4299
W/ActivityManager( 168): Trying to launch com.cooliris.media/.MovieView
I/WindowManager( 168): Setting rotation to 1, animFlags=1
I/ActivityManager( 168): Config changed: { scale=1.0 imsi=234/20 loc=en_GB touch=3 keys=1/1/2 nav=1/1 orien=2 layout=18 uiMode=17 seq=40}
D/PhoneApp( 301): updateProximitySensorMode: lock already released.
I/ApplicationPackageManager( 3982): cscCountry is not German : H3G
D/MovieView( 3982): onCreate
I/MovieView( 3982): registerBroadcastRecievers
D/MovieViewControl( 3982): getFilePathByUri URI : file:///android_asset/html/standrewsanimation.mp4
D/MovieViewControl( 3982): getFilePathByUri path from DB - Path : null
D/MovieViewControl( 3982): getFilePathByUri path from uri - Path : /android_asset/html/standrewsanimation.mp4
D/MovieViewControl( 3982): checkDRMContent() path : /android_asset/html/standrewsanimation.mp4 URI : file:///android_asset/html/standrewsanimation.mp4
W/System.err( 3982): java.io.FileNotFoundException: File is not present
W/System.err( 3982): at android.drm.mobile2.OMADRMManager.IsDrmFileByExt(OMADRMManager.java:1032)
W/System.err( 3982): at com.cooliris.media.VideoDRMUtil.checkIsOMADrm(VideoDRMUtil.java:169)
W/System.err( 3982): at com.cooliris.media.MovieViewControl.checkDRMContent(MovieViewControl.java:236)
W/System.err( 3982): at com.cooliris.media.MovieViewControl.<init>(MovieViewControl.java:168)
W/System.err( 3982): at com.cooliris.media.MovieView$1.<init>(MovieView.java:68)
W/System.err( 3982): at com.cooliris.media.MovieView.onCreate(MovieView.java:68)
W/System.err( 3982): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
W/System.err( 3982): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
W/System.err( 3982): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
W/System.err( 3982): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
W/System.err( 3982): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
W/System.err( 3982): at android.os.Handler.dispatchMessage(Handler.java:99)
W/System.err( 3982): at android.os.Looper.loop(Looper.java:123)
W/System.err( 3982): at android.app.ActivityThread.main(ActivityThread.java:3687)
W/System.err( 3982): at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err( 3982): at java.lang.reflect.Method.invoke(Method.java:507)
W/System.err( 3982): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
W/System.err( 3982): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
W/System.err( 3982): at dalvik.system.NativeStart.main(Native Method)
I/VideoView( 3982): start()
D/MovieView( 3982): onStart
D/MovieView( 3982): onResume
D/MovieViewControl( 3982): onResume()
D/VideoView( 3982): onMeasure()
I/VideoView( 3982): Setting size: 480x320
D/VideoView( 3982): onMeasure()
I/VideoView( 3982): Setting size: 480x320
V/AudioPolicyManager( 95): stopOutput() output 1, stream 1, session 301
V/AudioPolicyManager( 95): getNewDevice() selected device 0
V/AudioPolicyManager( 95): getNewDevice() selected device 0
V/AudioPolicyManager( 95): setOutputDevice() output 1 device 0 delayMs 150
V/AudioPolicyManager( 95): setOutputDevice() setting same device 0 or null device for output 1
I/ActivityManager( 168): Displayed com.cooliris.media/.MovieView: +287ms
V/PVPlayer( 95): PVPlayer constructor
V/PVPlayer( 95): construct PlayerDriver
V/PlayerDriver( 95): constructor
V/PlayerDriver( 95): OpenCore hardware module loaded
V/PlayerDriver( 95): start player thread
V/PlayerDriver( 95): startPlayerThread
V/PlayerDriver( 95): InitializeForThread
V/PlayerDriver( 95): OMX_MasterInit
V/PlayerDriver( 95): OsclScheduler::Init
V/PlayerDriver( 95): CreatePlayer
V/PlayerDriver( 95): AddToScheduler
V/PlayerDriver( 95): PendForExec
V/PlayerDriver( 95): OsclActiveScheduler::Current
V/PlayerDriver( 95): StartScheduler
V/PVPlayer( 95): send PLAYER_SETUP
V/PlayerDriver( 95): Send player code: 2
V/PlayerDriver( 95): CommandCompleted
V/PlayerDriver( 95): Completed command PLAYER_SETUP status=PVMFSuccess
V/PVPlayer( 95): setDataSource(/android_asset/html/standrewsanimation.mp4)
V/PVPlayer( 95): setVideoSurface(0x5dbb8)
V/PVPlayer( 95): setVideoSurface(0x5f1d0)
V/PVPlayer( 95): prepareAsync
V/PVPlayer( 95): data source = /android_asset/html/standrewsanimation.mp4
V/PlayerDriver( 95): Send player code: 3
V/PlayerDriver( 95): handleSetDataSource
V/PlayerDriver( 95): handleSetDataSource- scanning for extension
V/PlayerDriver( 95): HandleInformationalEvent: PVMFInfoErrorHandlingStart
V/PlayerDriver( 95): HandleInformationalEvent: type=26 UNHANDLED
W/MediaPlayer( 3982): info/warning (1, 26)
V/PlayerDriver( 95): CommandCompleted
V/PlayerDriver( 95): Completed command PLAYER_SET_DATA_SOURCE status=PVMFErrNotSupported
E/PlayerDriver( 95): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
E/MediaPlayer( 3982): error (1, -4)
V/PVPlayer( 95): run_init s=-2147483648, cancelled=0
V/PlayerDriver( 95): HandleInformationalEvent: PVMFInfoErrorHandlingComplete
W/PlayerDriver( 95): PVMFInfoErrorHandlingComplete
I/PowerManagerService( 168): Ulight 3->3|12
I/MediaPlayer( 3982): Info (1,26)
E/MediaPlayer( 3982): Error (1,-4)
D/VideoView( 3982): Error: 1,-4
D/VideoView( 3982): onMeasure()
I/VideoView( 3982): Setting size: 480x320
D/VideoView( 3982): onMeasure()
I/VideoView( 3982): Setting size: 480x320
I've also tried the above approach in shouldOverrideUrlLoading which has the same result.
Thanks

I was stuck in a similar problem. Finalyl I got the thing working by using "video" HTML5 tag
There is something in android OS that prevent opening the video from
assets. I had to copy the html and video to SDCard. You can then use the sdcard path instead of assets path.
Dont forget to use android:hardwareAcceletrated = "true" for your webview activity

Related

PJSIP codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]

I have developed a softphone app to allow my user to communicate with the door station (with video integrated), everything is fine if i dial from my app to the door station, i have audio, i have video.
But when i dial from door station to my app, i am receiving this problem and no video show on the app, i am getting following error message, but i don't really understand what this error message stands for
Error Message:
vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
Does anyone know what is this error for?
I have put all my SDP Trace at the bottom.(Due to character limitation, i had cut down some of the negotiation step)
SDP and Android Stack Trace(Without IP and Project name):
INVITE sip:1101#<app-ip-address>:6000;ob SIP/2.0
Via: SIP/2.0/UDP <server-ip-address>:5060;rport;branch=z9hG4bKPj31873378-f709-43db-b590-b10ebcf5f9a1
From: "Sunway Vivaldi" <sip:9998#<server-ip-address>>;tag=fb189e53-15f4-4e4d-9193-609f347997dc
To: <sip:1101#<app-ip-address>:5060;ob>
Contact: <sip:asterisk#<server-ip-address>:5060>
Call-ID: 6a4297b1-5600-4206-bcb6-c55c3614c3e5
CSeq: 27304 INVITE
Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REGISTER, MESSAGE, REFER
Supported: 100rel, timer, replaces, norefersub
Session-Expires: 1800
Min-SE: 90
P-Asserted-Identity: "Sunway Vivaldi" <sip:9998#<server-ip-address>>
Max-Forwards: 70
User-Agent: FPBX-13.0.190.17(13.14.0)
Content-Type: application/sdp
Content-Length: 325
v=0
o=- 1445287161 1445287161 IN IP4 <server-ip-address>
s=Asterisk
c=IN IP4 <server-ip-address>
t=0 0
m=audio 12626 RTP/AVP 0 8 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=maxptime:150
a=sendrecv
m=video 15022 RTP/AVP 99
a=rtpmap:99 H264/90000
a=sendrecv
--end msg--
09-07 16:49:07.207 SVC-BIND_SERVICE handled : 0 /
09-07 16:49:10.610 26929-26986/ : 16:49:10.610 pjsua_call.c !Answering call 0: code=200
09-07 16:49:10.610 26929-26986/ : 16:49:10.610 pjsua_media.c .Call 0: deinitializing media..
09-07 16:49:10.610 26929-26986/ : 16:49:10.610 pjsua_media.c ..Call 0: cleaning up provisional media, prov_med_cnt=2, med_cnt=0
09-07 16:49:10.610 26929-26986/ : 16:49:10.610 icetp00 ..Stopping ICE, reason=media stop requested
09-07 16:49:10.611 26929-26986/ : 16:49:10.611 pjsua_media.c .Call 0: initializing media..
09-07 16:49:10.611 26929-26986/ : 16:49:10.611 icetp00 ..Creating ICE stream transport with 2 component(s)
09-07 16:49:10.652 26929-26986/ : 16:49:10.652 icetp00 ...Comp 1/0: host candidate <app-ip-address>:35513 (tpid=64) added
09-07 16:49:10.691 26929-26986/ : 16:49:10.691 icetp00 ...Comp 2/0: host candidate <app-ip-address>:54370 (tpid=64) added
09-07 16:49:10.691 26929-26986/ : 16:49:10.691 icetp00 ...ICE stream transport 0xab3aa4d4 created
09-07 16:49:10.793 26929-26986/ : 16:49:10.793 icetp01 ..Creating ICE stream transport with 2 component(s)
09-07 16:49:10.832 26929-26986/ : 16:49:10.831 icetp01 ...Comp 1/0: host candidate <app-ip-address>:46015 (tpid=64) added
09-07 16:49:10.871 26929-26986/ : 16:49:10.871 icetp01 ...Comp 2/0: host candidate <app-ip-address>:45768 (tpid=64) added
09-07 16:49:10.871 26929-26986/ : 16:49:10.871 icetp01 ...ICE stream transport 0xab380ff4 created
09-07 16:49:10.934 26929-26986/ : 16:49:10.934 pjsua_media.c ..Media index 0 selected for audio call 0
09-07 16:49:10.934 26929-26986/ : 16:49:10.934 icetp00 ..ICE session created, comp_cnt=2, role is Controlling agent
09-07 16:49:10.934 26929-26986/ : 16:49:10.934 icetp00 ..ICE nomination type set to aggressive
09-07 16:49:10.934 26929-26986/ : 16:49:10.934 icetp00 ..Candidate 0 added: comp_id=1, type=host, foundation=Hc0a80177, addr=<app-ip-address>:35513, base=<app-ip-address>:35513, prio=0x7effffff (2130706431)
09-07 16:49:10.934 26929-26986/ : 16:49:10.934 icetp00 ..Candidate 1 added: comp_id=2, type=host, foundation=Hc0a80177, addr=<app-ip-address>:54370, base=<app-ip-address>:54370, prio=0x7efffffe (2130706430)
09-07 16:49:10.934 26929-26986/ : 16:49:10.934 icetp01 ..ICE session created, comp_cnt=2, role is Controlling agent
09-07 16:49:10.934 26929-26986/ : 16:49:10.934 icetp01 ..ICE nomination type set to aggressive
09-07 16:49:10.935 26929-26986/ : 16:49:10.934 icetp01 ..Candidate 0 added: comp_id=1, type=host, foundation=Hc0a80177, addr=<app-ip-address>:46015, base=<app-ip-address>:46015, prio=0x7effffff (2130706431)
09-07 16:49:10.935 26929-26986/ : 16:49:10.935 icetp01 ..Candidate 1 added: comp_id=2, type=host, foundation=Hc0a80177, addr=<app-ip-address>:45768, base=<app-ip-address>:45768, prio=0x7efffffe (2130706430)
09-07 16:49:10.935 26929-26986/ : 16:49:10.935 pjsua_media.c ...Call 0: updating media..
09-07 16:49:10.935 26929-26986/ : 16:49:10.935 icetp00 ....Stopping ICE, reason=Remote answer doesn't support ICE
09-07 16:49:10.935 26929-26986/ : 16:49:10.935 icetp00 ....Destroying ICE session 0xab2ea6f4
09-07 16:49:10.935 26929-26986/ : 16:49:10.935 pjsua_aud.c ....Audio channel update..
09-07 16:49:10.935 26929-26986/ : 16:49:10.935 strm0xab46bb34 .....VAD temporarily disabled
09-07 16:49:10.936 26929-26986/ : 16:49:10.936 strm0xab46bb34 .....Encoder stream started
09-07 16:49:10.936 26929-26986/ : 16:49:10.936 strm0xab46bb34 .....Decoder stream started
09-07 16:49:10.936 26929-26986/ : 16:49:10.936 pjsua_media.c ....Audio updated, stream #0: PCMU (sendrecv)
09-07 16:49:10.936 26929-26986/ : 16:49:10.936 icetp01 ....Stopping ICE, reason=Remote answer doesn't support ICE
09-07 16:49:10.936 26929-26986/ : 16:49:10.936 icetp01 ....Destroying ICE session 0xab3c8e04
09-07 16:49:10.936 26929-26986/ : 16:49:10.936 pjsua_vid.c ....Video channel update..
09-07 16:49:10.945 26929-26986/ : 16:49:10.945 vstenc0xab4699 .....Encoder stream started
09-07 16:49:10.945 26929-26986/ : 16:49:10.945 vstdec0xab4699 .....Decoder stream started
09-07 16:49:10.945 26929-26986/ : 16:49:10.945 pjsua_vid.c .....Setting up RX..
09-07 16:49:10.945 26929-26986/ : 16:49:10.945 pjsua_vid.c ......Creating video window: type=stream, cap_id=-1, rend_id=0
09-07 16:49:10.946 26929-26986/ : 16:49:10.945 vid_port.c .......Opening device OpenGL renderer [OpenGL] for render: format=I420, size=352x288 #22:1 fps
09-07 16:49:10.946 26929-26986/ : 16:49:10.946 android_opengl .......Re-initializing OpenGL due to format change
09-07 16:49:10.946 26929-26986/ : 16:49:10.946 android_opengl .......Android OpenGL ES renderer successfully created
09-07 16:49:10.946 26929-26986/ : 16:49:10.946 vid_port.c .......Device OpenGL renderer [OpenGL] opened: format=I420, size=352x288 #22:1 fps
09-07 16:49:10.946 26929-26986/ : 16:49:10.946 pjsua_vid.c .......stream window id 0 created for cap_dev=-1 rend_dev=0
09-07 16:49:10.946 26929-26986/ : 16:49:10.946 pjsua_vid.c .......Window 0 created
09-07 16:49:10.946 26929-26986/ : 16:49:10.946 android_opengl ......Starting Android opengl stream
09-07 16:49:10.947 26929-26986/ : 16:49:10.946 pjsua_vid.c .....Setting up TX..
09-07 16:49:10.947 26929-26986/ : 16:49:10.947 pjsua_vid.c ......Creating video window: type=preview, cap_id=1, rend_id=0
09-07 16:49:10.947 26929-26986/ : 16:49:10.947 vid_port.c .......Opening device Front camera [Android] for capture: format=I420, size=176x144 #15:1 fps
09-07 16:49:10.949 26929-26986/ : 16:49:10.949 vid_port.c .......Device Front camera [Android] opened: format=I420, size=176x144 #15:1 fps
09-07 16:49:10.950 26929-26986/ : 16:49:10.950 vid_port.c .......Opening device OpenGL renderer [OpenGL] for render: format=I420, size=176x144 #15:1 fps
09-07 16:49:10.950 26929-26986/ : 16:49:10.950 android_opengl .......Re-initializing OpenGL due to format change
09-07 16:49:10.950 26929-26986/ : 16:49:10.950 android_opengl .......Android OpenGL ES renderer successfully created
09-07 16:49:10.950 26929-26986/ : 16:49:10.950 vid_port.c .......Device OpenGL renderer [OpenGL] opened: format=I420, size=176x144 #15:1 fps
09-07 16:49:10.950 26929-26986/ : 16:49:10.950 pjsua_vid.c .......preview window id 1 created for cap_dev=1 rend_dev=0
09-07 16:49:10.950 26929-26986/ : 16:49:10.950 pjsua_vid.c .......Window 1 created
09-07 16:49:10.950 26929-26986/ : 16:49:10.950 android_dev.c ......Starting Android camera stream
09-07 16:49:11.477 26929-26986/ : 16:49:11.477 pjsua_media.c ....Video updated, stream #1: H264 (sendrecv)
09-07 16:49:11.485 26929-26986/ : 16:49:11.484 pjsua_aud.c ...Conf connect: 0 --> 1
09-07 16:49:11.485 26929-26986/ : 16:49:11.485 pjsua_aud.c ....Set sound device: capture=-1, playback=-2
09-07 16:49:11.485 26929-26986/ : 16:49:11.485 pjsua_aud.c .....Opening sound device (speaker + mic) PCM#16000/1/20ms
09-07 16:49:11.485 26929-26986/ : 16:49:11.485 opensl_dev.c ......Creating OpenSL stream
09-07 16:49:11.497 26929-26986/ : 16:49:11.497 echo_webrtc.c ......WebRTC AEC successfully created with options 3
09-07 16:49:11.497 26929-26986/ : 16:49:11.497 ec0xab523e30 ......WebRTC AEC created, clock_rate=16000, channel=1, samples per frame=320, tail length=30 ms, latency=100 ms
09-07 16:49:11.497 26929-26986/ : 16:49:11.497 opensl_dev.c ......Starting OpenSL stream..
09-07 16:49:11.505 26929-26986/ : 16:49:11.505 opensl_dev.c ......OpenSL stream started
09-07 16:49:11.505 26929-26986/ : 16:49:11.505 conference.c ....Port 0 (OpenSL ES Audio) transmitting to port 1 (sip:9998#<server-ip-address>)
09-07 16:49:11.506 26929-26986/ : 16:49:11.506 pjsua_aud.c !...Conf connect: 1 --> 0
09-07 16:49:11.506 26929-27272/ : 16:49:11.505 Master/sound !Underflow, buf_cnt=0, will generate 1 frame
09-07 16:49:11.509 26929-27272/ : 16:49:11.508 Master/sound !Underflow, buf_cnt=0, will generate 1 frame
09-07 16:49:11.510 26929-26986/ : 16:49:11.509 conference.c !....Port 1 (sip:9998#<server-ip-address>) transmitting to port 0 (OpenSL ES Audio)
09-07 16:49:11.511 26929-27272/ : 16:49:11.510 Master/sound !Underflow, buf_cnt=0, will generate 1 frame
09-07 16:49:11.512 26929-27272/ : 16:49:11.512 Master/sound Underflow, buf_cnt=0, will generate 1 frame
09-07 16:49:11.515 26929-26986/ : 16:49:11.515 pjsua_core.c !....TX 1151 bytes Response msg 200/INVITE/cseq=27304 (tdta0xab1c25d0) to UDP <server-ip-address>:5060:
SIP/2.0 200 OK
Via: SIP/2.0/UDP <server-ip-address>:5060;rport=5060;received=<server-ip-address>;branch=z9hG4bKPj31873378-f709-43db-b590-b10ebcf5f9a1
Call-ID: 6a4297b1-5600-4206-bcb6-c55c3614c3e5
From: "Sunway Vivaldi" <sip:9998#<server-ip-address>>;tag=fb189e53-15f4-4e4d-9193-609f347997dc
To: <sip:1101#<app-ip-address>;ob>;tag=768822bd-fbc8-4303-b73f-217332a87620
CSeq: 27304 INVITE
Contact: <sip:1101#<app-ip-address>:6000;ob>;+sip.ice
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Supported: replaces, 100rel, timer, norefersub
Session-Expires: 1800;refresher=uac
Require: timer
Content-Type: application/sdp
Content-Length: 473
v=0
o=- 3713762946 3713762947 IN IP4 <app-ip-address>
s=pjmedia
b=AS:352
t=0 0
a=X-nat:0
m=audio 41965 RTP/AVP 0 101
c=IN IP4 <app-ip-address>
b=TIAS:64000
a=rtcp:56984 IN IP4 <app-ip-address>
a=sendrecv
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
m=video 49049 RTP/AVP 99
c=IN IP4 <app-ip-address>
b=TIAS:256000
a=rtcp:43723 IN IP4 <app-ip-address>
a=sendrecv
a=rtpmap:99 H264/90000
a=fmtp:99 profile-level-id=42000a; packetization-mode=0
--end msg--
09-07 16:49:11.521 26929-26986/ : 16:49:11.521 vid_util.c Orientation converter created: 176x144 to 144x120, maintain aspect ratio=yes
09-07 16:49:11.521 26929-26986/ : 16:49:11.521 android_dev.c Video capture orientation set to 4
09-07 16:49:11.589 26929-26986/ : 16:49:11.589 android_opengl !Re-initializing OpenGL with native window 0xab382df8: success
09-07 16:49:11.596 26929-26986/ : 16:49:11.595 os_core_unix.c Info: possibly re-registering existing thread
09-07 16:49:11.631 26929-26986/ : 16:49:11.630 android_opengl !Re-initializing OpenGL with native window 0xab56aaa8: success
09-07 16:49:11.710 26929-27272/ : 16:49:11.709 ec0xab523e30 Buffer size adjusted from 2240 to 1761 (eff_cnt=1440)
09-07 16:49:11.741 26929-27272/ : 16:49:11.740 ec0xab523e30 Buffer size adjusted from 2401 to 1922 (eff_cnt=1440)
09-07 16:49:11.768 26929-27272/ : 16:49:11.767 ec0xab523e30 Buffer size adjusted from 1922 to 1443 (eff_cnt=1440)
09-07 16:49:12.060 26929-27272/ : 16:49:12.059 strm0xab46bb34 !VAD re-enabled
09-07 16:49:12.219 26929-26994/ : 16:49:12.218 pjsua_media.c !Sending video keyframe request via SIP INFO
09-07 16:49:12.221 26929-26994/ : 16:49:12.220 pjsua_call.c Call 0 sending INFO request..
09-07 16:49:12.338 26929-27272/ : 16:49:12.338 ec0xab523e30 !Buffer size adjusted from 1763 to 1284 (eff_cnt=1440)
09-07 16:49:12.365 26929-27272/ : 16:49:12.363 Master/sound Underflow, buf_cnt=0, will generate 1 frame
09-07 16:49:12.465 : 16:49:12.465 vstdec0xab4699 !codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:12.485 26929-27273/ : 16:49:12.484 ec0xab523e30 !Underflow, buf_cnt=4, will generate 1 frame
09-07 16:49:12.500 26929-27273/ : 16:49:12.499 ec0xab523e30 !Underflow, buf_cnt=4, will generate 1 frame
09-07 16:49:13.597 26929-27234/ : 16:49:13.596 vstdec0xab4699 !codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.164 : 16:49:14.163 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.196 : 16:49:14.194 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.226 : 16:49:14.225 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.252 : 16:49:14.252 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.313 : 16:49:14.312 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.347 : 16:49:14.346 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.372 : 16:49:14.372 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.435 : 16:49:14.434 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.480 : 16:49:14.479 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.529 : 16:49:14.528 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.559 : 16:49:14.558 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.592 : 16:49:14.591 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.621 : 16:49:14.619 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.676 : 16:49:14.674 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.708 : 16:49:14.707 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.736 26929-27272/ : 16:49:14.734 Master/sound !Underflow, buf_cnt=202, will generate 1 frame
09-07 16:49:14.757 : 16:49:14.756 vstdec0xab4699 !codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.808 : 16:49:14.807 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.833 : 16:49:14.832 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:14.857 26929-27272/ : 16:49:14.853 Master/sound !Underflow, buf_cnt=202, will generate 1 frame
09-07 16:49:16.332 26929-26986/ : 16:49:16.328 pjsua_call.c !Call 0 hanging up: code=603..
09-07 16:49:16.333 26929-26986/ : 16:49:16.333 pjsua_core.c ....TX 441 bytes Request msg BYE/cseq=26007 (tdta0xab582018) to UDP <server-ip-address>:5060:
BYE sip:asterisk#<server-ip-address>:5060 SIP/2.0
Via: SIP/2.0/UDP <app-ip-address>:6000;rport;branch=z9hG4bKPj08ea8b8b-51c0-4193-a5e9-0f83e57794d6
Max-Forwards: 70
From: <sip:1101#<app-ip-address>;ob>;tag=768822bd-fbc8-4303-b73f-217332a87620
To: "Sunway Vivaldi" <sip:9998#<server-ip-address>>;tag=fb189e53-15f4-4e4d-9193-609f347997dc
Call-ID: 6a4297b1-5600-4206-bcb6-c55c3614c3e5
CSeq: 26007 BYE
User-Agent: Pjsua2 Android 2.6
Content-Length: 0
--end msg--
09-07 16:49:16.509 : 16:49:16.508 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:16.534 : 16:49:16.533 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:16.591 : 16:49:16.590 vstdec0xab4699 codec decode() error: Codec frame is too short (PJMEDIA_CODEC_EFRMTOOSHORT) [err:220082]
09-07 16:49:16.601 : 16:49:16.601 pjsua_core.c .RX 430 bytes Response msg 200/BYE/cseq=26007 (rdata0xab3410bc) from UDP <server-ip-address>:5060:
SIP/2.0 200 OK
Via: SIP/2.0/UDP <app-ip-address>:6000;rport=6000;received=<app-ip-address>;branch=z9hG4bKPj08ea8b8b-51c0-4193-a5e9-0f83e57794d6
Call-ID: 6a4297b1-5600-4206-bcb6-c55c3614c3e5
From: <sip:1101#<app-ip-address>:5060;ob>;tag=768822bd-fbc8-4303-b73f-217332a87620
To: "Sunway Vivaldi" <sip:9998#<server-ip-address>>;tag=fb189e53-15f4-4e4d-9193-609f347997dc
CSeq: 26007 BYE
Server: FPBX-13.0.190.17(13.14.0)
Content-Length: 0
--end msg--
09-07 16:49:16.604 : 16:49:16.603 pjsua_media.c .....Call 0: deinitializing media..
09-07 16:49:16.604 : 16:49:16.604 pjsua_media.c .......Media stream call00:0 is destroyed
09-07 16:49:16.605 : 16:49:16.604 pjsua_vid.c .......Stopping video stream..
09-07 16:49:16.611 : 16:49:16.611 android_dev.c ........Stopping Android camera stream
09-07 16:49:16.980 SVC-UNBIND_SERVICE handled : 0 / BindServiceData{token=android.os.BinderProxy#17924814 intent=Intent { cmp=/.intercom.IntercomSipService }}
09-07 16:49:16.834 : 16:49:16.834 pjsua_vid.c ........Window 1: destroying..
09-07 16:49:16.835 : 16:49:16.834 android_dev.c .........Stopping Android camera stream
09-07 16:49:16.836 : 16:49:16.835 vid_port.c .........Closing Front camera..
09-07 16:49:16.836 : 16:49:16.836 android_dev.c .........Android camera stream destroyed
09-07 16:49:16.837 : 16:49:16.836 android_opengl .........Stopping Android opengl stream
09-07 16:49:16.837 : 16:49:16.837 vid_port.c .........Closing OpenGL renderer..
09-07 16:49:16.838 : 16:49:16.837 android_opengl .........Stopping Android opengl stream
09-07 16:49:16.856 : 16:49:16.855 android_opengl ........Stopping Android opengl stream
09-07 16:49:16.856 : 16:49:16.856 pjsua_vid.c ........Window 0: destroying..
09-07 16:49:16.857 : 16:49:16.856 android_opengl .........Stopping Android opengl stream
09-07 16:49:16.857 : 16:49:16.857 vid_port.c .........Closing OpenGL renderer..
09-07 16:49:16.857 : 16:49:16.857 android_opengl .........Stopping Android opengl stream
09-07 16:49:16.873 : 16:49:16.872 pjsua_media.c .......Media stream call00:1 is destroyed
09-07 16:49:16.874 : 16:49:16.873 icetp00 ......Stopping ICE, reason=media stop requested
09-07 16:49:16.874 : 16:49:16.874 icetp00 .......ICE stream transport 0xab3aa4d4 destroyed
09-07 16:49:16.875 : 16:49:16.874 ice_session.c .......ICE session 0xab2ea6f4 destroyed
09-07 16:49:16.876 : 16:49:16.875 icetp01 ......Stopping ICE, reason=media stop requested
09-07 16:49:16.876 : 16:49:16.876 icetp01 .......ICE stream transport 0xab380ff4 destroyed
09-07 16:49:16.877 : 16:49:16.876 ice_session.c .......ICE session 0xab3c8e04 destroyed
Probably this response is too late. I've suffered same problem recently the way I solved the problem is increase buffer size.
If you read the document from here https://trac.pjsip.org/repos/wiki/Video_Users_Guide#modvcodec you can see what parameters you need to setup for encoding/decoding.
Here is my example for Android.
String codecId = "H264";
VidCodecParam param = new VidCodecParam()
// Sending 1280 x 720.
param.getEncFmt().setWidth(1280);
param.getEncFmt().setHeight(720);
// Sending #30fps.
param.getEncFmt().setFpsNum(30);
param.getEncFmt().setFpsDenum(1);
// Bitrate range preferred: 512-2048kbps.
param.getEncFmt().setAvgBps(512000);
param.getEncFmt().setMaxBps(2048000);
// Buffer size for decode frame
param.getDecFmt().setWidth(2048);
param.getDecFmt().setHeight(1080);
App.getInstance().getEndpoint().setVideoCodecParam(codecId, param);

Media Codec : Insufficient sized buffer

When i play video with resolution 704x576 (using MediaCodec) . I'm seeing this error and app is crashing
Logs:
12-04 04:35:55.507 E/OMX-VDEC-1080P( 9621): Insufficient sized buffer given for playback, expected 2514944, got 2506752
12-04 04:35:55.507 E/OMXNodeInstance( 9621): OMX_UseBuffer failed with error -2147479547 (0x80001005)
12-04 04:35:55.507 E/ACodec (22699): registering GraphicBuffer 0 with OMX IL component failed: -2147483648
12-04 04:35:55.507 E/ACodec (22699): Failed to allocate output port buffers after port reconfiguration (error 0x80000000)
12-04 04:35:55.507 E/MediaCodec(22699): Codec reported an error. (omx error 0x80001001, internalError -2147483648)

native_window_set_buffers_geometry failed

I am trying to develop a surveillance application in OMAP 4460(Blaze Tablet-in ICS) acting as client device rendering the surveillance feed from a remote source. To begin with, surveillance feed is streamed remotely from the camera and port forwarded as RTP packets which are received and rendered in OMAP 4460 through a customized RTP stack. While rendering, I am getting the following error from the decoder, saying that "Surface Texture has been abandoned and native_window _set_buffers_geometry failed", more frequently.
Following is the log captured:
E/AwesomePlayer( 131): AwesomePlayer::onPrepareAsyncEvent-------- err = 0
E/AwesomePlayer( 131): AwesomePlayer::onPrepareAsyncEvent-------- OK = -430191887
I/OMXCodec( 131): [OMX.TI.DUCATI1.VIDEO.DECODER] AVC profile = 66 (Baseline), level = 31
E/OMXCodec( 131): set buffer size variable to : 307200
I/OMXCodec( 131): [OMX.TI.DUCATI1.VIDEO.DECODER] video dimensions are 640 x 480
I/OMXCodec( 131): [OMX.TI.DUCATI1.VIDEO.DECODER] Crop rect is 640 x 480 # (0, 0)
E/SurfaceTexture( 128): [SurfaceView] setCrop: SurfaceTexture has been abandoned!
E/SurfaceTextureClient( 131): ISurfaceTexture::setCrop(...) returned No such device
E/SurfaceTexture( 128): [SurfaceView] setLayout: SurfaceTexture has been abandoned!
E/SurfaceTexture( 128): [SurfaceView] setCrop: SurfaceTexture has been abandoned!
E/SurfaceTextureClient( 131): ISurfaceTexture::setCrop(...) returned No such device
E/OMXCodec( 131): native_window_set_buffers_geometry failed: No such device (19)
E/ion ( 131): ioctl -1073460991 failed with code -1: Bad file number
E/ion ( 131): ioctl -1073460991 failed with code -1: Bad file number
D/DOMX ( 131): hardware/ti/domx/domx/omx_proxy_common/src/omx_proxy_common.c:2208 PROXY_ComponentDeInit()
D/DOMX ( 131): ERROR: failed check:(eError == OMX_ErrorNone) || (eError == OMX_ErrorNoMore) - returning error: 0x80001011 - Error returned from OMX API in ducati
D/DOMX ( 131): hardware/ti/domx/omx_core/src/OMX_Core.c:396 OMX_FreeHandle()
D/DOMX ( 131): ERROR: Error From ComponentDeInit..
D/StackInterface( 131): AwesomePlayer::reset_l called ++
SDP of the camera:
v=0
o=StreamingServer 3331435948 1116907222000 IN IP4 192.168.1.102
s=h264.mp4
c=IN IP4 239.0.0.00;/1
t=0 0
a=control:*
m=video 0 RTP/AVP 96
a=control:trackID=0
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z0KAH9oCgPSbgIEAmBAAfQAAEZQve+Eg,aM48gA==
m=application 0 RTP/AVP 107
a=control:trackID=2
a=rtpmap:107 vnd.onvif.metadata/90000
I have been trying to fix this issue for sometime now, and could not able to find out the problem yet.
Kindly, reveal how to proceed further on the issue.
Regards,
Manoj
My English is not good.
Check SurfaceTexture pointer.
If you define sp<.....> in function, sp<.....> is abandoned with end of function.

Debug SmsManager within Android SDK emulator

I'm testing a 3rd party application within the Android SDK emulator, which is designed to send out an SMS text message for registration. I don't have the source code for this application but is it possible to use a debugger with the emulator to intercept the call to SmsManager and determine what information is being sent and to what destination?
Thanks!
Since you have the source code, all you can do is watch adb logcat output. Also you can use "adb logcat -b radio" to watch any modem commands. for example, you will see the following if you are trying to send a sms. It depends on what you want to debug.
D/AT ( 29): AT> AT+CSQ
D/AT ( 29): AT< +CSQ: 7,99
D/AT ( 29): AT< OK
D/RILJ ( 95): [0058]< SIGNAL_STRENGTH {7, 99, 0, 0, 0, 0, 0}
D/RILJ ( 95): WAKE_LOCK_TIMEOUT mReqPending=0 mRequestList=1
D/RILJ ( 95): 0: [19] SET_NETWORK_SELECTION_AUTOMATIC
D/SMS ( 95): SMS send size=0time=1353001019635
D/RILJ ( 95): [0059]> SEND_SMS
D/RIL ( 29): onRequest: SEND_SMS
D/AT ( 29): AT> AT+CMGS=13
D/AT ( 29): AT< >
D/AT ( 29): AT> 00010004815545000004e432990c^Z
D/AT ( 29): AT< +CMGS: 0
D/AT ( 29): AT< OK
D/RILJ ( 95): [0059]< SEND_SMS { messageRef = 0, errorCode = 0, ackPdu = null}
D/SMS ( 95): SMS send complete. Broadcasting intent: PendingIntent{44c8c118: android.os.BinderProxy#44c8c0e0}

Can't play mp4 video in my Android app

I very want to play mp4 video in my android app. I even wrote a bit of code for it:
String sourceUrl = "http://tvstream.cn.ru/storage/1kanal/20120530/"
+ "1kanal-20120530-01-14-00-20120530-03-16-00.mp4";
final VideoView videoView = (VideoView) findViewById(R.id.videoView);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
final MediaController mediaController = new MediaController(this);
mediaController.setMediaPlayer(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(Uri.parse(sourceUrl));
videoView.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
videoView.requestFocus();
videoView.start();
mediaController.show();
}
});
But nothing works :( When I launch my app in emulator (Android 2.3.3) I've got weird stacktrace with some common error codes:
After few hours off googling and experiments I decided to try to launch my app on real device and watch logcat:
D/test.tv.activity.PlayerActivity( 3428): Player source: http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 320x430
I/Launcher( 260): onWindowFocusChanged(false)
D/Launcher( 260): setWallpaperDimension() called
D/Launcher( 260): USE_NON_SCROLLABLE_IMAGE_WALLPAPER is true
I/ActivityManager( 163): Start proc org.reactivephone for broadcast org.reactivephone/ru.yandex.common.clid.ClidBroadcastReceiver: pid=3448 uid=10073 gids={1015, 3003}
I/ActivityManager( 163): No longer want com.sec.android.provider.badge (pid 2310): hidden #16
I/MediaPlayer( 3428): uri is:http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4
I/MediaPlayer( 3428): path is null
D/MediaPlayer( 3428): Couldn't open file on client side, trying server side
D/Launcher( 260): It's image wallpaper. suggestDesiredDimensions(-1,-1)
I/ActivityManager( 163): Displayed test.tv/.activity.PlayerActivity: +943ms
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 320x430
W/dalvikvm( 3406): threadid=5: spin on suspend #1 threadid=22 (pcf=0)
W/dalvikvm( 3406): threadid=5: spin on suspend resolved in 1154 msec
W/SearchableInfo( 163): Invalid searchable metadata for org.reactivephone/.ui.RegionForm: Search label must be a resource reference.
I/ActivityManager( 163): Start proc com.google.android.googlequicksearchbox for broadcast com.google.android.googlequicksearchbox/.SourceUpdateReceiver: pid=3457 uid=10027 gids={3003}
I/WindowOrientationListener( 163): orientation 295.6932 gives new rotation = 2
I/OrientationDebug( 163): [pwm] in MyOrientationListener.onOrientationChanged() rotation=3 mFancyRotationAnimation=0 now call mWindowManager.setRotation()
I/OrientationDebug( 163): [wms] in setRotation() rotation=3 alwaysSendConfiguration=false animFlags=0
I/OrientationDebug( 163): [wms] in setRotation() now call setRotationUnchecked()
I/WindowManager( 163): Setting rotation to 3, animFlags=0
I/ActivityManager( 163): Config changed: { scale=1.0 imsi=250/1 loc=ru_RU touch=3 keys=1/1/2 nav=1/1 orien=2 layout=18 uiMode=17 seq=7}
D/PhoneApp( 241): updateProximitySensorMode: lock already released.
I/ActivityThread( 3457): Pub com.google.android.googlequicksearchbox.shortcuts: com.google.android.googlequicksearchbox.WebHistoryProvider
I/ActivityThread( 3457): Pub com.google.android.googlequicksearchbox.google: com.google.android.googlequicksearchbox.google.GoogleSuggestionProvider
I/ActivityManager( 163): No longer want com.sec.android.widgetapp.clockweather.clockwidget (pid 1214): hidden #16
D/Finsky ( 3406): [1] 2.run: Loaded library for account: [Y091GklnFtI4Ab1gmLOw-nJkJXQ]
D/Finsky ( 3406): [1] 2.run: Finished loading 1 libraries.
W/dalvikvm( 3406): VFY: unable to resolve instance field 78
D/DfeApi ( 3406): [1] DfeApiContext.getSmallestScreenWidthDp: smallestScreenWidthDp does not exist, using pre-ics hack.
E/QCvdec ( 95): Setparameter: unknown param 2130706451
W/TimedEventQueue( 95): Event 3 was not found in the queue, already cancelled?
E/QCvdec ( 95): Omx Flush issued when vdec is not initialized yet.
W/QCvdec ( 95): ======================================================================
W/QCvdec ( 95): Open Max Statistics
W/QCvdec ( 95): ======================================================================
W/QCvdec ( 95): empty this buffer rate = NaN
W/QCvdec ( 95): empty this buffer total time = 0
W/QCvdec ( 95): empty this buffer count = 0
W/QCvdec ( 95): ======================================================================
D/test.tv.activity.PlayerActivity( 3428): Player source: http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 480x270
I/MediaPlayer( 3428): uri is:http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4
I/MediaPlayer( 3428): path is null
D/MediaPlayer( 3428): Couldn't open file on client side, trying server side
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 480x270
D/WifiService( 163): [mPersistState] : On
D/BatteryService( 163): update start
D/BatteryService( 163): update start
D/BatteryService( 163): update start
E/QCvdec ( 95): Setparameter: unknown param 2130706451
I/VideoView( 3428): start()
D/WifiService( 163): [mPersistState] : On
D/WifiService( 163): [mPersistState] : On
D/WifiWatchdogService( 163): (android.server.ServerThread) wntk (1c:af:f7:2e:7f:c8) does not require the watchdog
E/QCvdec ( 95): Unsupported profile, level, or widht, height
E/QCvdec ( 95): Unsupported clip
E/QCvdec ( 95): Unsupported profile, level, or widht, height
E/QCvdec ( 95): Unsupported clip
E/QCvdec ( 95): Omx Flush issued when vdec is not initialized yet.
E/QCvdec ( 95): Omx Flush issued when vdec is not initialized yet.
E/QCvdec ( 95): Empty this buffer in Invalid State
E/OMXCodec( 95): [OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)
E/OMXCodec( 95): [OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)
E/OMXCodec( 95): read : mState[9] is wrong...
E/MediaPlayer( 3428): error (1, -2147483648)
E/OMXCodec( 95): [OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)
E/QCvdec ( 95): Omx Flush issued when vdec is not initialized yet.
D/VideoView( 3428): onMeasure()
I/VideoView( 3428): Setting size: 335x270
I/VideoView( 3428): start()
E/MediaPlayer( 3428): start called in state 0
E/MediaPlayer( 3428): error (-38, 0)
E/MediaPlayer( 3428): Error (1,-2147483648)
D/VideoView( 3428): Error: 1,-2147483648
E/MediaPlayer( 3428): Error (-38,0)
D/VideoView( 3428): Error: -38,0
D/PowerManagerService( 163): reactivateScreenLocksLocked mProxIgnoredBecauseScreenTurnedOff=false
I/PowerManagerService( 163): Ulight 1->3|0
W/InputManagerService( 163): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy#40873ab8
I/PowerManagerService( 163): Light Animator Finished curIntValue=141
D/Finsky ( 3406): [1] 5.onFinished: Installation state replication succeeded.
D/BatteryService( 163): update start
D/BatteryService( 163): update start
D/BatteryService( 163): update start
I try to find something about "OMX.qcom.video.decoder.avc] ERROR(0x8000100a, 0)", but didn't find nothing interesting. About "Couldn't open file on client side, trying server side" problem stackoverflow has many answers, but no one helped.
When I launch this app on ICS (in emulator) I've got similar errors:
06-01 10:22:14.674: I/NuCachedSource2(37): ERROR_END_OF_STREAM
06-01 10:22:15.375: I/OMXCodec(37): [OMX.google.h264.decoder] AVC profile = 100 (High), level = 30
06-01 10:22:15.384: I/OMXCodec(37): [OMX.google.h264.decoder] video dimensions are 320 x 240
06-01 10:22:15.384: I/OMXCodec(37): [OMX.google.h264.decoder] Crop rect is 320 x 240 # (0, 0)
06-01 10:22:16.253: W/NetworkManagementSocketTagger(89): setKernelCountSet(10013, 0) failed with errno -2
06-01 10:22:16.374: I/Launcher(553): setLoadOnResume
06-01 10:22:16.584: D/MediaPlayer(602): getMetadata
06-01 10:22:16.614: I/NuCachedSource2(37): new range: offset= 0
06-01 10:22:16.694: I/ChromiumHTTPDataSource(37): connect to http://tvstream.cn.ru/storage/1kanal/20120530/1kanal-20120530-01-14-00-20120530-03-16-00.mp4 #0
06-01 10:22:16.834: E/SoftAVC(37): Decoder failed: -2
06-01 10:22:16.844: E/OMXCodec(37): [OMX.google.h264.decoder] ERROR(0x80001001, -1007)
06-01 10:22:16.884: D/AudioSink(37): bufferCount (4) is too small and increased to 12
As I know, Android supports playback of video decoded with h264 (http://developer.android.com/guide/appendix/media-formats.html). So, can anyone tell me what I do wrong.
Probably your file is using an unsupported profile, notice that official media formats page only lists Baseline Profile as supported for H.264 AVC.
Try transcoding the video specifying Baseline Profile as suggested in this stackoverflow question, i.e. if your container is MP4 run:
ffmpeg -i yourfile.mp4 -c:v libx264 -profile:v baseline -level 1 yourfile_BaselineProfile.mp4
If this works it's not a issue in your code, you just have to use supported formats.
Try this
File clip=new File(Environment.getExternalStorageDirectory(),
"test.mp4");
if (clip.exists()) {
video=(VideoView)findViewById(R.id.video);
video.setVideoPath(clip.getAbsolutePath());
ctlr=new MediaController(this);
ctlr.setMediaPlayer(video);
video.setMediaController(ctlr);
video.requestFocus();
video.start();
VideoView classes does not allow playing MP4 file format videos. Please go through this link for Android Media Formats. Try checking your video with Daroon Player

Categories

Resources