I have an application (decoding module) which fails to create mediacodec for decoding H264 encoded stream while running on the Nexus 6P. But it perfectly works under Google PIXEL XL phone.
I am also giving a small snap of the error I am getting while I debug it using android studio logcat. Any Help will be highly appreciated.
Error Snap
E/OMX-VDEC-1080P: Failed to call stream on OUTPUT due to HW_OVERLOAD
E/OMX-VDEC-1080P: empty_this_buffer_proxy failure due to HW overload
E/OMX-VDEC-1080P: ERROR: Sending OMX_ErrorInsufficientResources to Client
E/OMX-VDEC-1080P: Failed to qbuf to driver
E/ACodec: [OMX.qcom.video.decoder.avc] ERROR(0x80001000)
E/ACodec: signalError(omxError 0x80001000, internalError -2147483648)
Codec reported err 0x80001000, actionCode 0, while in state 6
E/NuPlayerDecoder: Decoder (video) reported error : 0x80001000
E/NuPlayer: received error(0x80001000) from video decoder, flushing(0), now shutting down
E/MediaPlayer: error (1, -2147479552)
E/MediaPlayer: Error (1,-2147479552)
D/EasyMovieTexture: OnError
E/NuPlayerDecoder: failed to flush OMX.qcom.video.decoder.avc (err=-38)
12-29 20:21:41.075 2737-10644/? E/NuPlayer: received error(0xffffffda) from video decoder, flushing(2), now shutting down
D/NuPlayerDriver: notifyListener_l(0xeed2aae0), (100, 1, -38), loop setting(0, 0)
E/MediaPlayer: Error (1,-38)
D/EasyMovieTexture: OnError
E/OMX-VDEC-1080P: Failed to call stream on OUTPUT
E/OMX-VDEC-1080P: empty_this_buffer_proxy failure
I guess error code -38 is coming because I want to start the mediaplayer in an incorrect state (Here as the codec is giving me an error, mediaplayer is in the ERROR state).
I tested on Google PIXEL XL and Nexus 6P and I am getting this problem for Nexus 6P.
Related
On Nexus 4, with Android 5.1.1 I have the following problem that drives me mad:
When trying to record the screen (on Kubuntu 15.04) with:
adb shell screenrecord --verbose /sdcard/Download/intro9.mp4
just few seconds (1-4) are recorded and then recording stops by itself.
In the logcat there is relevant output:
09-16 14:12:46.943 5733-5742/? I/OMXClient﹕ Using client-side OMX mux.
09-16 14:12:46.946 188-4537/? E/OMX-VENC-720p﹕ Is component secure 0
09-16 14:12:46.969 188-188/? E/OMX-VENC-720p﹕ set_parameter: metamode is valid for input port only
09-16 14:12:46.969 188-188/? E/OMXNodeInstance﹕ setParameter(50:qcom.encoder.avc, OMX.google.android.index.storeMetaDataInBuffers(0x7f00001c): Output:1 en=0 GB=0) ERROR: UnsupportedSetting(0x80001019)
09-16 14:12:46.969 5733-5742/? E/ACodec﹕ [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -1010
09-16 14:12:46.971 188-4537/? E/OMX-VENC-720p﹕ WARNING: Unsupported Color format [2130708361]
09-16 14:12:46.972 188-4537/? E/OMX-VENC-720p﹕ C2D init is successful
09-16 14:12:46.972 188-188/? E/OMX-VENC-720p﹕ WARNING: Unsupported Color format [2130708361]
09-16 14:12:46.973 188-5092/? E/OMX-VENC-720p﹕ venc_set_intra_period: nPFrames = 600 nBFrames = 0
09-16 14:12:46.982 188-5743/? E/OMX-VENC-720p﹕ Allocated virt:0xb3e4b000, FD: 41 of size 1474560 at index: 0
09-16 14:12:46.982 188-5743/? E/OMX-VENC-720p﹕ Allocated virt:0xb3ce3000, FD: 43 of size 1474560 at index: 1
09-16 14:12:47.011 188-5743/? E/OMX-VENC-720p﹕ open Color conv for RGBA888
After Ctrl-C:
09-16 14:13:21.482 188-716/? E/OMX-VENC-720p﹕ ion recon buffer free failed
09-16 14:13:21.482 188-716/? E/OMX-VENC-720p﹕ ion recon buffer free failed
09-16 14:13:21.521 188-5744/? E/OMX-VENC-720p﹕ ioctl VEN_IOCTL_CMD_READ_NEXT_MSG failed
09-16 14:13:21.521 188-5092/? E/OMX-VENC-720p﹕ Destroy C2D instance
The console outpus is:
Main display is 768x1280 #60.00fps (orientation=0)
Configuring recorder for 768x1280 video/avc at 4.00Mbps
Content area is 768x1280 at offset x=0 y=0
I've tried different solutions like lowering the bitrate, restarting the phone, using telecine, using different PC, turning off MTP but with no luck. In the past when faced the same problem even downgraded the Android to 4.4 but again no luck.
Did someone had this problem and how did you solved it?
P.S. The weird thing is that everything was working as expected initially: I was able to record about 2 minutes of screen recording with Telecine (few times). And then for no apparent reason it started to behave like this...
It turns out the reason is pretty simple: when Android Studio or Eclipse is running it obviously sends some adb messages periodically that interrupt the recording. The solution is stop the AS or eclipse and then to record.
I'm getting an odd error from MediaPlayer while playing a live stream. The code was working perfectly before I upgraded my Nexus 10 to 5.1 from 5.0.x.
I get the error: error (-2147483648, 0) in the onError handler and have to stop the video. If I put a breakpoint in the error handler, the video plays perfectly on the device, so I don't know why it throws the error nor what it means.
I've tried debugging the MediaPlayer sources, but for some reason the binary on the device does not match the sources I have for 5.1. Either way it seems the error is coming up from the Native code.
I am able to play other media sources with he same code, it seems only the media with no duration information causes the error.
Here is the only useful info I get out of the log:
03-21 23:02:22.365: W/MediaPlayer(26062): info/warning (801, 0)
03-21 23:02:22.401: D/MediaPlayer(26062): getMetadata
03-21 23:02:22.416: W/MediaPlayer(26062): Stream has no duration and is therefore not seekable.
03-21 23:02:22.416: E/MediaPlayer(26062): error (-2147483648, 0)
03-21 23:02:22.427: E/MediaPlayer(26062): Error (-2147483648,0)
03-21 23:02:22.443: D/VideoView(26062): Error: -2147483648,0
03-21 23:02:22.446: W/Tag(26062): Playback error in -2147483648 info: 0
03-21 23:02:22.492: W/MediaPlayer(26062): info/warning (3, 0)
Figured it out. I was calling seekTo() with a zero value on a stream with no duration (live stream). Why it worked before, the 5.1 upgrade, I don't know.
I am tryng to use this API: https://github.com/fyhertz/libstreaming
I created the application on a rtmp server and set the rtsp on the exemple3.
The rtmp server receives the connection, but show a black screen.
In the LOGCAT, i see this error:
06-18 15:58:30.519: I/ACodec(25256): [OMX.qcom.video.encoder.avc] Now Loaded
06-18 15:58:30.549: E/ACodec(25256): [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -2147483648
06-18 15:58:30.559: I/ACodec(25256): setupVideoEncoder succeeded
06-18 15:58:30.559: I/ACodec(25256): [OMX.qcom.video.encoder.avc] Now Loaded->Idle
06-18 15:58:30.569: I/ACodec(25256): [OMX.qcom.video.encoder.avc] Now Idle->Executing
06-18 15:58:30.579: I/ACodec(25256): [OMX.qcom.video.encoder.avc] Now Executing
EDIT 1:
Tested on a Galaxy S5 (Android 4.4.2)
Tested on a Moto X (Android 4.4.3)
Tested on a Tablet Foston 7" with android 4.0.1
Teste all with all resolutions provided by exemple3 and the same error
This issue is only on youtube iframe playback on ( 4.3/4.4 on Nexus 7). I go to any media site embedding YT player in an Iframe and the sound does not play. The player will launch and will show controls but, no sound. The logcat msg is :
I/OMXClient( 3004): Using client-side OMX mux.
E/OMX-VDEC-1080P( 180): Extension: OMX.google.android.index.storeMetaDataInBuffers not implemented
E/OMXNodeInstance( 180): OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
E/ACodec ( 3004): [OMX.qcom.video.decoder.avc] storeMetaDataInBuffers failed w/ err -2147483648
...
I/OMXClient( 3004): Using client-side OMX mux.
E/OMXMaster( 3004): A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/SoftAAC2( 3004): Reconfiguring decoder: 0->44100 Hz, 0->2 channels
D/audio_hw_primary( 180): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/ACDB-LOADER( 180): ACDB -> send_afe_cal
jsfiddle to reproduce the bug or just go to any media portal that embeds Youtube clips... this link is fine on my laptop and my phone. Its just the N7 where i've seen bug.
Workaround - use Chrome Beta as browser. But that does not really work if focus is on media heavy environment adapted for tablets.
My question: is it a Chrome problem or just a nexus 7 problem?
--EDIT
sample iframe from 'the dish' that has the issue:
<iframe class="youtube-player" type="text/html" src="http://www.youtube.com/embed/MYrY8aFCUCQ?version=3&rel=1&fs=1&showsearch=0&showinfo=1&iv_load_policy=1&wmode=transparent" frameborder="0" id="fitvid994988"></iframe>
I have a camera by Cisco and like to stream it's video stream to my android phone.
It's coded in MPEG4 so there should be no problem, but it's not working anymore (it worked with another camera a few weeks ago). Any idea what I might try ? I don't know what's wrong here.
I/ActivityManager( 79): Starting activity: Intent { cmp=com.Projekt1/.CameraView }
I/System.out(18792): SDPURL - rtsp://10.42.0.103:554/live.sdp
I/NotificationService( 79): enqueueToast pkg=com.Projekt1 callback=android.app.ITransientNotification$Stub$Proxy#44a22218 duration=0
D/MediaPlayer(18792): Couldn't open file on client side, trying server side
I/ActivityManager( 79): Displayed activity com.Projekt1/.CameraView: 270 ms (total 270 ms)
W/MediaPlayer(18792): info/warning (1, 26)
I/MediaPlayer(18792): Info (1,26)
E/PlayerDriver( 52): Command PLAYER_INIT completed with an error or info PVMFFailure
E/MediaPlayer(18792): error (1, -1)
E/MediaPlayer(18792): Error (1,-1)
D/VideoView(18792): Error: 1,-1
W/PlayerDriver( 52): PVMFInfoErrorHandlingComplete
Sorry Nils you have the right codec but Android supports only .3gp Streaming for video, i see you have
rtsp://10.42.0.103:554/live.sdp