pedroSG94 / RootEncoder

RootEncoder for Android (rtmp-rtsp-stream-client-java) is a stream encoder to push video/audio to media servers using protocols RTMP, RTSP, SRT and UDP with all code written in Java/Kotlin
Apache License 2.0
2.58k stars 781 forks source link

Performance Issue(App is slowing too much on some devices) #1003

Closed MTayyabSarfraz closed 9 months ago

MTayyabSarfraz commented 2 years ago

@pedroSG94 Hi !!

I am trying to apply multiple custom views (filters using AndroidViewRenderer) but on some devices like Poco x3, Samsung A8 tab UI gets stuck or is slowed down and skips frames of CameraFeed while rendering for Livestream.

the logs show too much work on the main thread is done while rendering. Kindly help me out with how to optimize the performance across as many devices as we can. Also, if you could chalk out the factors that could have affected the performance and can be enhanced.

logcats:

D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10011(com.pedro.rtpstreamer) RenderThread identical 2 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10011(com.pedro.rtpstreamer) RenderThread identical 3 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10011(com.pedro.rtpstreamer) RenderThread identical 6 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10011(com.pedro.rtpstreamer) RenderThread identical 4 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10011(com.pedro.rtpstreamer) RenderThread identical 6 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10011(com.pedro.rtpstreamer) RenderThread identical 1 line
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10011(com.pedro.rtpstreamer) RenderThread identical 2 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/RtmpSender: Audio frame discarded
I/RtmpSender: Audio frame discarded
I/Choreographer: Skipped 34 frames!  The application may be doing too much work on its main thread.
I/RtmpSender: Audio frame discarded
I/RtmpSender: Audio frame discarded
D/View: [ANR Warning]onDraw time too long, this =android.webkit.WebView{760194a VFEDHVC.. ........ 0,0-2264,876 #7f0801ea app:id/web_view}time =584 ms

D/View: [ANR Warning]onDraw time too long, this =android.webkit.WebView{760194a VFEDHVC.. ........ 0,0-2264,876 #7f0801ea app:id/web_view}time =642 ms
I/Choreographer: Skipped 38 frames!  The application may be doing too much work on its main thread.

Poco X 3 device specifications are as follows: Poco x3 with the screen resolution of 1080 x 2400 pixels, 20:9 ratio (~395 ppi density), Qualcomm SM7150-AC Snapdragon 732G Octa-core processor while the GPU: is Adreno 618.

I've also opened a discussion on this issue also, here is the link to the discussion for detailed reference.

pedroSG94 commented 2 years ago

Hello,

I think that this is a design problem in AndroidviewFilter. This filter is a bit special because use canvas to get frames from android view so it is really slow compared with others filters that only need use GPU. Also, I detected that this filter could crash sometimes if you don't render it in main thread using few devices. Since I couldn't reproduce the error my solution was this: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/master/encoder/src/main/java/com/pedro/encoder/input/gl/render/filters/AndroidViewFilterRender.java#L127

This could be producing a big preformance issue in your device so I need verify this and know which device receive this error in your case and try to optimize it (I will create a branch to test with an idea and after that if I can't find a solution buy the device with lowest price that can reproduce it). Check if you are reciving this error (you can copy the AndroidViewFilterRender class and add a log to test). If it isn't the case, we need to find other possible reason but the rest of the library should be executed async.

Also, if you are using multiple AndroidViewFilters. I recommend you add a layout that contain all views to increase performance.

MTayyabSarfraz commented 2 years ago

@pedroSG94 last thing first! you said " I recommend you add a layout that contain all views to increase performance. " can you elaborate a bit, as I've tried to do this using a constraint layout and placing my views in it. i mean 2 images and a whole scene web view, but when I added the constraint layout as a filter to AndroidViewFilters it is displaying as BLACK in stream, what I understood why this happened is the parent layout (constaraint layout) while being rendered is unaware of the child in it hierarchy so it does not renders child. Here is what I'm doing ; THE XML(layout) file;

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_example_rtmp"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/cl_parent"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="matrix"
                android:src="@drawable/dummy_image"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <ImageView
                android:id="@+id/image_view2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:scaleType="matrix"
                android:src="@drawable/dummy_image"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <WebView
                android:id="@+id/web_view"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

        </androidx.constraintlayout.widget.ConstraintLayout>

        <com.pedro.rtplibrary.view.OpenGlView
            android:id="@+id/surfaceView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:AAEnabled="false"
            app:aspectRatioMode="adjust"
            app:isFlipHorizontal="false"
            app:isFlipVertical="false"
            app:keepAspectRatio="false"
            app:numFilters="7" />

        <EditText
            android:id="@+id/et_rtp_url"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:gravity="center"
            android:inputType="textUri"
            android:textColor="@color/appColor"
            android:textColorHint="@color/appColor"
            android:visibility="invisible"
            app:layout_constraintTop_toTopOf="parent" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_margin="20dp"
            android:gravity="center"
            android:orientation="horizontal"
            app:layout_constraintTop_toTopOf="parent">

            <Button
                android:id="@+id/b_record"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:text="@string/start_record" />

            <Button
                android:id="@+id/b_start_stop"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:text="@string/start_button" />

            <Button
                android:id="@+id/switch_camera"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/switch_camera_button" />
        </LinearLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>

</RelativeLayout>

and in JAVA class OpenGlRtmpActivity.

 AndroidViewFilterRender androidViewFilterRender = new AndroidViewFilterRender();
  ConstraintLayout clParent = findViewById(R.id.cl_parent);
  androidViewFilterRender.setView(clParent );
  rtmpCamera1.getGlInterface().setFilter(0, androidViewFilterRender);
MTayyabSarfraz commented 2 years ago

Secondly,

This filter is a bit special because use canvas to get frames from android view so it is really slow compared with other filters that only need use GPU.

It sounds obvious that working with canvas over MainThread is quite an enormous task for low spec devices. So isn't there a way we can avoid this canvas thing, and use only GPU processing? I have gone through this repo code. that seemed a bit optimized and performant in the context of rendering with only GPU usage.(I can't get much of the code understanding because I'm naive to GLRendering :( )

One more thing, @pedroSG94 you might produce the above-mentioned performance issue by applying webView to AndroidViewFilter renderer and loading the following URL into webview (https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/ads.html). with a device having 4GB of RAM, I think a 2GB RAM device would produce more frequent issue of Null anb and D/View: [ANR Warning]onDraw time too long, this =android.webkit.WebView{760194a VFEDHVC.. ........ 0,0-2264,876 #7f0801ea app:id/web_view}time =642 ms I/Choreographer: Skipped 38 frames! The application may be doing too much work on its main thread.

pedroSG94 commented 2 years ago

That repo is using canvas like me: https://github.com/arthabus/AndroidViewToGLRendering/blob/master/app/src/main/java/com/self/viewtoglrendering/GLWebView.java#L31 I will check xml shared, try to find a way to optimize AndroidViewFilterRender and report you back.

MTayyabSarfraz commented 2 years ago

@pedroSG94 sure man. Thanks. will this be soon!! your expected time estimation will highly be appreciated as it will help me schedule my deadlines ... if it is going to take time please give me a hint of the solution you have in mind so I can work in that direction. Again no words to thank you for the wonderful work you have done... and the facilitation you have provided to a naive developer like me

pedroSG94 commented 2 years ago

My idea is to add your filter xml and try to render view in other thread not in main thread or drawfilter method thread to avoid block render thread and reduce lag. For now try to check if you call line mentioned above in any device to know if we can reproduce the problem and report me back which device call that line: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/master/encoder/src/main/java/com/pedro/encoder/input/gl/render/filters/AndroidViewFilterRender.java#L127

I will start to test today and finish tonight or maybe tomorrow.

MTayyabSarfraz commented 2 years ago

@pedroSG94 i've debugged the code. debugger is not coming to the line of code you mentioned but UI is lagging!. Test Device: Oppo F11 , 4 GB Ram, OS 11

https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/master/encoder/src/main/java/com/pedro/encoder/input/gl/render/filters/AndroidViewFilterRender.java#L127

pedroSG94 commented 2 years ago

I did a branch for this: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/tree/i1003 For now, I have this:

MTayyabSarfraz commented 2 years ago

@pedroSG94 bro.. thanks for the update. bro I've to display my webview in full resolution, so I can't go with fixed small sizes.

I need to think in a way to copy view image data to the surface in other way that don't block render thread no matter if the performance is lower than the current. If I can get 15-20fps without block render thread should be fine.

I would be anxiously waiting for any of the fixes that could improve performance. As for now this is my main blocker and can't move on next things.

And I'm sure you will get it done very soon, as it is just a matter of the right approach to the problem, once it is figured we will have the fix. :)

Stay Safe, Cheers!!

pedroSG94 commented 2 years ago

Hello,

I did a commit to the branch with an update that solve fps problems. I did a test with webview full screen and fps is now 30 (the cap). Before this change I got 25fps. https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/commit/2e425fd6a81bd6b3c7f4ab085438fa7f4441ab47 I'm waiting for your test using lower spec devices.

MTayyabSarfraz commented 2 years ago

@pedroSG94 bro.. it's still the same... or may be i feel it more laggy.

here are console logs:


D/View: [ANR Warning]onDraw time too long, this =android.webkit.WebView{b4898b2 VFEDHVC.. ........ 0,0-2264,876 #7f080217 app:id/web_view}time =612 ms
I/Choreographer: Skipped 36 frames!  The application may be doing too much work on its main thread.
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
    [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
    [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/View: [ANR Warning]onDraw time too long, this =android.webkit.WebView{b4898b2 VFEDHVC.. ........ 0,0-2264,876 #7f080217 app:id/web_view}time =584 ms
D/ViewRootImpl: enqueueInputEventMotionEvent { action=ACTION_DOWN, actionButton=0, id[0]=0, x[0]=224.0, y[0]=420.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=107144097, downTime=107144097, deviceId=3, source=0x1002, displayId=0 }
D/ViewRootImpl[PopupWindow:764ae77]: processMotionEvent MotionEvent { action=ACTION_DOWN, actionButton=0, id[0]=0, x[0]=224.0, y[0]=420.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=107144097, downTime=107144097, deviceId=3, source=0x1002, displayId=0 }
D/ViewRootImpl[PopupWindow:764ae77]: dispatchPointerEvent handled=true, event=MotionEvent { action=ACTION_DOWN, actionButton=0, id[0]=0, x[0]=224.0, y[0]=420.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=107144097, downTime=107144097, deviceId=3, source=0x1002, displayId=0 }
D/Surface: lockCanvas
I/Choreographer: Skipped 34 frames!  The application may be doing too much work on its main thread.
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
    [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/ViewRootImpl[PopupWindow:764ae77]: processMotionEvent MotionEvent { action=ACTION_UP, actionButton=0, id[0]=0, x[0]=224.0, y[0]=420.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=107144180, downTime=107144097, deviceId=3, source=0x1002, displayId=0 }
D/ViewRootImpl[PopupWindow:764ae77]: dispatchPointerEvent handled=true, event=MotionEvent { action=ACTION_UP, actionButton=0, id[0]=0, x[0]=224.0, y[0]=420.0, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=107144180, downTime=107144097, deviceId=3, source=0x1002, displayId=0 }
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
    [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
    [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
    [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/BufferQueueConsumer: [](id:514300000007,api:0,p:-1,c:20803) connect(): controlledByApp=true
    [](id:514300000008,api:0,p:-1,c:20803) connect(): controlledByApp=true
D/Surface: lockCanvas
I/BufferQueueProducer: [SurfaceTexture-11-20803-8](id:514300000008,api:2,p:20803,c:20803) connect(): api=2 producerControlledByApp=true
D/View: [Warning] assignParent to null: this = android.widget.PopupWindow$PopupDecorView{5574a68 V.E...... R.....ID 0,0-500,998}
I/InputTransport: Destroy ARC handle: 0xb40000767fad6e00
D/Surface: lockCanvas
I/BufferQueueProducer: [SurfaceTexture-10-20803-7](id:514300000007,api:2,p:20803,c:20803) connect(): api=2 producerControlledByApp=true
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 3 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 1 line
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
    SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
I/chromium: [INFO:CONSOLE(1)] "
    It looks like you're using the development build of the Firebase JS SDK.
    When deploying Firebase apps to production, it is advisable to only import
    the individual SDK components you intend to use.

    For the CDN builds, these are available in the following manner
    (replace <PACKAGE> with the name of a component - i.e. auth, database, etc):

    https://www.gstatic.com/firebasejs/5.0.0/firebase-<PACKAGE>.js
    ", source: https://www.gstatic.com/firebasejs/6.3.0/firebase.js (1)
I/chromium: [INFO:CONSOLE(0)] "Mixed Content: The page at 'https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/ads.html' was loaded over HTTPS, but requested an insecure script 'http://github.hubspot.com/odometer/odometer.js'. This request has been blocked; the content must be served over HTTPS.", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/ads.html (0)
D/Surface: lockCanvas
D/Surface: lockCanvas
I/chromium: [INFO:CONSOLE(38)] "TypeError: listner.off is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (38)
    [INFO:CONSOLE(104)] "off and start tournament listner", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (104)
D/Surface: lockCanvas
I/AAudio: AAudioStreamBuilder_openStream() called ----------------------------------------
I/AudioStreamBuilder: rate   =  48000, channels  = 2, format   = 5, sharing = SH, dir = OUTPUT
    device =      0, sessionId = -1, perfMode = 12, callback: ON with frames = 256
    usage  =      1, contentType = 0, inputPreset = 0, allowedCapturePolicy = 0
    privacy sensitive = false
D/dro.rtpstreame: PlayerBase::PlayerBase()
D/AudioStreamTrack: open(), request notificationFrames = -8, frameCount = 0
D/AudioTrack: INSP: type=audio,case=1,set=0xb4000076e0bee600,stream_type=-1,sample_rate=48000,format=0x5,channel_mask=0x3,frame_count=0,flags=0x104,notification_frames=-8,session_id=0,transfer_type=1,uid=-1,pid=-1
    INSP: type=audio,case=1,attributes=1,content_type=2,usage=1,source=0,flags=0x0
D/dro.rtpstreame: set() ro.oplus.audio.effect.type = dirac
D/AudioTrack: set() streamType -1, sampleRate 48000, format 0x5, channelMask 0x3, frameCount 0, flags #104, notificationFrames -8, sessionId 0, transferType 1, uid -1, pid -1 cbf 1
    gATLogLevel = 0
D/AudioTrack: set(): Building AudioTrack with attributes: usage=1 content=2 flags=0x0 tags=[]
D/AudioTrack: set(): 0xb4000076e0bee600, Create AudioTrackThread, tid = 25834
D/AudioTrack: createTrack state 0 output.outputId=29
I/AudioTrack: createTrack_l(1261): AUDIO_OUTPUT_FLAG_FAST successful; frameCount 0 -> 2048
D/AudioTrack: createTrack_l(1264): 0xb4000076e0bee600, mCblk = 0x7635c00000, mLatency = 84, mAfLatency = 42, frameCount = 2048, mSampleRate = 48000, mFlags = 0x4, mReqFrameCount = 2048, mNotificationFramesAct = 256
D/AudioTrack: setVolume(1264): 0xb4000076e0bee600, left = 1.000000, right = 1.000000
D/AAudioStream: setState(s#3) from 0 to 2
W/AudioStreamTrack: open() flags changed from 0x00000104 to 0x00000004
I/AAudio: AAudioStreamBuilder_openStream() returns 0 = AAUDIO_OK for s#3 ----------------
D/AAudio: AAudioStream_requestStart(s#3) called --------------
D/AAudioStream: setState(s#3) from 2 to 3
D/AudioTrack: start(1264): prior state:STATE_STOPPED output 29 stream 3 session 8121
D/AudioStreamLegacy: onAudioDeviceUpdate() devId 3 => 3
D/dro.rtpstreame: PlayerBase::start() from IPlayer
D/AAudio: AAudioStream_requestStart(s#3) returned 0 ---------
D/AAudioStream: setState(s#3) from 3 to 4
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/View: [ANR Warning]onDraw time too long, this =android.webkit.WebView{b4898b2 VFEDHVC.. ........ 0,0-2264,876 #7f080217 app:id/web_view}time =564 ms
I/Choreographer: Skipped 33 frames!  The application may be doing too much work on its main thread.
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 9 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
D/Surface: lockCanvas
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 3 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 19 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 4 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 2 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 6 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 1 line
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 13 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
D/Surface: lockCanvas
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 39 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 13 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 7 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 1 line
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
I/chatty: uid=10712(com.pedro.rtpstreamer) identical 2 lines
I/chromium: [INFO:CONSOLE(415)] "TypeError: all1[j].updateDocumentData is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/utils.js (415)
D/Surface: lockCanvas
I/chromium: [INFO:CONSOLE(38)] "TypeError: listner.off is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (38)
    [INFO:CONSOLE(48)] "off and start live listner", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (48)
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 2 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 4 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 1 line
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 12 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 1 line
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 9 lines
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
E/Parcel: Reading a NULL string not supported here.
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
I/chromium: [INFO:CONSOLE(38)] "TypeError: listner.off is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (38)
    [INFO:CONSOLE(68)] "off and start match listner", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (68)
    [INFO:CONSOLE(38)] "TypeError: listner.off is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (38)
    [INFO:CONSOLE(38)] "TypeError: listner.off is not a function", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (38)
D/Surface: lockCanvas
I/chromium: [INFO:CONSOLE(71)] "got somematch data", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (71)
I/chromium: [INFO:CONSOLE(902)] "Animation Not Implemented", source: https://master.d2u7cmbangq1ut.amplifyapp.com/crickslab-graphics/basic/js/cbt_listners.js (902)
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
D/Surface: lockCanvas
E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
I/chatty: uid=10712(com.pedro.rtpstreamer) RenderThread identical 6 lines
pedroSG94 commented 2 years ago

Hello,

I don't understand that logcat. "D/Surface: lockCanvas" What is this? Also, I can't find my fps logcat to compare. Did you try record/stream using last commit and previous commit and check logcat fps differences? I get a really well performance using last commit.

MTayyabSarfraz commented 2 years ago

@pedroSG94 these above logs are before streaming. Here are steps i performed:

  1. GoTo OpenGLRTMPActivity
  2. Apply AndroidViewFilter (before stream), when i apply this filter the webview loads the url which I shared earlier. onLoad this url contains animated graphics that displays over my screen..
  3. When this animation displays the camera and the layout stucks(app slows like too much heavy work is being done on screen), when the animation is complete, the performance is back to normal (i.e whan i move camera around cameraPreview + app ui doesn't stucks )

Hope this explains you well the real scenerio. in case you need more details orlogs for specific screen or function , i'm there !

pedroSG94 commented 2 years ago

I need logs while record/stream and while animation to know fps. In my case the animation doesn't produce issue performance.

MTayyabSarfraz commented 2 years ago

@pedroSG94 yes, performance issue is only when animated graphics are displayed from weburl, I don't have performance issue if I load static view url ,

After the animation fps back to normal with filter activated?

Are you asking of FPS rate after or before stream also where you want me to enable these fps logs , so i can monitor.

here is my FB sream url you would understand better from this live stream.. for now i've made this stream public so you can have a look at it and understand the issue!!

pedroSG94 commented 2 years ago

You only need start record or stream and you will have fps logs from here: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/i1003/app/src/main/java/com/pedro/rtpstreamer/openglexample/OpenGlRtmpActivity.java#L141 You only need start stream, start AndroidView filter and share me logcat with fps values. Also, remember check this:

  • If you load webview without add it to stream filter. Do you have issue performance?
MTayyabSarfraz commented 2 years ago

here is my FB sream url you would understand better from this live stream.. check video from 14.39 for now i've made this stream public so you can have a look at it and understand the issue!!

MTayyabSarfraz commented 2 years ago

@pedroSG94 without adding to stream .. just loading webview url(animated graphics) on separate Activity , they are animating perfectly fine...

you can also view it in chrome tab by by this url

pedroSG94 commented 2 years ago

@pedroSG94 without adding to stream .. just loading webview url(animated graphics) on separate Activity , they are animating perfectly fine...

you can also view it in chrome tab by by this url

This is not a valid test for this case. Go to branch 1003 and remove this line: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/i1003/app/src/main/java/com/pedro/rtpstreamer/openglexample/OpenGlRtmpActivity.java#L195 Now, compile apk and try to stream using filter. In this case the only difference is that you are not adding it to stream.

I checked FB stream and the problem is exactly the same that I reproduced but with a big fps difference in my case. Also, I need know fps logs to compare fps while animation and after animation.

MTayyabSarfraz commented 2 years ago

@pedroSG94 bro... when i apply filter and animation loads the fps are too low...

2021-12-11 01:45:42.457 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 8
2021-12-11 01:45:43.576 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 8
2021-12-11 01:45:44.631 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 6
2021-12-11 01:45:46.015 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 6
2021-12-11 01:45:47.471 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 5
2021-12-11 01:45:48.684 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 6
2021-12-11 01:45:49.765 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 5
2021-12-11 01:45:50.787 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 7
2021-12-11 01:45:51.846 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 4

After removing that filter fps are back to normal 30fps

2021-12-11 01:48:56.375 5452-5926/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-11 01:48:57.387 5452-5926/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-11 01:48:58.399 5452-5926/com.pedro.rtpstreamer E/Pedro: fps: 30

Same is the case for this case test :

Go to branch 1003 and remove this line: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/blob/i1003/app/src/main/java/com/pedro/rtpstreamer/openglexample/OpenGlRtmpActivity.java#L195 Now, compile apk and try to stream using filter. In this case the only difference is that you are not adding it to stream.

in this case web view is NOT displaying on camera side or on stream even after applying filters and fps are 30FPS

2021-12-11 01:47:44.461 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-11 01:47:45.466 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-11 01:47:46.480 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-11 01:47:47.500 3639-4248/com.pedro.rtpstreamer E/Pedro: fps: 30
pedroSG94 commented 2 years ago

Ok, This is the expected results. I'm doing it because I'm not able to reproduce your case now. It is wokring perfectly in my devices. Now, I added logs to my last commit to know which line is slow in your device. Compile apk and show me logs please: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/tree/i1003

MTayyabSarfraz commented 2 years ago

@pedroSG94 now the animation is much smooth ... but it still drops some frames. while animating bottom-six animation ui.. or animation is long ..... and the camera is also moving..

i believe you have got the base of the issue just more optimization will produce perfect quality...

here are the logs while animating: while animating

2021-12-11 02:40:26.911 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 6
2021-12-11 02:40:28.042 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 7
2021-12-11 02:40:29.238 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 6
2021-12-11 02:40:30.491 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 7
2021-12-11 02:40:31.569 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 6
2021-12-11 02:40:32.854 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 6
2021-12-11 02:40:33.923 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 6
2021-12-11 02:40:35.044 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 6 

After animation is complete and now the graphics are static:

2021-12-11 02:38:47.642 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 14
2021-12-11 02:38:48.767 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 13
2021-12-11 02:38:49.809 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 13
2021-12-11 02:38:50.816 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 12
2021-12-11 02:38:51.876 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 13
2021-12-11 02:38:52.913 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 11
2021-12-11 02:38:53.926 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 14
2021-12-11 02:38:54.987 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 12
2021-12-11 02:38:56.144 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 12
2021-12-11 02:38:57.200 27895-28991/com.pedro.rtpstreamer E/Pedro: fps: 15
pedroSG94 commented 2 years ago

I need logs of this commit not only fps: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/commit/bcb2627242d77ab48803d35b9255b734968a1e7b

MTayyabSarfraz commented 2 years ago

@pedroSG94 here you go!!

2021-12-11 03:02:31.264 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 370
2021-12-11 03:02:31.267 11634-14102/com.pedro.rtpstreamer E/Filter: t4: 3
2021-12-11 03:02:31.267 11634-14102/com.pedro.rtpstreamer E/Filter: total: 386
2021-12-11 03:02:31.307 11634-14102/com.pedro.rtpstreamer E/Filter: t1: 7
2021-12-11 03:02:31.315 11634-14102/com.pedro.rtpstreamer E/Filter: t2: 8
2021-12-11 03:02:31.618 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 303
2021-12-11 03:02:31.623 11634-14102/com.pedro.rtpstreamer E/Filter: t4: 4
2021-12-11 03:02:31.623 11634-14102/com.pedro.rtpstreamer E/Filter: total: 323
2021-12-11 03:02:31.653 11634-14102/com.pedro.rtpstreamer E/Filter: t1: 6
2021-12-11 03:02:31.656 11634-14102/com.pedro.rtpstreamer E/Filter: t2: 2
2021-12-11 03:02:31.983 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 326
2021-12-11 03:02:31.987 11634-14102/com.pedro.rtpstreamer E/Filter: t4: 4
2021-12-11 03:02:31.987 11634-14102/com.pedro.rtpstreamer E/Filter: total: 340
2021-12-11 03:02:32.017 11634-14102/com.pedro.rtpstreamer E/Filter: t1: 5
2021-12-11 03:02:32.020 11634-14102/com.pedro.rtpstreamer E/Filter: t2: 3
2021-12-11 03:02:32.324 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 303
2021-12-11 03:02:32.328 11634-14102/com.pedro.rtpstreamer E/Filter: t4: 4
2021-12-11 03:02:32.328 11634-14102/com.pedro.rtpstreamer E/Filter: total: 316
2021-12-11 03:02:32.343 11634-14102/com.pedro.rtpstreamer E/Filter: t1: 10
2021-12-11 03:02:32.347 11634-14102/com.pedro.rtpstreamer E/Filter: t2: 4
2021-12-11 03:02:32.665 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 318
2021-12-11 03:02:32.669 11634-14102/com.pedro.rtpstreamer E/Filter: t4: 4
2021-12-11 03:02:32.669 11634-14102/com.pedro.rtpstreamer E/Filter: total: 336
2021-12-11 03:02:32.684 11634-14102/com.pedro.rtpstreamer E/Filter: t1: 3
2021-12-11 03:02:32.687 11634-14102/com.pedro.rtpstreamer E/Filter: t2: 3
2021-12-11 03:02:33.011 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 324
2021-12-11 03:02:33.014 11634-14102/com.pedro.rtpstreamer E/Filter: t4: 3
2021-12-11 03:02:33.014 11634-14102/com.pedro.rtpstreamer E/Filter: total: 333
2021-12-11 03:02:33.043 11634-14102/com.pedro.rtpstreamer E/Filter: t1: 5
2021-12-11 03:02:33.058 11634-14102/com.pedro.rtpstreamer E/Filter: t2: 14
2021-12-11 03:02:33.392 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 334
2021-12-11 03:02:33.394 11634-14102/com.pedro.rtpstreamer E/Filter: t4: 2
2021-12-11 03:02:33.394 11634-14102/com.pedro.rtpstreamer E/Filter: total: 356
2021-12-11 03:02:33.399 11634-14102/com.pedro.rtpstreamer E/Filter: t1: 4
2021-12-11 03:02:33.401 11634-14102/com.pedro.rtpstreamer E/Filter: t2: 2
2021-12-11 03:02:33.704 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 303
2021-12-11 03:02:33.708 11634-14102/com.pedro.rtpstreamer E/Filter: t4: 4
2021-12-11 03:02:33.708 11634-14102/com.pedro.rtpstreamer E/Filter: total: 314
2021-12-11 03:02:33.738 11634-14102/com.pedro.rtpstreamer E/Filter: t1: 7
2021-12-11 03:02:33.744 11634-14102/com.pedro.rtpstreamer E/Filter: t2: 6
2021-12-11 03:02:34.140 11634-14102/com.pedro.rtpstreamer E/Filter: t3: 395
pedroSG94 commented 2 years ago

view.draw take so much time I'm not usre if I can improve it. Anyway, your stream fps should be around 30 no matter if animation is slow or not and I think I can solve this. This is weird. Can you tell me device model and android API used?

MTayyabSarfraz commented 2 years ago

@pedroSG94 bro here are my device specs(attached image screen shot below).. i'm using camera2 API from dev perspective.. and using camera screen in landscape mode... if that counts to an issue in any way!

WhatsApp Image 2021-12-12 at 8 09 54 PM

pedroSG94 commented 2 years ago

I finally found a way to optimize it but it is only available in API 23+ (Android 6+). Try the last commit in branch i1003 and let me know if it is working for you: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/tree/i1003

MTayyabSarfraz commented 2 years ago

@pedroSG94 app is crashing when i've not streamed yet but applied filters. it loads the animation for few seconds and then crashes.

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.pedro.rtpstreamer, PID: 4413 java.lang.IllegalStateException: Recording currently in progress - missing #endRecording() call? at android.graphics.RenderNode.beginRecording(RenderNode.java:375) at android.view.View.updateDisplayListIfDirty(View.java:21547) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597) at android.view.View.updateDisplayListIfDirty(View.java:21528) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597) at android.view.View.updateDisplayListIfDirty(View.java:21528) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597) at android.view.View.updateDisplayListIfDirty(View.java:21528) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597) at android.view.View.updateDisplayListIfDirty(View.java:21528) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597) at android.view.View.updateDisplayListIfDirty(View.java:21528) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597) at android.view.View.updateDisplayListIfDirty(View.java:21528) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597) at android.view.View.updateDisplayListIfDirty(View.java:21528) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:559) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:565) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:642) at android.view.ViewRootImpl.draw(ViewRootImpl.java:4657) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4368) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3586) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2345) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9046) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1066) at android.view.Choreographer.doCallbacks(Choreographer.java:889) at android.view.Choreographer.doFrame(Choreographer.java:816) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1051) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:264) at android.app.ActivityThread.main(ActivityThread.java:8282) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)

here is gist of detailed logs

pedroSG94 commented 2 years ago

Are you using my app example? I can't see crash line in your logs.

MTayyabSarfraz commented 2 years ago

@pedroSG94 plz look into following logs!!!

2021-12-14 15:51:37.482 22893-22893/com.pedro.rtpstreamer E/Parcel: Reading a NULL string not supported here.
2021-12-14 15:51:37.733 22893-23520/com.pedro.rtpstreamer E/OplusACodec: [GetVideoCodingTypeFromMime:L726] mime:video/avc
2021-12-14 15:51:37.799 22893-23508/com.pedro.rtpstreamer E/FMQ: grantorIdx must be less than 3
2021-12-14 15:51:37.799 22893-23508/com.pedro.rtpstreamer E/FMQ: grantorIdx must be less than 3
2021-12-14 15:51:37.804 22893-23508/com.pedro.rtpstreamer E/ion: ioctl c0044901 failed with code -1: Invalid argument
2021-12-14 15:51:37.807 22893-22893/com.pedro.rtpstreamer E/SurfaceManager: GL already released
2021-12-14 15:51:37.807 22893-22893/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:37.809 22893-22893/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:37.974 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 1
2021-12-14 15:51:38.069 22893-23508/com.pedro.rtpstreamer E/FMQ: grantorIdx must be less than 3
2021-12-14 15:51:38.077 22893-23514/com.pedro.rtpstreamer E/FMQ: grantorIdx must be less than 3
2021-12-14 15:51:38.988 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 32
2021-12-14 15:51:40.011 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:41.026 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:42.055 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 31
2021-12-14 15:51:43.061 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:44.077 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:45.089 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:45.620 22893-22893/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:45.620 22893-22893/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:46.102 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 23
2021-12-14 15:51:47.113 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:48.130 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:49.018 22893-22893/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:49.018 22893-22893/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:49.424 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 22
2021-12-14 15:51:50.471 22893-23841/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:50.475 22893-23841/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:50.476 22893-23841/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:50.534 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 31
2021-12-14 15:51:50.585 22893-22893/com.pedro.rtpstreamer E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
2021-12-14 15:51:50.585 22893-22893/com.pedro.rtpstreamer E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
2021-12-14 15:51:50.599 22893-23264/com.pedro.rtpstreamer E/Parcel: Reading a NULL string not supported here.
2021-12-14 15:51:51.573 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 31
2021-12-14 15:51:52.582 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:53.602 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 31
2021-12-14 15:51:54.605 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 29
2021-12-14 15:51:54.813 22893-22961/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:54.814 22893-22961/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:54.814 22893-22961/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:54.815 22893-22961/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:54.816 22893-22961/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:54.832 22893-22961/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:54.834 22893-22961/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:51:55.727 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.727 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.757 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.766 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.767 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.767 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.769 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.779 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.799 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.799 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.808 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.809 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.810 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.813 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.842 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:55.869 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 16
2021-12-14 15:51:56.113 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.115 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.117 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.118 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.119 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.120 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.121 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.124 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.125 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.126 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.127 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.146 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.194 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.280 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.280 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.287 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.288 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.289 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.289 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.291 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.292 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.295 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.305 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.350 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.363 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.388 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.408 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.414 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.417 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.417 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.426 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.432 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.439 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.444 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.446 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.446 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:56.464 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.498 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.518 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.542 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.573 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.608 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.646 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.686 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.731 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.749 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.788 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.824 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.858 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.881 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 24
2021-12-14 15:51:56.888 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.933 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.950 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:56.993 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.014 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.055 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.088 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.116 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.159 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.186 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.227 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.254 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.286 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.321 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.352 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.390 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.434 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.464 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.490 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.534 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.561 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.598 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.636 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.657 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.692 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.730 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.765 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.800 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.836 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.864 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.889 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:51:57.894 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.940 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:57.970 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.000 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.027 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.071 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.101 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.137 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.169 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.203 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.246 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.287 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.306 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.351 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.387 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.406 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.446 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.473 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.523 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.560 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.598 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.651 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.700 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.746 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.781 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.810 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.858 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.896 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 27
2021-12-14 15:51:58.915 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:58.951 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.114 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.159 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.218 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.260 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.290 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.319 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.354 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.396 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.440 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.494 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.518 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.535 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.584 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.618 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.675 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.705 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.730 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.751 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.806 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.838 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:51:59.878 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:59.879 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:59.885 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:59.886 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:59.911 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:59.914 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:59.956 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 23
2021-12-14 15:51:59.957 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:51:59.961 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.009 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:00.013 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:00.029 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.086 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.160 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.245 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:00.247 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:00.290 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.332 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.370 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.434 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.537 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.604 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.649 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.687 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.741 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.776 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.784 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.825 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.854 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.921 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.958 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:00.973 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 18
2021-12-14 15:52:00.981 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.019 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.047 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.078 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.106 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.148 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:01.150 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:01.210 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:01.300 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:01.300 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:01.301 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:01.303 22893-22961/com.pedro.rtpstreamer E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
2021-12-14 15:52:01.307 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.338 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.370 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.430 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.483 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.547 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.616 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.668 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.725 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.759 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.792 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.832 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.877 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.937 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.957 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:01.987 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 21
2021-12-14 15:52:02.000 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.048 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.064 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.109 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.124 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.168 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.212 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.249 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.273 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.309 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.340 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.368 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.407 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.430 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.465 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.513 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.535 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.574 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.600 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.621 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.660 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.685 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.721 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.769 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.799 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.837 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.875 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.894 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.925 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:02.970 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.000 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 30
2021-12-14 15:52:03.003 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.047 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.059 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.100 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.129 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.160 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.199 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.235 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.262 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.296 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.338 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.371 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.399 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.446 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.479 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.499 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.529 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.561 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.603 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.638 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.672 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.703 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.735 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.771 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.804 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.837 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.873 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.904 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.952 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:03.977 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:04.005 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:04.030 22893-23532/com.pedro.rtpstreamer E/Pedro: fps: 31
2021-12-14 15:52:04.043 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:04.077 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.
2021-12-14 15:52:04.102 22893-22961/com.pedro.rtpstreamer E/FrameEvents: updateAcquireFence: Did not find frame.

and after crash :

 2021-12-14 15:52:05.675 24331-24331/? E/dro.rtpstreame: Unknown bits set in runtime_flags: 0x40000000
2021-12-14 15:52:05.707 24331-24331/? E/RefClass: java.lang.reflect.InvocationTargetException
2021-12-14 15:52:05.675 24331-24331/? E/dro.rtpstreame: Unknown bits set in runtime_flags: 0x40000000
2021-12-14 15:52:05.707 24331-24331/? E/RefClass: java.lang.reflect.InvocationTargetException
2021-12-14 15:52:06.240 24331-24366/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:52:05.675 24331-24331/? E/dro.rtpstreame: Unknown bits set in runtime_flags: 0x40000000
2021-12-14 15:52:05.707 24331-24331/? E/RefClass: java.lang.reflect.InvocationTargetException
2021-12-14 15:52:06.492 24331-24331/com.pedro.rtpstreamer E/OplusCustomizeRestrictionManager: sInstance is null, start a new sInstance
2021-12-14 15:52:06.600 24331-24331/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:52:06.601 24331-24331/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:52:06.601 24331-24331/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:52:06.651 24331-24364/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:52:06.657 24331-24364/com.pedro.rtpstreamer E/Parcel: Reading a NULL string not supported here.
2021-12-14 15:52:06.657 24331-24364/com.pedro.rtpstreamer E/Parcel: Reading a NULL string not supported here.
2021-12-14 15:52:06.668 24331-24364/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:52:06.673 24331-24364/com.pedro.rtpstreamer E/libEGL: Invalid file path for libcolorx-loader.so
2021-12-14 15:52:06.732 24331-24364/com.pedro.rtpstreamer E/ion: ioctl c0044901 failed with code -1: Invalid argument
2021-12-14 15:52:06.935 24331-24331/com.pedro.rtpstreamer E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
2021-12-14 15:52:06.935 24331-24331/com.pedro.rtpstreamer E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

and the crash reason as logged in ANdroid Run catalog :

E/GPUAUX: [AUX]GuiExtAuxCheckAuxPath:593: Null anb
D/Surface: lockHardwareCanvas
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.pedro.rtpstreamer, PID: 22893
    java.lang.IllegalStateException: Recording currently in progress - missing #endRecording() call?
        at android.graphics.RenderNode.beginRecording(RenderNode.java:375)
        at android.view.View.updateDisplayListIfDirty(View.java:21547)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597)
        at android.view.View.updateDisplayListIfDirty(View.java:21528)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597)
        at android.view.View.updateDisplayListIfDirty(View.java:21528)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597)
        at android.view.View.updateDisplayListIfDirty(View.java:21528)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597)
        at android.view.View.updateDisplayListIfDirty(View.java:21528)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597)
        at android.view.View.updateDisplayListIfDirty(View.java:21528)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597)
        at android.view.View.updateDisplayListIfDirty(View.java:21528)
        at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4624)
        at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4597)
        at android.view.View.updateDisplayListIfDirty(View.java:21528)
        at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:559)
        at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:565)
        at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:642)
        at android.view.ViewRootImpl.draw(ViewRootImpl.java:4657)
        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4368)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3586)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2345)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9046)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1066)
        at android.view.Choreographer.doCallbacks(Choreographer.java:889)
        at android.view.Choreographer.doFrame(Choreographer.java:816)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1051)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:264)
        at android.app.ActivityThread.main(ActivityThread.java:8282)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
pedroSG94 commented 2 years ago

I still can't see AndroidViewFilterRender class line crash in that logs so I think that it crash in lockHardwareCanvas.

I did a commit with a catch in that line and logs to know the line crash. Compile last commit of that branch and share me logs please.

MTayyabSarfraz commented 2 years ago

@pedroSG94 I think it is not crashing at the point where you are looking at it.. it is somewhere else ... as don't see the crash log you just added in the latest commit before the app crashed. this is the last occurrence of logs printed before the crash... Screenshot (31)

pedroSG94 commented 2 years ago

This seems an internal crash that I'm not able to catch and I can't reproduce in my devices. I did another commit to render without a thread that maybe cause this problem.

Compile last commit and let me know if it is working for you. Also, check with other device to comfirm if it is a device specific problem or not.

MTayyabSarfraz commented 2 years ago

@pedroSG94 I've tested this issue on a few other devices... there seems no crash on them and performance is much smoother on low-end devices. though some time for long-running animation, it for few moments app has lagged.. but I think it is bearable for now...

@pedroSG94 thanks a lot for your consistent help.. have no words for your dedication ... Much Love and Respect :) 👍 <3

