Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Player fixes #1789

Open
wants to merge 19 commits into
base: dev
Choose a base branch
from
Open

Player fixes #1789

wants to merge 19 commits into from

Conversation

gechoto
Copy link
Contributor

@gechoto gechoto commented Jan 5, 2025

Should fix #1748 #1781 #1775 #1770 #1758 #1764 #1760 #1757 #1787 #1788 #1790

This supersedes #1774 with additional improvements.

Compared to the previous PR this adds:

  • fixes for metadata (normalization works again)
  • support for premium formats (better audio quality for logged in users with a premium account)
  • a better client fallback system and streaming url status checks so playback is more likely to work
  • a fix to prevent using expired urls from songUrlCache

Current test build:
https://github.com/z-huang/InnerTune/actions/runs/12721306256/artifacts/2416374758

Copy link

gitguardian bot commented Jan 5, 2025

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

Since your pull request originates from a forked repository, GitGuardian is not able to associate the secrets uncovered with secret incidents on your GitGuardian dashboard.
Skipping this check run and merging your pull request will create secret incidents on your GitGuardian dashboard.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
14305798 Triggered Google API Key 2a9007f innertube/src/main/java/com/zionhuang/innertube/models/YouTubeClient.kt View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@gechoto
Copy link
Contributor Author

gechoto commented Jan 5, 2025

@z-huang can you have a look?
Many users are waiting for the next release because the latest one is broken.
Would be happy to get this done and get the app back up working again.

There is one last thing I'm not sure about. The http clients in NewPipeDownloaderImpl and YTPlayerUtils do not use the proxy yet. But I wonder if it is even worth keeping the proxy since YT usually blocks most datacenter IPs now.

What do you think? Should the proxy be removed?
If it will be kept how should it be used in NewPipeDownloaderImpl and YTPlayerUtils?

@gechoto gechoto mentioned this pull request Jan 5, 2025
4 tasks
@PSJahn
Copy link

PSJahn commented Jan 6, 2025

The crashing after logging in seems to be fixed in the latest commit build! (However, the youtube music webpage is opened after logging in successfully, it would maybe be better if it exited out of the login prompt automatically, after logging in successfully)
The second issue which I was facing, with the app closing itself if not connected to the internet also seems to be fixed for me!
Hope this gets merged soon!

EDIT: Playing songs, as well as downloading, also works of course!

@MLGHerobrine
Copy link

MLGHerobrine commented Jan 7, 2025

Works great! Only issue is increased startup time and decreased UI performance on a lower end device like mine (Cat S22 Flip).

It takes about 10-15 seconds for my phone to start it up, and then the UI renders slowly (5-10 FPS when scrolling)

@thornySoap
Copy link

It takes about 10-15 seconds for my phone to start it up, and then the UI renders slowly (5-10 FPS when scrolling)

@MLGHerobrine if you used the link to download the debug version, that is normal. I haven't tested but I assume that when building the release APK, performance should be as usual.

@gechoto
Copy link
Contributor Author

gechoto commented Jan 9, 2025

Proxy support is now also added. Turns out it wasn't hard because the proxy is only applied on app start. This means if you change the proxy settings you will have to fully close and restart the app. That was already the case before and just made adding the proxy to the new http clients easier.

@Figim
Copy link

Figim commented Jan 10, 2025

This video won't play or download when you sign in. I have selected "high" for audio quality and it shows mp4 in the details:

https://music.youtube.com/watch?v=wxHRqPtWHOU

Screenshot_20250110-131915_InnerTune Debug
Screenshot_20250110-131911_InnerTune Debug

@gechoto
Copy link
Contributor Author

gechoto commented Jan 10, 2025

This video won't play or download when you sign in.

@Figim Please follow these steps:

1.) Clear app data (full reset without restoring a backup)
2.) Try to play the song again (without login at this point) - LEAVE A COMMENT HERE IF IT WORKS
3.) Clear app data again (full reset without restoring a backup) - YES A SECOND TIME
4.) Login in within InnerTune
5.) Try to play the songs again - LEAVE A COMMENT HERE IF IT WORKS

