25huizengek1 / ViTune

An Android application for seamless music streaming
https://vitune.app
GNU General Public License v3.0
272 stars 14 forks source link

Less Fluidity when scrolling into radio playlist view #169

Open Enigma1309 opened 4 months ago

Enigma1309 commented 4 months ago

Steps to reproduce the bug

Continuation of https://github.com/25huizengek1/ViTune/issues/67#issuecomment-1951677164

Expected behavior

The list view should be fluid to open

Actual behavior

There is an annoying jitter/lag when opening playlist view

Screenshots/Screen recordings

few can be seen here

or here's some more precise recording

https://github.com/25huizengek1/ViTune/assets/94917588/1756ce2e-b1ab-4191-9bea-877009f24f49

Logs

No response

ViMusic version

0.6.7

What kind of build are you using?

Release (GitHub / F-Droid)

Android version

Android oreo 8.1

Device info

Motorola G4+

Upstream reproducibility

Nope Can be seen in footage

Additional information

I can see a little extra action when tapping the playlist view in this repo but not in the upstream (can be seen in video)

Checklist

Enigma1309 commented 4 months ago

I can see a little extra action when tapping the playlist view in this repo but not in the upstream (can be seen in video)

at timestamp 0:11 for This repo and at upstream at 0:20

25huizengek1 commented 4 months ago

It shouldn't be specific to radio playlists, but I'll look into it.

25huizengek1 commented 4 months ago

This should've done something already, but since I'm testing on a higher-end device than you I'm having trouble to recreate the lag, even using a debug build. I'll get back with you later.

Enigma1309 commented 4 months ago

i just build the app with the release flag and signed it using my keystrokes, it did installed and worked well as expected, but this behavior didn't stopped, it still feels laggy and , quite jittery to open

25huizengek1 commented 4 months ago