MTayyabSarfraz commented 2 years ago

This seems an internal crash that I'm not able to catch and I can't reproduce in my devices. I did another commit to render without a thread that maybe cause this problem.

Compile last commit and let me know if it is working for you. Also, check with other device to comfirm if it is a device specific problem or not.

can you please revertback that commit :)

pedroSG94 commented 2 years ago

This seems an internal crash that I'm not able to catch and I can't reproduce in my devices. I did another commit to render without a thread that maybe cause this problem. Compile last commit and let me know if it is working for you. Also, check with other device to comfirm if it is a device specific problem or not.

can you please revertback that commit :)

That commit was to know if the thread could be the problem in the device that crash. If you can comfirm me that it still crash I will revert that commit and add changes to master.

MTayyabSarfraz commented 2 years ago

That commit was to know if the thread could be the problem in the device that crash. If you can comfirm me that it still crash I will revert that commit and add changes to master.

@pedroSG94 bro .. it is not crashing on any of the devices I am testing. (Samsung A8 Tab, Poco X3 , RealMe 7 Pro and Nokia 3.4,Oppo f11)

pedroSG94 commented 2 years ago

That commit was to know if the thread could be the problem in the device that crash. If you can comfirm me that it still crash I will revert that commit and add changes to master.

@pedroSG94 bro .. it is not crashing on any of the devices I am testing. (Samsung A8 Tab, Poco X3 , RealMe 7 Pro and Nokia 3.4,Oppo f11)