I have selected "high" for audio quality and it shows mp4 in the details

This PR does not change anything about the code which chooses the format.

"high" in InnerTune just means the format with the highest bitrate (for you).
It has a slight preference for opus but only to some extent so you can still get other formats in some cases.

This could be improved in the future but for now you get the same formats as with older InnerTune versions.

@Figim
Copy link

Figim commented Jan 10, 2025

This video won't play or download when you sign in.

@Figim Please follow these steps:

1.) Clear app data (full reset without restoring a backup) 2.) Try to play the song again (without login at this point) - LEAVE A COMMENT HERE IF IT WORKS 3.) Clear app data again (full reset without restoring a backup) - YES A SECOND TIME 4.) Login in within InnerTune 5.) Try to play the songs again - LEAVE A COMMENT HERE IF IT WORKS

I have selected "high" for audio quality and it shows mp4 in the details

This PR does not change anything about the code which chooses the format.

"high" in InnerTune just means the format with the highest bitrate (for you). It has a slight preference for opus but only to some extent so you can still get other formats in some cases.

This could be improved in the future but for now you get the same formats as with older InnerTune versions.

2. Playing this video
5. This video not playing

@Figim
Copy link

Figim commented Jan 10, 2025

I updated to the latest version after the comment.
5. Error when logging in with account. Play video or song

FATAL EXCEPTION: main
Process: com.zionhuang.music.debug, PID: 374
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.zionhuang.music.debug. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:179)
at com.google.firebase.crashlytics.FirebaseCrashlytics.getInstance(FirebaseCrashlytics.java:213)
at com.google.firebase.crashlytics.ktx.FirebaseCrashlyticsKt.getCrashlytics(FirebaseCrashlytics.kt:38)
at com.zionhuang.music.utils.UtilsKt.reportException(Utils.kt:7)
at com.zionhuang.music.playback.PlayerConnection.onPlayerErrorChanged(PlayerConnection.kt:177)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$updatePlaybackInfo$15(ExoPlayerImpl.java:2115)
at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda25.invoke(D8$$SyntheticClass:0)
at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke(ListenerSet.java:339)
at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0(ListenerSet.java:223)
at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
at androidx.media3.common.util.ListenerSet.flushEvents(ListenerSet.java:245)
at androidx.media3.exoplayer.ExoPlayerImpl.updatePlaybackInfo(ExoPlayerImpl.java:2182)
at androidx.media3.exoplayer.ExoPlayerImpl.handlePlaybackInfo(ExoPlayerImpl.java:2016)
at androidx.media3.exoplayer.ExoPlayerImpl.lambda$new$1$androidx-media3-exoplayer-ExoPlayerImpl(ExoPlayerImpl.java:351)
at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda10.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

@Figim
Copy link

Figim commented Jan 10, 2025

Proxy support is now also added. Turns out it wasn't hard because the proxy is only applied on app start. This means if you change the proxy settings you will have to fully close and restart the app. That was already the case before and just made adding the proxy to the new http clients easier.

I updated the app to this comment version and now it crashes when I play all videos or songs

App crashes while completing account creation in Settings

@gechoto
Copy link
Contributor Author

gechoto commented Jan 10, 2025

Default FirebaseApp is not initialized

This is a know problem with the full version of this app. You have to download the foss version for now.

I updated the app to this comment version and now it crashes when I play all videos or songs

App crashes while completing account creation in Settings

Probably also due to Firebase. Use the foss version.

@Figim
Copy link

Figim commented Jan 10, 2025

Default FirebaseApp is not initialized

This is a know problem with the full version of this app. You have to download the foss version for now.

I updated the app to this comment version and now it crashes when I play all videos or songs
App crashes while completing account creation in Settings

Probably also due to Firebase. Use the foss version.

But that video still doesn't play. For account

@gechoto
Copy link
Contributor Author

gechoto commented Jan 10, 2025

But that video still doesn't play. For account