It's added in the rebrand branch. I also highly advise against building in release mode with your own keys, as that means you'll have to build every install of ViTune in release mode from that point on (Android doesn't allow mixing signing keys)

Enigma1309 commented 4 months ago

ohh sorry i forgot to mention that i was using the rebrand branch only.. i signed with my keys only to test the branch without debug tools, as unsigned app won't install

25huizengek1 commented 4 months ago

Oh I'm sorry, no problem then. It's strange. My Nothing Phone (2a) is not lagging at all, even the Samsung Galaxy A12 is keeping up. And while I can't blame it on your device, as the other fork clearly solves this issue, this means it becomes strangely difficult for me to find the source of the rendering issue. Compose's tools are not particularly helpful (I can't find unnecessary recompositions) either, so I'll have to keep digging in the source code to try and solve this... sigh

Enigma1309 commented 4 months ago

hmm i'm sorry if this finds difficulty for you, this issue can be solved anytime, but you shouldn't stress yourself for that..just treat this issue as an side hustle, i think there are a lot of other relatively easy issues too that are probably more important..anyways it's your app, you can take your time to fix them :D

dtomvan commented 3 months ago

First of all, me or @25huizengek1 cannot reproduce this. Second of all, your screen recording doesn't look any good. If you look at the footage the animation skips forward a lot in just a single video frame. This doesn't happen on any real hardware, though. The use of scrcpy is not any good for low-latency or very consistent output, as it happens over USB + adb. Thus, I'll close this as wontfix.

Enigma1309 commented 3 months ago

that isn't the valid reason to close,

he use of scrcpy is not any good for low-latency or very consistent output,

i agree ,but this stuff is happening on the real hardware, if you're closing this by justifying this as the frame skips, so may i ask why do the frame skips happen on the ViTune repo not on the official app?

the reason i recorded via adb was, that someone won't say that yOu're rEcOrdIng ThAt's WhY yOu're hAviNg a lAggG wait lemme screen record and attach it

https://github.com/25huizengek1/ViTune/assets/94917588/c16d3caa-5a5e-42a6-846c-1122d333048f

dtomvan commented 3 months ago

Yes, that is much clearer thank you. Now we have a reason to keep this open... I'm sorry if I upset you.

dtomvan commented 3 months ago

We still can't repro though, so I have to ask you to send some logcat of the latest app.vitune.android release build and we'll see where the issue lies. With just some visuals and the objective "go fix it" we can't do a lot.

dtomvan commented 3 months ago

Also one more thing:

the reason i recorded via adb was, that someone won't say that yOu're rEcOrdIng ThAt's WhY yOu're hAviNg a lAggG

Please, next time, when using scrcpy, use -r/--record. It does a proper recording of your screen, while correcting for any lag you have over your connection. In the documentation to scrcpy, it reads:

Timestamps are captured on the device, so packet delay variation does not impact the recorded file, which is always clean (only if you use --record of course, not if you capture your scrcpy window and audio output on the computer).

Enigma1309 commented 3 months ago

I'm sorry if I upset you.

nah it's okay it was kinda my fault..nvm

when using scrcpy, use -r/--record. It does a proper recording of your screen

thanks for the tip i'll try to do that from next time itself

send some logcat of the latest app.vitune.android release build

okay

❯ adb logcat --pid=`adb shell pidof -s app.vitune.android`
--------- beginning of system
04-10 21:00:04.360  9668  9668 E SchedPolicy: open of /dev/cpuctl/bg_non_interactive/tasks failed: No such file or directory
--------- beginning of main
04-10 22:35:01.778  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24577949918899 < limitNs: 24603285917266 < mStartNs: 24603365917266
04-10 22:35:01.788  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24577949918899 < limitNs: 24603285917266 < mStartNs: 24603365917266
04-10 22:35:01.808  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24577949918899 < limitNs: 24603285917266 < mStartNs: 24603365917266
04-10 22:35:01.818  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24577949918899 < limitNs: 24603285917266 < mStartNs: 24603365917266
04-10 22:35:01.839  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24577949918899 < limitNs: 24603285917266 < mStartNs: 24603365917266
04-10 22:35:01.849  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24577949918899 < limitNs: 24603285917266 < mStartNs: 24603365917266
04-10 22:35:01.871  9668 14815 W AudioTrack: getTimestamp() location moved from kernel to server
04-10 22:36:21.368  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24668631366737 < limitNs: 24682876760143 < mStartNs: 24682956760143
04-10 22:36:21.378  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24668631366737 < limitNs: 24682876760143 < mStartNs: 24682956760143
04-10 22:36:21.388  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24668631366737 < limitNs: 24682876760143 < mStartNs: 24682956760143
04-10 22:36:21.400  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24668631366737 < limitNs: 24682876760143 < mStartNs: 24682956760143
04-10 22:36:21.420  9668 14815 I chatty  : uid=10747(app.vitune.android) identical 3 lines
04-10 22:36:21.430  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24668631366737 < limitNs: 24682876760143 < mStartNs: 24682956760143
04-10 22:36:21.450  9668 14815 W AudioTrack: getTimestamp() location moved from kernel to server
04-10 22:36:22.524  9668  9668 I Choreographer: Skipped 34 frames!  The application may be doing too much work on its main thread.
04-10 22:36:35.949  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24683731162043 < limitNs: 24697458355398 < mStartNs: 24697538355398
04-10 22:36:35.960  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24683731162043 < limitNs: 24697458355398 < mStartNs: 24697538355398
04-10 22:36:35.972  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24683731162043 < limitNs: 24697458355398 < mStartNs: 24697538355398
04-10 22:36:35.989  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24683731162043 < limitNs: 24697458355398 < mStartNs: 24697538355398
04-10 22:36:36.021  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24683731162043 < limitNs: 24697458355398 < mStartNs: 24697538355398
04-10 22:36:36.040  9668 14815 W AudioTrack: getTimestamp() location moved from kernel to server
04-10 22:36:55.132  9668 14815 I MediaCodec: (0x8e497800) release
04-10 22:36:55.142  9668 14815 I MediaCodec: name=OMX.google.opus.decoder isType=false encoder=false
04-10 22:36:55.143  9668 14815 I MediaCodec: (0x8e497800) init name(OMX.google.opus.decoder) isType(0) encoder(0)
04-10 22:36:55.148  9668 16142 I MediaCodec: (0x8e497800) Component Allocated (OMX.google.opus.decoder)
04-10 22:36:55.149  9668 14815 I MediaCodec: (0x8e497800) configure surface(0x0) crypto(0x0) flags(0)
04-10 22:36:55.149  9668 14815 D MediaCodec: (0x8e497800) configure format: AMessage(what = 0x00000000) = {
04-10 22:36:55.149  9668 14815 D MediaCodec:       Buffer csd-1 = {
04-10 22:36:55.149  9668 14815 D MediaCodec:         00000000:  a0 2e 63 00 00 00 00 00                           ..c.....
04-10 22:36:55.149  9668 14815 D MediaCodec:       }
04-10 22:36:55.149  9668 14815 D MediaCodec:       float operating-rate = 48000.000000
04-10 22:36:55.149  9668 14815 D MediaCodec:       Buffer csd-2 = {
04-10 22:36:55.149  9668 14815 D MediaCodec:         00000000:  00 b4 c4 04 00 00 00 00                           ........
04-10 22:36:55.149  9668 14815 D MediaCodec:       }
04-10 22:36:55.149  9668 14815 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:36:55.149  9668 14815 D MediaCodec:       string mime = "audio/opus"
04-10 22:36:55.149  9668 14815 D MediaCodec:       int32_t channel-count = 2
04-10 22:36:55.149  9668 14815 D MediaCodec:       int32_t priority = 0
04-10 22:36:55.149  9668 14815 D MediaCodec:       int32_t max-input-size = 5760
04-10 22:36:55.149  9668 14815 D MediaCodec:       Buffer csd-0 = {
04-10 22:36:55.149  9668 14815 D MediaCodec:         00000000:  4f 70 75 73 48 65 61 64  01 02 38 01 80 bb 00 00  OpusHead..8.....
04-10 22:36:55.149  9668 14815 D MediaCodec:         00000010:  00 00 00                                          ...
04-10 22:36:55.149  9668 14815 D MediaCodec:       }
04-10 22:36:55.149  9668 14815 D MediaCodec:     }
04-10 22:36:55.150  9668 16142 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:36:55.151  9668 16142 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:36:55.151  9668 16142 I ACodec  : codec does not support config operating rate (err -2147483648)
04-10 22:36:55.153  9668 16142 W ExtendedACodec: Failed to get extension for extradata parameter
04-10 22:36:55.154  9668 14815 I MediaCodec: (0x8e497800) start
04-10 22:36:55.159  9668 16142 I MediaCodec: (0x8e497800) kWhatStartCompleted
04-10 22:36:55.172  9668 16142 D MediaCodec: (0x8e497800) kWhatOutputBuffersChanged
04-10 22:36:55.172  9668 16142 D MediaCodec: (0x8e497800) [OMX.google.opus.decoder] output format changed to: AMessage(what = 0x00000000) = {
04-10 22:36:55.172  9668 16142 D MediaCodec:       string mime = "audio/raw"
04-10 22:36:55.172  9668 16142 D MediaCodec:       int32_t channel-count = 2
04-10 22:36:55.172  9668 16142 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:36:55.172  9668 16142 D MediaCodec:       int32_t pcm-encoding = 2
04-10 22:36:55.172  9668 16142 D MediaCodec:     }
04-10 22:37:14.709  9668 14815 I MediaCodec: (0x8e497800) flush
04-10 22:37:15.151  9668  9678 I zygote  : Background concurrent copying GC freed 78101(3MB) AllocSpace objects, 23(824KB) LOS objects, 49% free, 13MB/27MB, paused 251us total 212.837ms
04-10 22:37:15.331  9668 14815 I MediaCodec: (0x8e497800) flush
04-10 22:37:15.337  9668 14815 I MediaCodec: (0x8e497800) release
04-10 22:37:15.355  9668 14815 I MediaCodec: name=OMX.google.opus.decoder isType=false encoder=false
04-10 22:37:15.358  9668 14815 I MediaCodec: (0x8e497800) init name(OMX.google.opus.decoder) isType(0) encoder(0)
04-10 22:37:15.366  9668 16170 I MediaCodec: (0x8e497800) Component Allocated (OMX.google.opus.decoder)
04-10 22:37:15.366  9668 14815 I MediaCodec: (0x8e497800) configure surface(0x0) crypto(0x0) flags(0)
04-10 22:37:15.367  9668 14815 D MediaCodec: (0x8e497800) configure format: AMessage(what = 0x00000000) = {
04-10 22:37:15.367  9668 14815 D MediaCodec:       Buffer csd-1 = {
04-10 22:37:15.367  9668 14815 D MediaCodec:         00000000:  a0 2e 63 00 00 00 00 00                           ..c.....
04-10 22:37:15.367  9668 14815 D MediaCodec:       }
04-10 22:37:15.367  9668 14815 D MediaCodec:       float operating-rate = 48000.000000
04-10 22:37:15.367  9668 14815 D MediaCodec:       Buffer csd-2 = {
04-10 22:37:15.367  9668 14815 D MediaCodec:         00000000:  00 b4 c4 04 00 00 00 00                           ........
04-10 22:37:15.367  9668 14815 D MediaCodec:       }
04-10 22:37:15.367  9668 14815 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:37:15.367  9668 14815 D MediaCodec:       string mime = "audio/opus"
04-10 22:37:15.367  9668 14815 D MediaCodec:       int32_t channel-count = 2
04-10 22:37:15.367  9668 14815 D MediaCodec:       int32_t priority = 0
04-10 22:37:15.367  9668 14815 D MediaCodec:       int32_t max-input-size = 5760
04-10 22:37:15.367  9668 14815 D MediaCodec:       Buffer csd-0 = {
04-10 22:37:15.367  9668 14815 D MediaCodec:         00000000:  4f 70 75 73 48 65 61 64  01 02 38 01 80 bb 00 00  OpusHead..8.....
04-10 22:37:15.367  9668 14815 D MediaCodec:         00000010:  00 00 00                                          ...
04-10 22:37:15.367  9668 14815 D MediaCodec:       }
04-10 22:37:15.367  9668 14815 D MediaCodec:     }
04-10 22:37:15.369  9668 16170 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:37:15.371  9668 16170 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:37:15.371  9668 16170 I ACodec  : codec does not support config operating rate (err -2147483648)
04-10 22:37:15.375  9668 16170 W ExtendedACodec: Failed to get extension for extradata parameter
04-10 22:37:15.375  9668 14815 I MediaCodec: (0x8e497800) start
04-10 22:37:15.381  9668 16170 I MediaCodec: (0x8e497800) kWhatStartCompleted
04-10 22:37:15.398  9668 16170 D MediaCodec: (0x8e497800) kWhatOutputBuffersChanged
04-10 22:37:15.399  9668 16170 D MediaCodec: (0x8e497800) [OMX.google.opus.decoder] output format changed to: AMessage(what = 0x00000000) = {
04-10 22:37:15.399  9668 16170 D MediaCodec:       string mime = "audio/raw"
04-10 22:37:15.399  9668 16170 D MediaCodec:       int32_t channel-count = 2
04-10 22:37:15.399  9668 16170 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:37:15.399  9668 16170 D MediaCodec:       int32_t pcm-encoding = 2
04-10 22:37:15.399  9668 16170 D MediaCodec:     }
04-10 22:37:15.411  9668 14815 D AudioTrack: Client defaulted notificationFrames to 6000 for frameCount 12000
04-10 22:37:15.666  9668 14815 I MediaCodec: (0x8e497800) flush
04-10 22:37:15.723  9668 14815 I MediaCodec: (0x8e497800) flush
04-10 22:37:15.731  9668 14815 I MediaCodec: (0x8e497800) release
04-10 22:37:15.749  9668 14815 I MediaCodec: name=OMX.google.opus.decoder isType=false encoder=false
04-10 22:37:15.754  9668 14815 I MediaCodec: (0x8e497800) init name(OMX.google.opus.decoder) isType(0) encoder(0)
04-10 22:37:15.765  9668 16178 I MediaCodec: (0x8e497800) Component Allocated (OMX.google.opus.decoder)
04-10 22:37:15.766  9668 14815 I MediaCodec: (0x8e497800) configure surface(0x0) crypto(0x0) flags(0)
04-10 22:37:15.766  9668 14815 D MediaCodec: (0x8e497800) configure format: AMessage(what = 0x00000000) = {
04-10 22:37:15.766  9668 14815 D MediaCodec:       Buffer csd-1 = {
04-10 22:37:15.766  9668 14815 D MediaCodec:         00000000:  a0 2e 63 00 00 00 00 00                           ..c.....
04-10 22:37:15.766  9668 14815 D MediaCodec:       }
04-10 22:37:15.766  9668 14815 D MediaCodec:       float operating-rate = 48000.000000
04-10 22:37:15.766  9668 14815 D MediaCodec:       Buffer csd-2 = {
04-10 22:37:15.766  9668 14815 D MediaCodec:         00000000:  00 b4 c4 04 00 00 00 00                           ........
04-10 22:37:15.766  9668 14815 D MediaCodec:       }
04-10 22:37:15.766  9668 14815 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:37:15.766  9668 14815 D MediaCodec:       string mime = "audio/opus"
04-10 22:37:15.766  9668 14815 D MediaCodec:       int32_t channel-count = 2
04-10 22:37:15.766  9668 14815 D MediaCodec:       int32_t priority = 0
04-10 22:37:15.766  9668 14815 D MediaCodec:       int32_t max-input-size = 5760
04-10 22:37:15.766  9668 14815 D MediaCodec:       Buffer csd-0 = {
04-10 22:37:15.766  9668 14815 D MediaCodec:         00000000:  4f 70 75 73 48 65 61 64  01 02 38 01 80 bb 00 00  OpusHead..8.....
04-10 22:37:15.766  9668 14815 D MediaCodec:         00000010:  00 00 00                                          ...
04-10 22:37:15.766  9668 14815 D MediaCodec:       }
04-10 22:37:15.766  9668 14815 D MediaCodec:     }
04-10 22:37:15.767  9668 16178 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:37:15.771  9668 16178 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:37:15.771  9668 16178 I ACodec  : codec does not support config operating rate (err -2147483648)
04-10 22:37:15.777  9668 16178 W ExtendedACodec: Failed to get extension for extradata parameter
04-10 22:37:15.777  9668 14815 I MediaCodec: (0x8e497800) start
04-10 22:37:15.797  9668 16178 I MediaCodec: (0x8e497800) kWhatStartCompleted
04-10 22:37:15.820  9668 16178 D MediaCodec: (0x8e497800) kWhatOutputBuffersChanged
04-10 22:37:15.820  9668 16178 D MediaCodec: (0x8e497800) [OMX.google.opus.decoder] output format changed to: AMessage(what = 0x00000000) = {
04-10 22:37:15.820  9668 16178 D MediaCodec:       string mime = "audio/raw"
04-10 22:37:15.820  9668 16178 D MediaCodec:       int32_t channel-count = 2
04-10 22:37:15.820  9668 16178 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:37:15.820  9668 16178 D MediaCodec:       int32_t pcm-encoding = 2
04-10 22:37:15.820  9668 16178 D MediaCodec:     }
04-10 22:37:15.838  9668 14815 D AudioTrack: Client defaulted notificationFrames to 6000 for frameCount 12000
04-10 22:37:28.828  9668  9678 I zygote  : Background concurrent copying GC freed 379370(11MB) AllocSpace objects, 76(2MB) LOS objects, 50% free, 15MB/31MB, paused 409us total 280.558ms
04-10 22:37:35.754  9668  9678 I zygote  : Background concurrent copying GC freed 423117(13MB) AllocSpace objects, 114(2MB) LOS objects, 49% free, 16MB/32MB, paused 331us total 259.456ms
04-10 22:37:37.461  9668  9668 W IInputConnectionWrapper: requestCursorAnchorInfo on inactive InputConnection
04-10 22:37:42.366  9668 14815 I MediaCodec: (0x8e497800) flush
04-10 22:37:42.431  9668 14815 I MediaCodec: (0x8e497800) flush
04-10 22:37:42.435  9668 14815 I MediaCodec: (0x8e497800) release
04-10 22:37:42.451  9668 14815 I MediaCodec: name=OMX.google.opus.decoder isType=false encoder=false
04-10 22:37:42.453  9668 14815 I MediaCodec: (0x8e497800) init name(OMX.google.opus.decoder) isType(0) encoder(0)
04-10 22:37:42.485  9668 16354 I MediaCodec: (0x8e497800) Component Allocated (OMX.google.opus.decoder)
04-10 22:37:42.485  9668 14815 I MediaCodec: (0x8e497800) configure surface(0x0) crypto(0x0) flags(0)
04-10 22:37:42.486  9668 14815 D MediaCodec: (0x8e497800) configure format: AMessage(what = 0x00000000) = {
04-10 22:37:42.486  9668 14815 D MediaCodec:       Buffer csd-1 = {
04-10 22:37:42.486  9668 14815 D MediaCodec:         00000000:  a0 2e 63 00 00 00 00 00                           ..c.....
04-10 22:37:42.486  9668 14815 D MediaCodec:       }
04-10 22:37:42.486  9668 14815 D MediaCodec:       float operating-rate = 48000.000000
04-10 22:37:42.486  9668 14815 D MediaCodec:       Buffer csd-2 = {
04-10 22:37:42.486  9668 14815 D MediaCodec:         00000000:  00 b4 c4 04 00 00 00 00                           ........
04-10 22:37:42.486  9668 14815 D MediaCodec:       }
04-10 22:37:42.486  9668 14815 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:37:42.486  9668 14815 D MediaCodec:       string mime = "audio/opus"
04-10 22:37:42.486  9668 14815 D MediaCodec:       int32_t channel-count = 2
04-10 22:37:42.486  9668 14815 D MediaCodec:       int32_t priority = 0
04-10 22:37:42.486  9668 14815 D MediaCodec:       int32_t max-input-size = 5760
04-10 22:37:42.486  9668 14815 D MediaCodec:       Buffer csd-0 = {
04-10 22:37:42.486  9668 14815 D MediaCodec:         00000000:  4f 70 75 73 48 65 61 64  01 02 38 01 80 bb 00 00  OpusHead..8.....
04-10 22:37:42.486  9668 14815 D MediaCodec:         00000010:  00 00 00                                          ...
04-10 22:37:42.486  9668 14815 D MediaCodec:       }
04-10 22:37:42.486  9668 14815 D MediaCodec:     }
04-10 22:37:42.487  9668 16354 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:37:42.487  9668 16354 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:37:42.488  9668 16354 I ACodec  : codec does not support config operating rate (err -2147483648)
04-10 22:37:42.489  9668 16354 W ExtendedACodec: Failed to get extension for extradata parameter
04-10 22:37:42.490  9668 14815 I MediaCodec: (0x8e497800) start
04-10 22:37:42.495  9668 16354 I MediaCodec: (0x8e497800) kWhatStartCompleted
04-10 22:37:42.511  9668 16354 D MediaCodec: (0x8e497800) kWhatOutputBuffersChanged
04-10 22:37:42.513  9668 16354 D MediaCodec: (0x8e497800) [OMX.google.opus.decoder] output format changed to: AMessage(what = 0x00000000) = {
04-10 22:37:42.513  9668 16354 D MediaCodec:       string mime = "audio/raw"
04-10 22:37:42.513  9668 16354 D MediaCodec:       int32_t channel-count = 2
04-10 22:37:42.513  9668 16354 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:37:42.513  9668 16354 D MediaCodec:       int32_t pcm-encoding = 2
04-10 22:37:42.513  9668 16354 D MediaCodec:     }
04-10 22:37:42.520  9668 14815 D AudioTrack: Client defaulted notificationFrames to 6000 for frameCount 12000
04-10 22:37:44.453  9668  9668 W IInputConnectionWrapper: requestCursorAnchorInfo on inactive InputConnection
04-10 22:37:44.489  9668  9668 W IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
04-10 22:37:44.499  9668  9668 W IInputConnectionWrapper: getTextAfterCursor on inactive InputConnection
04-10 22:37:44.524  9668  9668 W IInputConnectionWrapper: getSelectedText on inactive InputConnection
04-10 22:37:44.600  9668  9668 W IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
04-10 22:37:44.639  9668  9668 W IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
04-10 22:37:44.657  9668  9668 W IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
04-10 22:37:44.681  9668  9668 W IInputConnectionWrapper: requestCursorAnchorInfo on inactive InputConnection
04-10 22:37:45.147  9668  9668 W IInputConnectionWrapper: requestCursorAnchorInfo on inactive InputConnection
04-10 22:37:52.130  9668  9678 I zygote  : Background concurrent copying GC freed 457987(14MB) AllocSpace objects, 57(2MB) LOS objects, 49% free, 15MB/31MB, paused 151us total 244.933ms
04-10 22:38:53.331  9668  9678 I zygote  : Background concurrent copying GC freed 633586(17MB) AllocSpace objects, 8(252KB) LOS objects, 50% free, 14MB/28MB, paused 207us total 259.101ms
04-10 22:39:51.820  9668  9678 I zygote  : Background concurrent copying GC freed 469633(13MB) AllocSpace objects, 14(296KB) LOS objects, 49% free, 14MB/29MB, paused 218us total 233.988ms
04-10 22:40:23.004  9668 14815 I MediaCodec: (0x8e497800) flush
04-10 22:40:23.057  9668 14815 D AudioTrack: Client defaulted notificationFrames to 6000 for frameCount 12000
04-10 22:40:35.076  9668  9678 I zygote  : Background concurrent copying GC freed 498728(13MB) AllocSpace objects, 5(228KB) LOS objects, 49% free, 15MB/30MB, paused 202us total 240.551ms
04-10 22:40:55.912  9668  9678 I zygote  : Background concurrent copying GC freed 575403(15MB) AllocSpace objects, 0(0B) LOS objects, 49% free, 14MB/29MB, paused 302us total 225.141ms
04-10 22:41:11.696  9668  9678 I zygote  : Background concurrent copying GC freed 488600(13MB) AllocSpace objects, 0(0B) LOS objects, 49% free, 16MB/33MB, paused 237us total 255.707ms
04-10 22:41:14.571  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24970723011726 < limitNs: 24976081038154 < mStartNs: 24976161038154
04-10 22:41:14.582  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24970723011726 < limitNs: 24976081038154 < mStartNs: 24976161038154
04-10 22:41:14.592  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24970723011726 < limitNs: 24976081038154 < mStartNs: 24976161038154
04-10 22:41:14.602  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24970723011726 < limitNs: 24976081038154 < mStartNs: 24976161038154
04-10 22:41:14.612  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24970723011726 < limitNs: 24976081038154 < mStartNs: 24976161038154
04-10 22:41:14.632  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24970723011726 < limitNs: 24976081038154 < mStartNs: 24976161038154
04-10 22:41:14.642  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24970723011726 < limitNs: 24976081038154 < mStartNs: 24976161038154
04-10 22:41:14.653  9668 14815 W AudioTrack: getTimestamp() location moved from kernel to server
04-10 22:41:18.005  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24977255160033 < limitNs: 24979512603339 < mStartNs: 24979592603339
04-10 22:41:18.015  9668 14815 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 24977255160033 < limitNs: 24979512603339 < mStartNs: 24979592603339
04-10 22:41:26.219  9668  9678 I zygote  : Background concurrent copying GC freed 543462(16MB) AllocSpace objects, 0(0B) LOS objects, 49% free, 17MB/34MB, paused 298us total 246.852ms
04-10 22:41:30.335  9668 14815 I MediaCodec: (0x8e497800) flush
04-10 22:41:34.248  9668  9668 I ExoPlayerImpl: Release cc874b8 [AndroidXMedia3/1.3.0] [athene_f, Moto G (4), motorola, 27] [media3.common, media3.database, media3.exoplayer, media3.decoder, media3.datasource, media3.extractor]
04-10 22:41:34.249  9668 14815 I MediaCodec: (0x8e497800) release
04-10 22:41:54.718  9668  9668 D Compose Focus: Owner FocusChanged(true)
04-10 22:41:54.731  9668  9668 I ExoPlayerImpl: Init 3fc271c [AndroidXMedia3/1.3.0] [athene_f, Moto G (4), motorola, 27]
04-10 22:41:55.124  9668  9678 I zygote  : Background concurrent copying GC freed 21529(1870KB) AllocSpace objects, 1(24KB) LOS objects, 49% free, 13MB/26MB, paused 438us total 272.801ms
04-10 22:42:14.280  9668  9678 I zygote  : Background concurrent copying GC freed 386783(11MB) AllocSpace objects, 58(1248KB) LOS objects, 50% free, 13MB/27MB, paused 363us total 250.834ms
04-10 22:42:16.684  9668 16689 I MediaCodec: name=OMX.google.opus.decoder isType=false encoder=false
04-10 22:42:16.688  9668 16689 I MediaCodec: (0x81c3bd80) init name(OMX.google.opus.decoder) isType(0) encoder(0)
04-10 22:42:16.729  9668 16755 I MediaCodec: (0x81c3bd80) Component Allocated (OMX.google.opus.decoder)
04-10 22:42:16.729  9668 16689 I MediaCodec: (0x81c3bd80) configure surface(0x0) crypto(0x0) flags(0)
04-10 22:42:16.730  9668 16689 D MediaCodec: (0x81c3bd80) configure format: AMessage(what = 0x00000000) = {
04-10 22:42:16.730  9668 16689 D MediaCodec:       Buffer csd-1 = {
04-10 22:42:16.730  9668 16689 D MediaCodec:         00000000:  a0 2e 63 00 00 00 00 00                           ..c.....
04-10 22:42:16.730  9668 16689 D MediaCodec:       }
04-10 22:42:16.730  9668 16689 D MediaCodec:       float operating-rate = 48000.000000
04-10 22:42:16.730  9668 16689 D MediaCodec:       Buffer csd-2 = {
04-10 22:42:16.730  9668 16689 D MediaCodec:         00000000:  00 b4 c4 04 00 00 00 00                           ........
04-10 22:42:16.730  9668 16689 D MediaCodec:       }
04-10 22:42:16.730  9668 16689 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:42:16.730  9668 16689 D MediaCodec:       string mime = "audio/opus"
04-10 22:42:16.730  9668 16689 D MediaCodec:       int32_t channel-count = 2
04-10 22:42:16.730  9668 16689 D MediaCodec:       int32_t priority = 0
04-10 22:42:16.730  9668 16689 D MediaCodec:       int32_t max-input-size = 5760
04-10 22:42:16.730  9668 16689 D MediaCodec:       Buffer csd-0 = {
04-10 22:42:16.730  9668 16689 D MediaCodec:         00000000:  4f 70 75 73 48 65 61 64  01 02 38 01 80 bb 00 00  OpusHead..8.....
04-10 22:42:16.730  9668 16689 D MediaCodec:         00000010:  00 00 00                                          ...
04-10 22:42:16.730  9668 16689 D MediaCodec:       }
04-10 22:42:16.730  9668 16689 D MediaCodec:     }
04-10 22:42:16.730  9668 16755 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:42:16.731  9668 16755 I ACodec  : codec does not support config priority (err -2147483648)
04-10 22:42:16.731  9668 16755 I ACodec  : codec does not support config operating rate (err -2147483648)
04-10 22:42:16.733  9668 16755 W ExtendedACodec: Failed to get extension for extradata parameter
04-10 22:42:16.733  9668 16689 I MediaCodec: (0x81c3bd80) start
04-10 22:42:16.740  9668 16755 I MediaCodec: (0x81c3bd80) kWhatStartCompleted
04-10 22:42:16.787  9668 16755 D MediaCodec: (0x81c3bd80) kWhatOutputBuffersChanged
04-10 22:42:16.791  9668 16755 D MediaCodec: (0x81c3bd80) [OMX.google.opus.decoder] output format changed to: AMessage(what = 0x00000000) = {
04-10 22:42:16.791  9668 16755 D MediaCodec:       string mime = "audio/raw"
04-10 22:42:16.791  9668 16755 D MediaCodec:       int32_t channel-count = 2
04-10 22:42:16.791  9668 16755 D MediaCodec:       int32_t sample-rate = 48000
04-10 22:42:16.791  9668 16755 D MediaCodec:       int32_t pcm-encoding = 2
04-10 22:42:16.791  9668 16755 D MediaCodec:     }
04-10 22:42:16.818  9668 16689 D AudioTrack: Client defaulted notificationFrames to 6000 for frameCount 12000
04-10 22:42:22.238  9668  9678 I zygote  : Background concurrent copying GC freed 303666(10MB) AllocSpace objects, 20(588KB) LOS objects, 50% free, 17MB/34MB, paused 337us total 315.955ms
04-10 22:42:24.652  9668 16689 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 25045521778813 < limitNs: 25046156801228 < mStartNs: 25046236801228
04-10 22:42:30.319  9668 16689 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 25047041789173 < limitNs: 25051826522053 < mStartNs: 25051906522053
04-10 22:42:30.329  9668 16689 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 25047041789173 < limitNs: 25051826522053 < mStartNs: 25051906522053
04-10 22:42:30.340  9668 16689 I chatty  : uid=10747(app.vitune.android) ExoPlayer:Playb identical 1 line
04-10 22:42:30.350  9668 16689 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 25047041789173 < limitNs: 25051826522053 < mStartNs: 25051906522053
04-10 22:42:30.360  9668 16689 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 25047041789173 < limitNs: 25051826522053 < mStartNs: 25051906522053
04-10 22:42:30.381  9668 16689 I chatty  : uid=10747(app.vitune.android) ExoPlayer:Playb identical 2 lines
04-10 22:42:30.393  9668 16689 D AudioTrack: correcting timestamp time for pause, currentTimeNanos: 25047041789173 < limitNs: 25051826522053 < mStartNs: 25051906522053
04-10 22:42:30.411  9668 16689 W AudioTrack: getTimestamp() location moved from kernel to server
04-10 22:42:30.726  9668  9678 I zygote  : Background concurrent copying GC freed 471517(15MB) AllocSpace objects, 4(80KB) LOS objects, 50% free, 19MB/39MB, paused 182us total 367.880ms

i've tried opening the app and playing and pausing the music , this did bumped some logs; but while scrolling opening the queue it did't bumped any logs...

dtomvan commented 3 months ago

Correct. These logs don't seem as useful. Is there no GL Surface Renderer log? Seems like there's no lead for any rendering jank except for simply a CPU-bound system.

Enigma1309 commented 3 months ago

i just tried the oldest version of this repo(ViMusic v0.5.5) but the problem still exist, does it mean it's an ui bug caused by the new interface?

25huizengek1 commented 1 month ago

@Enigma1309 In the meantime, a lot of optimizations happened. Could you please retry in the latest nightly?

Enigma1309 commented 1 month ago

a little bit of improvement but still far from the intended behavior.. should i screen record and post?

25huizengek1 commented 1 month ago

I guess that works? I noticed a lot of jank could be introduced just because of multiple animations that happen while opening the queue, so I tried to optimize it a bit, but on low refresh rate it could look like lag IMO, and on lower-end devices it sure lags, because rendering animations are not that cheap.