I'm confused now. What was that then?:

@pedroSG94 I think it is not crashing at the point where you are looking at it.. it is somewhere else ... as don't see the crash log you just added in the latest commit before the app crashed. this is the last occurrence of logs printed before the crash... Screenshot (31)

I will create a commit with this modification (using thread as you said) and set lockHardwareCanvas as optional using a setter (enabled by default)

MTayyabSarfraz commented 2 years ago

@pedroSG94 bro...here are my findings!!

1- I've added your library as a module in my Original project... and had updated the AndroidViewRendererclass of encoder module with this branch's AndroidViewRenderer. And when I compiled and ran the apk... it is not crashing there.

2- By compiling build from this specific branch it is crashing for 1 device-(Oppo f11). its model and make are shared in the above comments, this device has some os issues as it is sometimes laggy while performing normal os operations like opening/closing WhatsApp or resuming an app from the background.

Note that this crash is occurring only on one testing device(oppo f11) amongst 5(Samsung A8 Tab, Poco X3 , RealMe 7 Pro, and Nokia 3.4).

Let me know if you need more logs or testing from my side! Thanks

MTayyabSarfraz commented 2 years ago

@pedroSG94 bro ...what are your thoughts on this issue!!

pedroSG94 commented 2 years ago

Added to master here: https://github.com/pedroSG94/rtmp-rtsp-stream-client-java/commit/812078d899d7d7491c81451164bf48d907dd6344