Did you reset the app again? (without loading a backup)

if it still doesn't work please post the log

@ecomaikgolf
Copy link

ecomaikgolf commented Jan 10, 2025

This video won't play or download when you sign in. I have selected "high" for audio quality and it shows mp4 in the details:

https://music.youtube.com/watch?v=wxHRqPtWHOU

I've downloaded app-foss from here (latest CI run)

[ecomaikgolf@laptop ~/]$ md5sum app-foss.zip 
4ad2f3f36d0c1d20096383c1df925c0f  app-foss.zip
  1. Installed fresh
  2. Went to "Player and Audio" and set Audio quality to High
  3. Played provided sample https://music.youtube.com/watch?v=wxHRqPtWHOU
  4. Worked

No account

@Figim
Copy link

Figim commented Jan 10, 2025

But that video still doesn't play. For account

Did you reset the app again? (without loading a backup)

if it still doesn't work please post the log

In the Foss version, everything works with the account.

Does the account we log into in the Foss version affect starting playback?

@gechoto
Copy link
Contributor Author

gechoto commented Jan 10, 2025

@ecomaikgolf thanks for testing

@Figim

In the Foss version, everything works with the account. But I don't know if the account is applied to the player?

If you are logged in the player will use the account unless there is an error with it in which case it will try again without the account.

@Figim
Copy link

Figim commented Jan 10, 2025

@ecomaikgolf thanks for testing

@Figim

In the Foss version, everything works with the account. But I don't know if the account is applied to the player?

If you are logged in the player will use the account unless there is an error with it in which case it will try again without the account.

Maybe it can't play with the account. But we can't say it changes automatically.

@gechoto
Copy link
Contributor Author

gechoto commented Jan 10, 2025

Maybe it can't play with the account. But we can't say it changes automatically.

You can check with a debugger.

@Figim
Copy link

Figim commented Jan 10, 2025

Maybe it can't play with the account. But we can't say it changes automatically.

You can check with a debugger.

1736519578.352 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: handleAppVisibility mAppVisible=false visible=true
1736519578.367 10416 13781 14895 D OpenGLRenderer: setSurface called with nullptr
1736519578.393 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: Relayout returned: old=(0,0,720,1600) new=(0,0,720,1600) req=(720,1600)4 dur=24 res=0x1 s={false 0} ch=false fn=-1
1736519578.394 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: stopped(false) old=true
1736519578.408 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: stopped(false) old=false
1736519578.409 10416 13781 13781 I DecorView: notifyKeepScreenOnChanged: keepScreenOn=false
1736519578.412 10416 13781 14895 D OpenGLRenderer: setSurface called with nullptr
1736519578.429 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: Relayout returned: old=(0,0,720,1600) new=(0,0,720,1600) req=(720,1600)0 dur=15 res=0x7 s={true 493824249856} ch=true fn=-1
1736519578.431 10416 13781 14895 D OpenGLRenderer: eglCreateWindowSurface
1736519578.431 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: [DP] dp(1) 1 android.view.ViewRootImpl.reportNextDraw:11420 android.view.ViewRootImpl.performTraversals:4193 android.view.ViewRootImpl.doTraversal:2919
1736519578.431 10416 13781 13781 D ViewRootImpl@b4edb90[MainActivity]: Creating frameDrawingCallback nextDrawUseBlastSync=false reportNextDraw=true hasBlurUpdates=false
1736519578.431 10416 13781 13781 D ViewRootImpl@b4edb90[MainActivity]: Creating frameCompleteCallback
1736519578.470 10416 13781 14928 D ViewRootImpl@b4edb90[MainActivity]: Received frameDrawingCallback frameNum=1. Creating transactionCompleteCallback=false
1736519578.477 10416 13781 14895 D ViewRootImpl@b4edb90[MainActivity]: Received frameCompleteCallback lastAcquiredFrameNum=1 lastAttemptedDrawFrameNum=1
1736519578.478 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: [DP] pdf(0) 1 android.view.ViewRootImpl.lambda$addFrameCompleteCallbackIfNeeded$3$ViewRootImpl:4995 android.view.ViewRootImpl$$ExternalSyntheticLambda16.run:6 android.os.Handler.handleCallback:938
1736519578.478 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: [DP] rdf()
1736519578.478 10416 13781 13781 D ViewRootImpl@b4edb90[MainActivity]: reportDrawFinished (fn: -1)
1736519578.484 10416 13781 13781 D InsetsSourceConsumer: ensureControlAlpha: for ITYPE_NAVIGATION_BAR on com.zionhuang.music.debug/com.zionhuang.music.MainActivity
1736519578.485 10416 13781 13781 D InsetsSourceConsumer: ensureControlAlpha: for ITYPE_STATUS_BAR on com.zionhuang.music.debug/com.zionhuang.music.MainActivity
1736519578.683 10416 13781 15279 D BufferPoolAccessor2.0: bufferpool2 0x7302d19628 : 0(0 size) total buffers - 0(0 size) used buffers - 177/182 (recycle/alloc) - 5/177 (fetch/transfer)
1736519578.683 10416 13781 15279 D BufferPoolAccessor2.0: evictor expired: 1, evicted: 1
1736519578.737 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
1736519578.739 10416 13781 13781 D InputMethodManager: startInputInner - Id : 0
1736519578.739 10416 13781 13781 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
1736519578.885 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: ViewPostIme pointer 0
1736519578.951 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: ViewPostIme pointer 1
1736519579.032 10416 13781 14912 I DMCodecAdapterFactory: Creating an asynchronous MediaCodec adapter for track type audio
1736519579.034 10416 13781 26008 I CCodec : state->set(ALLOCATING)
1736519579.034 10416 13781 26008 I CCodec : allocate(c2.android.aac.decoder)
1736519579.036 10416 13781 26008 I CCodec : setting up 'default' as default (vendor) store
1736519579.046 10416 13781 15280 D BufferPoolAccessor2.0: bufferpool2 0x72f57df028 : 0(0 size) total buffers - 0(0 size) used buffers - 8023/8028 (recycle/alloc) - 5/8023 (fetch/transfer)
1736519579.046 10416 13781 15280 D BufferPoolAccessor2.0: Destruction - bufferpool2 0x72f57df028 cached: 0/0M, 0/0% in use; allocs: 8028, 100% recycled; transfers: 8023, 100% unfetched
1736519579.047 10416 13781 15280 D BufferPoolAccessor2.0: Destruction - bufferpool2 0x7302d19628 cached: 0/0M, 0/0% in use; allocs: 182, 97% recycled; transfers: 177, 97% unfetched
1736519579.050 10416 13781 26008 I CCodec : Created component [c2.android.aac.decoder]
1736519579.050 10416 13781 26008 I CCodec : state->set(ALLOCATED)
1736519579.050 10416 13781 26008 D CCodecConfig: read media type: audio/mp4a-latm
1736519579.053 10416 13781 26008 D ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.max-count.values
1736519579.053 10416 13781 26008 D ReflectedParamUpdater: extent() != 1 for single value type: output.subscribed-indices.values
1736519579.054 10416 13781 26008 D ReflectedParamUpdater: extent() != 1 for single value type: input.buffers.allocator-ids.values
1736519579.054 10416 13781 26008 D ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.allocator-ids.values
1736519579.054 10416 13781 26008 D ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.allocator-ids.values
1736519579.054 10416 13781 26008 D ReflectedParamUpdater: extent() != 1 for single value type: output.buffers.pool-ids.values
1736519579.054 10416 13781 26008 D ReflectedParamUpdater: extent() != 1 for single value type: algo.buffers.pool-ids.values
1736519579.059 10416 13781 26008 I CCodecConfig: query failed after returning 19 values (BAD_INDEX)
1736519579.059 10416 13781 26008 D CCodecConfig: c2 config diff is Dict {
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 coded.aac-packaging.value = 0
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 coded.bitrate.value = 64000
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 coded.pl.level = 0
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 coded.pl.profile = 8192
1736519579.059 10416 13781 26008 D CCodecConfig: c2::i32 coding.drc.album-mode.value = 0
1736519579.059 10416 13781 26008 D CCodecConfig: c2::float coding.drc.attenuation-factor.value = 1
1736519579.059 10416 13781 26008 D CCodecConfig: c2::float coding.drc.boost-factor.value = 1
1736519579.059 10416 13781 26008 D CCodecConfig: c2::i32 coding.drc.compression-mode.value = 3
1736519579.059 10416 13781 26008 D CCodecConfig: c2::i32 coding.drc.effect-type.value = 3
1736519579.059 10416 13781 26008 D CCodecConfig: c2::float coding.drc.encoded-level.value = 0.25
1736519579.059 10416 13781 26008 D CCodecConfig: c2::float coding.drc.reference-level.value = -16
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 input.buffers.max-size.value = 8192
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 input.delay.value = 0
1736519579.059 10416 13781 26008 D CCodecConfig: string input.media-type.value = "audio/mp4a-latm"
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 output.delay.value = 2
1736519579.059 10416 13781 26008 D CCodecConfig: c2::float output.drc.output-loudness.value = 0.25
1736519579.059 10416 13781 26008 D CCodecConfig: string output.media-type.value = "audio/raw"
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 raw.channel-count.value = 1
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 raw.max-channel-count.value = 8
1736519579.059 10416 13781 26008 D CCodecConfig: c2::u32 raw.sample-rate.value = 44100
1736519579.059 10416 13781 26008 D CCodecConfig: }
1736519579.061 10416 13781 26008 I MediaCodec: MediaCodec will operate in async mode
1736519579.062 10416 13781 26008 D MediaCodec: flushMediametrics
1736519579.062 10416 13781 26008 D CCodec : [c2.android.aac.decoder] buffers are bound to CCodec for this session
1736519579.062 10416 13781 26008 I CCodec : appPid(13781) width(0) height(0)
1736519579.062 10416 13781 26008 D CCodecConfig: no c2 equivalents for log-session-id
1736519579.062 10416 13781 26008 D CCodecConfig: no c2 equivalents for flags
1736519579.064 10416 13781 26008 D CCodecConfig: c2 config diff is c2::u32 raw.channel-count.value = 2
1736519579.065 10416 13781 26008 W Codec2Client: query -- param skipped: index = 1107298332.
1736519579.065 10416 13781 26008 D CCodec : setup formats input: AMessage(what = 0x00000000) = {
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-album-mode = 0
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-boost-level = 127
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-cut-level = 127
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-effect-type = 3
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-encoded-target-level = -1
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-max-output-channel_count = 8
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-target-ref-level = 64
1736519579.065 10416 13781 26008 D CCodec : int32_t bitrate = 64000
1736519579.065 10416 13781 26008 D CCodec : int32_t channel-count = 2
1736519579.065 10416 13781 26008 D CCodec : int32_t level = 0
1736519579.065 10416 13781 26008 D CCodec : int32_t max-input-size = 8192
1736519579.065 10416 13781 26008 D CCodec : string mime = "audio/mp4a-latm"
1736519579.065 10416 13781 26008 D CCodec : int32_t profile = 2
1736519579.065 10416 13781 26008 D CCodec : int32_t sample-rate = 44100
1736519579.065 10416 13781 26008 D CCodec : int64_t durationUs = 0
1736519579.065 10416 13781 26008 D CCodec : }
1736519579.065 10416 13781 26008 D CCodec : setup formats output: AMessage(what = 0x00000000) = {
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-album-mode = 0
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-boost-level = 127
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-cut-level = 127
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-effect-type = 3
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-drc-output-loudness = -1
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-encoded-target-level = -1
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-max-output-channel_count = 8
1736519579.065 10416 13781 26008 D CCodec : int32_t aac-target-ref-level = 64
1736519579.065 10416 13781 26008 D CCodec : int32_t channel-count = 2
1736519579.065 10416 13781 26008 D CCodec : string mime = "audio/raw"
1736519579.065 10416 13781 26008 D CCodec : int32_t sample-rate = 44100
1736519579.065 10416 13781 26008 D CCodec : }
1736519579.066 10416 13781 26008 I CCodecConfig: query failed after returning 19 values (BAD_INDEX)
1736519579.067 10416 13781 14912 D MediaCodec: keep callback message for reclaim
1736519579.068 10416 13781 26008 I CCodec : state->set(STARTING)
1736519579.069 10416 13781 26008 W Codec2Client: query -- param skipped: index = 1342179345.
1736519579.069 10416 13781 26008 W Codec2Client: query -- param skipped: index = 2415921170.
1736519579.069 10416 13781 26008 W Codec2Client: query -- param skipped: index = 1610614798.
1736519579.071 10416 13781 26008 D CCodecBufferChannel: [c2.android.aac.decoder#834] Created input block pool with allocatorID 16 => poolID 25 - OK (0)
1736519579.076 10416 13781 26008 I CCodecBufferChannel: [c2.android.aac.decoder#834] Created output block pool with allocatorID 16 => poolID 495 - OK
1736519579.077 10416 13781 26008 D CCodecBufferChannel: [c2.android.aac.decoder#834] Configured output block pool ids 495 => OK
1736519579.078 10416 13781 26008 I CCodec : state->set(RUNNING)
1736519579.080 10416 13781 26008 I CCodecBufferChannel: [c2.android.aac.decoder#834] 4 initial input buffers available
1736519579.095 10416 13781 26008 D CCodecConfig: c2 config diff is c2::u32 raw.channel-mask.value = 12
1736519579.112 10416 13781 14912 D AudioTrack: setVolume(1.000000, 1.000000) pid : 13781
1736519579.245 10416 13781 14912 D AudioTrack: getTimestamp_l(306): device stall time corrected using current time 19601275587056
1736519579.463 10416 13781 13781 I MediaBrowserService: No root for client com.android.systemui from service android.service.media.MediaBrowserService$ServiceBinder$1
1736519579.684 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
1736519580.102 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: handleAppVisibility mAppVisible=true visible=false
1736519580.118 10416 13781 14895 D OpenGLRenderer: setSurface called with nullptr
1736519580.118 10416 13781 14895 D OpenGLRenderer: setSurface() destroyed EGLSurface
1736519580.118 10416 13781 14895 D OpenGLRenderer: destroyEglSurface
1736519580.128 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: Relayout returned: old=(0,0,720,1600) new=(0,0,720,1600) req=(720,1600)8 dur=7 res=0x5 s={false 0} ch=true fn=32
1736519580.129 10416 13781 13781 I ViewRootImpl@b4edb90[MainActivity]: stopped(true) old=false
1736519580.159 10416 13781 13781 D InputTransport: Input channel destroyed: 'ClientS', fd=128
1736519584.399 10416 13781 26008 D BufferPoolAccessor2.0: bufferpool2 0x7302d19c28 : 5(40960 size) total buffers - 3(24576 size) used buffers - 244/249 (recycle/alloc) - 5/248 (fetch/transfer)
1736519584.684 10416 13781 15279 D BufferPoolAccessor2.0: evictor expired: 2, evicted: 0

@gechoto
Copy link
Contributor Author

gechoto commented Jan 10, 2025

@Figim you won't find it in the debug logs. You will have to use an actual debugger and set a breakpoint in YTPlayerUtils where it iterates over the clients.

Another way to see if the account was used is by looking at the network requests.

@gechoto gechoto mentioned this pull request Jan 11, 2025
8 tasks
josprox added a commit to josprox/Joss-Music that referenced this pull request Jan 11, 2025
…pe, "Player fixes z-huang#1789", además se ha solucionado un problema con la Joss Red sobre la reproducción, ahora puede activarlo desde el apartado de Joss Red
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Unable to play songs in the app
6 participants