Closed ilbonte closed 8 months ago
According with logcat, my library send closeStream command but this command is only called if you call disconnect method (called on reconnect or stopStream methods). Can you share me a full logcat to know the reason about it? Which version is the old library?
Also, I can appreciate that you video packet is too large producing discard frames. This could be caused by your internet connection or a high bitrate. can you share me preparevideo parameters used?
is only called if you call disconnect method (called on reconnect or stopStream methods).
Interesting, maybe I'm calling stopStream
accidentally somewhere.
Which version is the old library?
Sorry, maybe I wasn't clear. It is another library: https://github.com/begeekmyfriend/yasea/tree/android-16
This could be caused by your internet connection or a high bitrate.
My internet connection is quite fast, maybe the wifi on the device is slow...
I'm using prepareVideo()
so it using the defaults.. I'll try to lower it anyway to see if it improves
If you are using default parameters. It is weird.
Using default parameters the video bitrate (bps) is 1200 * 1024 but in your logs I can see a video packet of 462865. Assuming that you have 30fps and all packet have a similar size the bitrate is around 14Mbps not even close to 1.2Mbps configured in default parameters so I think that your video codec is doing something weird.
I recommend you follow this steps:
After resolve that, check if you still have "frame discarded" in logs and in this case try this:
for (String s : CodecUtil.showAllCodecsInfo()) Log.e("Pedro", s);
After share me that and I will check a way to avoid frame discarded
Fixed the problem with stopStream and now I'm also using the OpenGL View. The preview looks fine.
I still see a lot of discarded packet. Unfortunately right now I can not try again with the other library, maybe in a couple of days...
Following there is a more complete log and with all the available codec printed
I/ActivityManager: Timeline: Activity_launch_request id:com.deornet.ddira time:7792103
W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/util/Range;)
I/dalvikvm: Could not find method android.util.Range.getUpper, referenced from method com.pedro.encoder.input.video.CameraHelper.discardCamera2Fps
W/dalvikvm: VFY: unable to resolve virtual method 3987: Landroid/util/Range;.getUpper ()Ljava/lang/Comparable;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x000f
I/Camera1ApiManager: 2048X1080, not supported for encoder
I/Camera1ApiManager: 2048X1080, not supported for encoder
W/dalvikvm: Unable to resolve superclass of Lcom/pedro/encoder/BaseEncoder$2; (279)
Link of class 'Lcom/pedro/encoder/BaseEncoder$2;' failed
E/dalvikvm: Could not find class 'com.pedro.encoder.BaseEncoder$2', referenced from method com.pedro.encoder.BaseEncoder.createAsyncCallback
W/dalvikvm: VFY: unable to resolve new-instance 3447 (Lcom/pedro/encoder/BaseEncoder$2;) in Lcom/pedro/encoder/BaseEncoder;
D/dalvikvm: VFY: replacing opcode 0x22 at 0x0000
I/dalvikvm: Could not find method android.media.MediaCodec.setCallback, referenced from method com.pedro.encoder.BaseEncoder.initCodec
W/dalvikvm: VFY: unable to resolve virtual method 1398: Landroid/media/MediaCodec;.setCallback (Landroid/media/MediaCodec$Callback;Landroid/os/Handler;)V
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0024
I/dalvikvm: Could not find method android.media.MediaCodec.getInputBuffer, referenced from method com.pedro.encoder.BaseEncoder.inputAvailable
W/dalvikvm: VFY: unable to resolve virtual method 1390: Landroid/media/MediaCodec;.getInputBuffer (I)Ljava/nio/ByteBuffer;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.media.MediaCodec.getOutputBuffer, referenced from method com.pedro.encoder.BaseEncoder.outputAvailable
W/dalvikvm: VFY: unable to resolve virtual method 1392: Landroid/media/MediaCodec;.getOutputBuffer (I)Ljava/nio/ByteBuffer;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
W/dalvikvm: Unable to resolve superclass of Lcom/pedro/encoder/BaseEncoder$2; (279)
Link of class 'Lcom/pedro/encoder/BaseEncoder$2;' failed
D/dalvikvm: DexOpt: unable to opt direct call 0x65da at 0x02 in Lcom/pedro/encoder/BaseEncoder;.createAsyncCallback
W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/media/AudioPlaybackCaptureConfiguration;)
VFY: unable to find class referenced in signature (Landroid/media/AudioPlaybackCaptureConfiguration;)
VFY: unable to find class referenced in signature (Landroid/media/AudioPlaybackCaptureConfiguration;)
E/dalvikvm: Could not find class 'android.media.AudioRecord$Builder', referenced from method com.pedro.encoder.input.audio.MicrophoneManager.createInternalMicrophone
W/dalvikvm: VFY: unable to resolve new-instance 272 (Landroid/media/AudioRecord$Builder;) in Lcom/pedro/encoder/input/audio/MicrophoneManager;
D/dalvikvm: VFY: replacing opcode 0x22 at 0x0013
DexOpt: unable to opt direct call 0x054c at 0x15 in Lcom/pedro/encoder/input/audio/MicrophoneManager;.createInternalMicrophone
D/dalvikvm: DexOpt: unable to opt direct call 0x0536 at 0x1e in Lcom/pedro/encoder/input/audio/MicrophoneManager;.createInternalMicrophone
I/dalvikvm: Could not find method android.media.MediaMuxer.<init>, referenced from method com.pedro.rtplibrary.util.RecordController.startRecord
W/dalvikvm: VFY: unable to resolve direct method 1482: Landroid/media/MediaMuxer;.<init> (Ljava/io/FileDescriptor;I)V
D/dalvikvm: VFY: replacing opcode 0x70 at 0x0003
E/TAG: surfaceCreated:
I/OpenGlViewBase: size: 1280x622
E/TAG: surfaceChanged:
I/OpenGlViewBase: Thread started.
E/SurfaceManager: GL already released
I/SurfaceManager: GL initialized
E/SurfaceManager: GL already released
I/SurfaceManager: GL initialized
I/Camera1ApiManager: fps: 15000 - 15000
I/Camera1ApiManager: 640X480
I/ActivityManager: Timeline: Activity_idle id: android.os.BinderProxy@41971990 time:7793086
I/AudioPostProcessEffect: EchoCanceler enabled
I/AudioPostProcessEffect: NoiseSuppressor enabled
I/MicrophoneManager: Microphone created, 44100hz, Stereo
I/dalvikvm: Could not find method android.media.MediaCodecList.<init>, referenced from method com.pedro.encoder.utils.CodecUtil.getAllCodecs
W/dalvikvm: VFY: unable to resolve direct method 1422: Landroid/media/MediaCodecList;.<init> (I)V
D/dalvikvm: VFY: replacing opcode 0x70 at 0x000e
I/dalvikvm: Could not find method android.media.MediaCodecInfo$CodecCapabilities.getEncoderCapabilities, referenced from method com.pedro.encoder.utils.CodecUtil.isCBRModeSupported
W/dalvikvm: VFY: unable to resolve virtual method 1407: Landroid/media/MediaCodecInfo$CodecCapabilities;.getEncoderCapabilities ()Landroid/media/MediaCodecInfo$EncoderCapabilities;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.media.MediaCodecInfo.isHardwareAccelerated, referenced from method com.pedro.encoder.utils.CodecUtil.isHardwareAccelerated
W/dalvikvm: VFY: unable to resolve virtual method 1421: Landroid/media/MediaCodecInfo;.isHardwareAccelerated ()Z
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0006
I/dalvikvm: Could not find method android.media.MediaCodecInfo.isHardwareAccelerated, referenced from method com.pedro.encoder.utils.CodecUtil.isSoftwareOnly
W/dalvikvm: VFY: unable to resolve virtual method 1421: Landroid/media/MediaCodecInfo;.isHardwareAccelerated ()Z
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0007
I/dalvikvm: Could not find method android.media.MediaCodecInfo$CodecCapabilities.getMaxSupportedInstances, referenced from method com.pedro.encoder.utils.CodecUtil.showAllCodecsInfo
W/dalvikvm: VFY: unable to resolve virtual method 1408: Landroid/media/MediaCodecInfo$CodecCapabilities;.getMaxSupportedInstances ()I
D/dalvikvm: VFY: replacing opcode 0x6e at 0x005a
I/dalvikvm: Could not find method android.media.MediaCodecInfo$CodecCapabilities.getEncoderCapabilities, referenced from method com.pedro.encoder.utils.CodecUtil.showAllCodecsInfo
W/dalvikvm: VFY: unable to resolve virtual method 1407: Landroid/media/MediaCodecInfo$CodecCapabilities;.getEncoderCapabilities ()Landroid/media/MediaCodecInfo$EncoderCapabilities;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x007e
I/dalvikvm: Could not find method android.media.MediaCodecInfo$EncoderCapabilities.getQualityRange, referenced from method com.pedro.encoder.utils.CodecUtil.showAllCodecsInfo
W/dalvikvm: VFY: unable to resolve virtual method 1411: Landroid/media/MediaCodecInfo$EncoderCapabilities;.getQualityRange ()Landroid/util/Range;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x00b3
I/dalvikvm: Could not find method android.media.MediaCodecInfo$EncoderCapabilities.isBitrateModeSupported, referenced from method com.pedro.encoder.utils.CodecUtil.showAllCodecsInfo
W/dalvikvm: VFY: unable to resolve virtual method 1412: Landroid/media/MediaCodecInfo$EncoderCapabilities;.isBitrateModeSupported (I)Z
D/dalvikvm: VFY: replacing opcode 0x6e at 0x00db
I/dalvikvm: Could not find method android.media.MediaCodecInfo$CodecCapabilities.getVideoCapabilities, referenced from method com.pedro.encoder.utils.CodecUtil.showAllCodecsInfo
W/dalvikvm: VFY: unable to resolve virtual method 1409: Landroid/media/MediaCodecInfo$CodecCapabilities;.getVideoCapabilities ()Landroid/media/MediaCodecInfo$VideoCapabilities;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x0179
I/dalvikvm: Could not find method android.media.MediaCodecInfo$CodecCapabilities.getMaxSupportedInstances, referenced from method com.pedro.encoder.utils.CodecUtil.showAllCodecsInfo
W/dalvikvm: VFY: unable to resolve virtual method 1408: Landroid/media/MediaCodecInfo$CodecCapabilities;.getMaxSupportedInstances ()I
D/dalvikvm: VFY: replacing opcode 0x6e at 0x029f
I/dalvikvm: Could not find method android.media.MediaCodecInfo$CodecCapabilities.getAudioCapabilities, referenced from method com.pedro.encoder.utils.CodecUtil.showAllCodecsInfo
W/dalvikvm: VFY: unable to resolve virtual method 1406: Landroid/media/MediaCodecInfo$CodecCapabilities;.getAudioCapabilities ()Landroid/media/MediaCodecInfo$AudioCapabilities;
D/dalvikvm: VFY: replacing opcode 0x6e at 0x023a
I/AudioEncoder: 1 encoders found
Encoder OMX.google.aac.encoder
Encoder selected OMX.google.aac.encoder
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/AudioEncoder: prepared
I/SurfaceManager: GL released
E/SurfaceManager: GL already released
I/SurfaceManager: GL released
E/SurfaceManager: GL already released
GL already released
GL already released
W/BufferQueue: [unnamed-10094-0] cancelBuffer: BufferQueue has been abandoned!
W/BufferQueue: [unnamed-10094-0] cancelBuffer: BufferQueue has been abandoned!
W/BufferQueue: [unnamed-10094-0] cancelBuffer: BufferQueue has been abandoned!
W/BufferQueue: [unnamed-10094-0] cancelBuffer: BufferQueue has been abandoned!
W/BufferQueue: [unnamed-10094-0] cancelBuffer: BufferQueue has been abandoned!
W/BufferQueue: [unnamed-10094-0] cancelBuffer: BufferQueue has been abandoned!
I/VideoEncoder: 2 encoders found
Encoder OMX.qcom.video.encoder.avc
I/OMXClient: Using client-side OMX mux.
I/VideoEncoder: Color supported: 2141391876
Color supported: 2130708361
Encoder selected OMX.qcom.video.encoder.avc
I/OMXClient: Using client-side OMX mux.
I/VideoEncoder: Prepare video info: SURFACE, 1280x720
bitrate mode CBR not supported using default mode
E/ACodec: [OMX.qcom.video.encoder.avc] storeMetaDataInBuffers (output) failed w/ err -2147483648
I/ACodec: setupVideoEncoder succeeded
I/VideoEncoder: prepared
E/TAG: ready to stream
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
D/dalvikvm: GC_FOR_ALLOC freed 1085K, 51% free 5437K/11064K, paused 17ms, total 17ms
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/SoftAVCEncoder: Construct SoftAVCEncoder
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/SoftMPEG4Encoder: Construct SoftMPEG4Encoder
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/SoftMPEG4Encoder: Construct SoftMPEG4Encoder
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
W/OMXCodec: Failed to set standard component role 'audio_decoder.flac'.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
E/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
W/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.prepareForAdaptivePlayback failed
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
E/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
W/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.prepareForAdaptivePlayback failed
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
E/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
W/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.prepareForAdaptivePlayback failed
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
E/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
W/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.prepareForAdaptivePlayback failed
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
E/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
W/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.prepareForAdaptivePlayback failed
I/OMXClient: Using client-side OMX mux.
I/OMXClient: Using client-side OMX mux.
E/OMXMaster: A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
I/OMXClient: Using client-side OMX mux.
E/Pedro: ----------------
Name: OMX.google.aac.encoder
Type: audio/mp4a-latm
----- Encoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.audio.encoder.evrc
Type: audio/evrc
----- Encoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.flac.encoder
Type: audio/flac
----- Encoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.audio.encoder.qcelp13
Type: audio/qcelp
----- Encoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: AACEncoder
Type: audio/mp4a-latm
----- Encoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.amrnb.encoder
Type: audio/3gpp
----- Encoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.amrwb.encoder
Type: audio/amr-wb
----- Encoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.video.encoder.avc
Type: video/avc
----- Encoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
2130708361
21
Profile: 1, level: 65536
Profile: 2, level: 65536
Profile: 8, level: 65536
Profile: 2130706433, level: 65536
----- -----
----------------
----------------
Name: OMX.qcom.video.encoder.mpeg4
Type: video/mp4v-es
----- Encoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
2130708361
21
Profile: 1, level: 128
Profile: 32768, level: 128
----- -----
----------------
----------------
Name: OMX.qcom.video.encoder.h263
Type: video/3gpp
----- Encoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
2130708361
21
Profile: 1, level: 128
----- -----
----------------
----------------
Name: OMX.google.h264.encoder
Type: video/avc
----- Encoder info -----
----- -----
----- Video info -----
Supported colors:
19
21
2130708361
Profile: 1, level: 1
Profile: 1, level: 2
Profile: 1, level: 4
Profile: 1, level: 8
Profile: 1, level: 16
Profile: 1, level: 32
----- -----
----------------
E/Pedro: ----------------
Name: OMX.google.mpeg4.encoder
Type: video/mp4v-es
----- Encoder info -----
----- -----
----- Video info -----
Supported colors:
19
21
2130708361
Profile: 4, level: 8
----- -----
----------------
----------------
Name: OMX.google.h263.encoder
Type: video/3gpp
----- Encoder info -----
----- -----
----- Video info -----
Supported colors:
19
21
2130708361
Profile: 1, level: 16
----- -----
----------------
----------------
Name: OMX.qcom.audio.decoder.wma
Type: audio/x-ms-wma
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.audio.decoder.wmaLossLess
Type: audio/x-ms-wma
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.audio.decoder.wma10Pro
Type: audio/x-ms-wma
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.audio.decoder.amrwbplus
Type: audio/amr-wb-plus
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.vorbis.decoder
Type: audio/vorbis
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.mp3.decoder
Type: audio/mpeg
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: MP3Decoder
Type: audio/mpeg
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.amrnb.decoder
Type: audio/3gpp
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.amrwb.decoder
Type: audio/amr-wb
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.aac.decoder
Type: audio/mp4a-latm
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: AACDecoder
Type: audio/mp4a-latm
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: FLACDecoder
Type: audio/flac
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.raw.decoder
Type: audio/flac
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.g711.alaw.decoder
Type: audio/g711-alaw
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.g711.mlaw.decoder
Type: audio/g711-mlaw
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.audio.decoder.Qcelp13
Type: audio/qcelp
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.audio.decoder.evrc
Type: audio/evrc
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.avc
Type: video/avc
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
Profile: 1, level: 2048
Profile: 2, level: 2048
Profile: 8, level: 2048
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.mpeg2
Type: video/mpeg2
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
Profile: 0, level: 3
Profile: 1, level: 3
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.mpeg4
Type: video/mp4v-es
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
Profile: 1, level: 128
Profile: 32768, level: 128
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.h263
Type: video/3gpp
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
Profile: 1, level: 128
----- -----
----------------
E/Pedro: ----------------
Name: OMX.qcom.video.decoder.vc1
Type: video/x-ms-wmv
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.divx
Type: video/divx
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.divx311
Type: video/divx311
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.divx4
Type: video/divx4
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.vp8
Type: video/x-vnd.on2.vp8
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
----- -----
----------------
----------------
Name: OMX.qcom.video.decoder.hevc
Type: video/hevc
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
2141391876
19
----- -----
----------------
----------------
Name: OMX.google.h264.decoder
Type: video/avc
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
19
----- -----
----------------
----------------
Name: OMX.google.mpeg4.decoder
Type: video/mp4v-es
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
19
----- -----
----------------
----------------
Name: OMX.google.h263.decoder
Type: video/3gpp
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
19
----- -----
----------------
----------------
Name: OMX.google.vp8.decoder
Type: video/x-vnd.on2.vp8
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
19
----- -----
----------------
----------------
Name: OMX.google.vp9.decoder
Type: video/x-vnd.on2.vp9
----- Decoder info -----
----- -----
----- Video info -----
Supported colors:
19
----- -----
----------------
----------------
Name: AACEncoder
Type: audio/mp4a-latm
----- Encoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.google.raw.decoder
Type: audio/raw
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
----------------
Name: OMX.qcom.audio.decoder.multiaac
Type: audio/mp4a-latm
----- Decoder info -----
----- -----
----- Audio info -----
----- -----
----------------
I/VideoEncoder: started
I/AudioEncoder: started
I/OpenGlViewBase: Thread started.
E/SurfaceManager: GL already released
I/SurfaceManager: GL initialized
E/SurfaceManager: GL already released
I/SurfaceManager: GL initialized
I/SurfaceManager: GL released
E/SurfaceManager: GL already released
I/SurfaceManager: GL initialized
I/SurfaceManager: GL initialized
I/MicrophoneManager: Microphone started
I/Camera1ApiManager: fps: 15000 - 15000
I/Camera1ApiManager: 1280X720
E/TAG: screentiyp:0
I/RtmpClient: send sps and pps
I/Handshake: writing C0
C0 write successful
writing C1
writing time 1643375034 to c1
writing zero to c1
writing random to c1
I/Handshake: C1 write successful
reading S0
I/Handshake: read S0 successful
reading S1
read S1 successful
writing C2
C2 write successful
reading S2
read S2 successful
I/CommandsManager: using default write chunk size 128
I/CommandsManager: send Command(name='connect', transactionId=1, timeStamp=1, streamId=0, data=[AmfString value: connect, AmfNumber value: 1.0, AmfObject properties: {AmfString value: app=AmfString value: ddira, AmfString value: flashVer=AmfString value: FMLE/3.0 (compatible; Lavf57.56.101), AmfString value: swfUrl=AmfString value: , AmfString value: tcUrl=AmfString value: rtmp://ddira.deornet.com:1935/ddira, AmfString value: fpad=AmfBoolean value: false, AmfString value: capabilities=AmfNumber value: 239.0, AmfString value: audioCodecs=AmfNumber value: 3191.0, AmfString value: videoCodecs=AmfNumber value: 252.0, AmfString value: videoFunction=AmfNumber value: 1.0, AmfString value: pageUrl=AmfString value: , AmfString value: objectEncoding=AmfNumber value: 0.0}], bodySize=277)
W/dalvikvm: VFY: unable to find class referenced in signature (Ljava/util/function/Consumer;)
VFY: unable to find class referenced in signature (Ljava/util/function/Consumer;)
I/dalvikvm: Failed resolving Lj$/$r8$wrapper$java$util$stream$Stream$-WRP; interface 1354 'Ljava/util/stream/Stream;'
W/dalvikvm: Link of class 'Lj$/$r8$wrapper$java$util$stream$Stream$-WRP;' failed
I/dalvikvm: Could not find method j$.$r8$wrapper$java$util$stream$Stream$-WRP.convert, referenced from method kotlin.collections.EmptyList.parallelStream
W/dalvikvm: VFY: unable to resolve static method 29986: Lj$/$r8$wrapper$java$util$stream$Stream$-WRP;.convert (Lj$/util/stream/Stream;)Ljava/util/stream/Stream;
D/dalvikvm: VFY: replacing opcode 0x71 at 0x0004
W/dalvikvm: VFY: unable to find class referenced in signature (Ljava/util/function/Predicate;)
VFY: unable to find class referenced in signature (Ljava/util/function/Predicate;)
VFY: unable to find class referenced in signature (Ljava/util/function/UnaryOperator;)
W/dalvikvm: VFY: unable to find class referenced in signature (Ljava/util/function/UnaryOperator;)
I/dalvikvm: Failed resolving Lj$/$r8$wrapper$java$util$Spliterator$-WRP; interface 1294 'Ljava/util/Spliterator;'
W/dalvikvm: Link of class 'Lj$/$r8$wrapper$java$util$Spliterator$-WRP;' failed
I/dalvikvm: Could not find method j$.$r8$wrapper$java$util$Spliterator$-WRP.convert, referenced from method kotlin.collections.EmptyList.spliterator
W/dalvikvm: VFY: unable to resolve static method 29976: Lj$/$r8$wrapper$java$util$Spliterator$-WRP;.convert (Lj$/util/Spliterator;)Ljava/util/Spliterator;
D/dalvikvm: VFY: replacing opcode 0x71 at 0x0004
I/dalvikvm: Failed resolving Lj$/$r8$wrapper$java$util$stream$Stream$-WRP; interface 1354 'Ljava/util/stream/Stream;'
W/dalvikvm: Link of class 'Lj$/$r8$wrapper$java$util$stream$Stream$-WRP;' failed
I/dalvikvm: Could not find method j$.$r8$wrapper$java$util$stream$Stream$-WRP.convert, referenced from method kotlin.collections.EmptyList.stream
W/dalvikvm: VFY: unable to resolve static method 29986: Lj$/$r8$wrapper$java$util$stream$Stream$-WRP;.convert (Lj$/util/stream/Stream;)Ljava/util/stream/Stream;
D/dalvikvm: VFY: replacing opcode 0x71 at 0x0004
W/dalvikvm: VFY: unable to find class referenced in signature (Ljava/util/function/Consumer;)
VFY: unable to find class referenced in signature (Ljava/util/function/Consumer;)
I/CommandsManager: read WindowAcknowledgementSize(acknowledgementWindowSize=2500000)
read SetPeerBandwidth(acknowledgementWindowSize=2500000, type=DYNAMIC)
I/CommandsManager: read UserControl(type=STREAM_BEGIN, event=Event(data=0, bufferLength=-1), bodySize=6)
I/RtmpClient: user control command STREAM_BEGIN ignored
I/CommandsManager: read SetChunkSize(chunkSize=4096)
I/RtmpClient: chunk size configured to 4096
D/dalvikvm: GC_FOR_ALLOC freed 2011K, 51% free 5473K/11064K, paused 22ms, total 22ms
I/CommandsManager: read Command(name='_result', transactionId=1, timeStamp=0, streamId=0, data=[AmfString value: _result, AmfNumber value: 1.0, AmfObject properties: {AmfString value: fmsVer=AmfString value: FMS/3,5,7,7009, AmfString value: capabilities=AmfNumber value: 31.0, AmfString value: mode=AmfNumber value: 1.0}, AmfObject properties: {AmfString value: level=AmfString value: status, AmfString value: code=AmfString value: NetConnection.Connect.Success, AmfString value: description=AmfString value: Connection succeeded., AmfString value: data=AmfEcmaArray length: 0, properties: {AmfString value: version=AmfString value: 3,5,7,7009}, AmfString value: clientid=AmfNumber value: 3.01794086E8, AmfString value: objectEncoding=AmfNumber value: 0.0}], bodySize=261)
send Command(name='releaseStream', transactionId=2, timeStamp=2, streamId=0, data=[AmfString value: releaseStream, AmfNumber value: 2.0, AmfNull, AmfString value: myStream8], bodySize=38)
send Command(name='FCPublish', transactionId=3, timeStamp=2, streamId=0, data=[AmfString value: FCPublish, AmfNumber value: 3.0, AmfNull, AmfString value: myStream8], bodySize=34)
send Command(name='createStream', transactionId=4, timeStamp=2, streamId=0, data=[AmfString value: createStream, AmfNumber value: 4.0, AmfNull], bodySize=25)
I/RtmpClient: success response received from connect
I/CommandsManager: read Command(name='onFCPublish', transactionId=0, timeStamp=0, streamId=0, data=[AmfString value: onFCPublish, AmfNumber value: 0.0, AmfNull, AmfObject properties: {AmfString value: level=AmfString value: status, AmfString value: code=AmfString value: NetStream.Publish.Start, AmfString value: description=AmfString value: FCPublish to stream myStream8., AmfString value: clientid=AmfNumber value: 3.01794086E8}], bodySize=141)
I/RtmpClient: unknown onFCPublish response received from unknown command
I/CommandsManager: read Command(name='_result', transactionId=4, timeStamp=0, streamId=0, data=[AmfString value: _result, AmfNumber value: 4.0, AmfNull, AmfNumber value: 1.0], bodySize=29)
send Command(name='publish', transactionId=5, timeStamp=2, streamId=1, data=[AmfString value: publish, AmfNumber value: 5.0, AmfNull, AmfString value: myStream8, AmfString value: live], bodySize=39)
I/RtmpClient: success response received from createStream
I/CommandsManager: read UserControl(type=STREAM_BEGIN, event=Event(data=1, bufferLength=-1), bodySize=6)
I/RtmpClient: user control command STREAM_BEGIN ignored
I/CommandsManager: read Command(name='onStatus', transactionId=0, timeStamp=0, streamId=0, data=[AmfString value: onStatus, AmfNumber value: 0.0, AmfNull, AmfObject properties: {AmfString value: level=AmfString value: status, AmfString value: code=AmfString value: NetStream.Publish.Start, AmfString value: description=AmfString value: Publishing myStream8., AmfString value: clientid=AmfNumber value: 3.01794086E8}], bodySize=129)
I/CommandsManager: send Data(name='@setDataFrame', data=[AmfString value: onMetaData, AmfEcmaArray length: 12, properties: {AmfString value: duration=AmfNumber value: 0.0, AmfString value: width=AmfNumber value: 1280.0, AmfString value: height=AmfNumber value: 720.0, AmfString value: videocodecid=AmfNumber value: 7.0, AmfString value: framerate=AmfNumber value: 15.0, AmfString value: videodatarate=AmfNumber value: 0.0, AmfString value: audiocodecid=AmfNumber value: 10.0, AmfString value: audiosamplerate=AmfNumber value: 44100.0, AmfString value: audiosamplesize=AmfNumber value: 16.0, AmfString value: audiodatarate=AmfNumber value: 0.0, AmfString value: stereo=AmfBoolean value: true, AmfString value: filesize=AmfNumber value: 0.0}], bodySize=284)
I/RtmpSender: wrote Video packet, size 45
D/dalvikvm: GC_FOR_ALLOC freed 453K, 38% free 6915K/11064K, paused 169ms, total 169ms
I/dalvikvm-heap: Grow heap (frag case) to 10.163MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 59K, 34% free 8291K/12448K, paused 13ms, total 14ms
I/dalvikvm-heap: Grow heap (frag case) to 11.505MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 14K, 31% free 9672K/13832K, paused 13ms, total 18ms
I/dalvikvm-heap: Grow heap (frag case) to 12.854MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 20K, 28% free 11055K/15216K, paused 18ms, total 18ms
I/dalvikvm-heap: Grow heap (frag case) to 14.205MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 58K, 26% free 12438K/16600K, paused 15ms, total 15ms
I/dalvikvm-heap: Grow heap (frag case) to 15.555MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 52K, 24% free 13819K/17984K, paused 14ms, total 14ms
I/dalvikvm-heap: Grow heap (frag case) to 16.905MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 238K, 22% free 15196K/19368K, paused 13ms, total 13ms
I/dalvikvm-heap: Grow heap (frag case) to 18.250MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 63K, 21% free 16577K/20752K, paused 14ms, total 14ms
I/dalvikvm-heap: Grow heap (frag case) to 19.597MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 95K, 19% free 17959K/22136K, paused 15ms, total 15ms
I/dalvikvm-heap: Grow heap (frag case) to 20.947MB for 1413141-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 78K, 18% free 19340K/23520K, paused 15ms, total 15ms
I/RtmpSender: wrote Video packet, size 1413137
D/dalvikvm: GC_FOR_ALLOC freed 1456K, 23% free 19341K/24904K, paused 15ms, total 15ms
D/dalvikvm: GC_FOR_ALLOC freed 83K, 17% free 20723K/24904K, paused 17ms, total 17ms
D/dalvikvm: GC_FOR_ALLOC freed 63K, 16% free 22105K/26288K, paused 17ms, total 17ms
D/dalvikvm: GC_FOR_ALLOC freed 74K, 16% free 23486K/27672K, paused 13ms, total 13ms
I/RtmpSender: Video frame discarded
I/RtmpSender: Audio frame discarded
Audio frame discarded
D/dalvikvm: GC_FOR_ALLOC freed 1548K, 19% free 24867K/30440K, paused 19ms, total 19ms
I/RtmpSender: Video frame discarded
I/RtmpSender: Audio frame discarded
I/RtmpSender: Audio frame discarded
I/RtmpSender: Audio frame discarded
Audio frame discarded
I/RtmpSender: Video frame discarded
I/RtmpSender: Audio frame discarded
Audio frame discarded
Audio frame discarded
I/RtmpSender: wrote Video packet, size 1413137
wrote Audio packet, size 23
I/RtmpSender: wrote Audio packet, size 387
wrote Audio packet, size 391
wrote Audio packet, size 394
D/dalvikvm: GC_FOR_ALLOC freed 4333K, 20% free 23486K/29008K, paused 30ms, total 30ms
I/RtmpSender: Video frame discarded
I/RtmpSender: Audio frame discarded
Audio frame discarded
I/RtmpSender: Audio frame discarded
D/dalvikvm: GC_FOR_ALLOC freed 1545K, 19% free 24868K/30392K, paused 22ms, total 22ms
I/RtmpSender: Video frame discarded
I/RtmpSender: Video frame discarded
I/RtmpSender: Audio frame discarded
I/RtmpSender: Audio frame discarded
Audio frame discarded
Audio frame discarded
D/dalvikvm: GC_FOR_ALLOC freed 2962K, 15% free 24868K/29008K, paused 24ms, total 24ms
I/RtmpSender: Audio frame discarded
I/RtmpSender: Video frame discarded
I/RtmpSender: Audio frame discarded
Audio frame discarded
I/RtmpSender: Video frame discarded
I/RtmpSender: Audio frame discarded
Audio frame discarded
I/RtmpSender: Audio frame discarded
Audio frame discarded
I/RtmpSender: wrote Video packet, size 1413137
wrote Audio packet, size 394
wrote Audio packet, size 394
wrote Audio packet, size 395
wrote Audio packet, size 394
wrote Audio packet, size 395
wrote Audio packet, size 394
I/RtmpSender: wrote Audio packet, size 395
wrote Audio packet, size 394
``
Sorry to bother you... :(
I'm working on this old augmented reality glasses mounting android 19. For various reasons I had to remove the old library used for rtmp streaming in favour of your library. The streaming is working fine on newer device (API 30), but I'm having issues on the old glasses. The stream starts for a moment and than it crashes with Socket closed. Note that the streaming was working with the old library. Any idea on what could be the problem? (Or how I can debug it better.)
This is the log: