Closed TobiGr closed 11 months ago
Does anyone else have a clearly noticeable stutter when swiping between channel tabs? Especially when swiping to Live, Playlists, and Channels. It's very consistent.
And strangely, the stutter is worse once everything is loaded. If swiping to any of these tabs for the first time, the stutter is far less noticeable. I suspect the thumbnails. The pause happens just before they show up or go away.
(It might be my old slow device or the debug channel causing this.)
I can notice it too. But lowering thumbnail quality or completely disabling it doesn't reduce the amount of stutter.
Accessing all types of videos, while thumbnail is disabled, causes a crash.
io.reactivex.rxjava3.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | io.reactivex.rxjava3.exceptions.CompositeException: 2 exceptions occurred.
at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:718)
at io.reactivex.rxjava3.internal.functions.Functions$OnErrorMissingConsumer.accept(Functions.java:715)
at io.reactivex.rxjava3.internal.observers.ConsumerSingleObserver.onError(ConsumerSingleObserver.java:46)
at io.reactivex.rxjava3.internal.operators.single.SingleObserveOn$ObserveOnSingleObserver.run(SingleObserveOn.java:79)
at io.reactivex.rxjava3.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:123)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:241)
at android.os.Looper.loop(Looper.java:342)
at android.app.ActivityThread.main(ActivityThread.java:8143)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:583)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: io.reactivex.rxjava3.exceptions.CompositeException: 2 exceptions occurred.
at io.reactivex.rxjava3.internal.operators.single.SingleOnErrorReturn$OnErrorReturn.onError(SingleOnErrorReturn.java:58)
at io.reactivex.rxjava3.internal.operators.single.SingleMap$MapSingleObserver.onError(SingleMap.java:70)
at io.reactivex.rxjava3.internal.operators.single.SingleMap$MapSingleObserver.onSuccess(SingleMap.java:61)
at io.reactivex.rxjava3.internal.operators.single.SingleDoOnError$DoOnError.onSuccess(SingleDoOnError.java:52)
at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.onSuccess(SingleSubscribeOn.java:68)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle$ToSingleMaybeSubscriber.onSuccess(MaybeToSingle.java:83)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onNext(FlowableElementAtMaybe.java:80)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.drain(MaybeConcatArray.java:136)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray$ConcatMaybeObserver.request(MaybeConcatArray.java:78)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe$ElementAtSubscriber.onSubscribe(FlowableElementAtMaybe.java:66)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeConcatArray.subscribeActual(MaybeConcatArray.java:42)
at io.reactivex.rxjava3.core.Flowable.subscribe(Flowable.java:16013)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableElementAtMaybe.subscribeActual(FlowableElementAtMaybe.java:36)
at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeToSingle.subscribeActual(MaybeToSingle.java:46)
at io.reactivex.rxjava3.core.Single.subscribe(Single.java:4855)
at io.reactivex.rxjava3.internal.operators.single.SingleSubscribeOn$SubscribeOnObserver.run(SingleSubscribeOn.java:89)
at io.reactivex.rxjava3.core.Scheduler$DisposeTask.run(Scheduler.java:644)
at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:65)
at io.reactivex.rxjava3.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:56)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Caused by: io.reactivex.rxjava3.exceptions.CompositeException$ExceptionOverview: Multiple exceptions (2)
|-- java.lang.NullPointerException: uriString
at android.net.Uri$StringUri.<init>(Uri.java:507)
|-- java.lang.NullPointerException: uriString
at android.net.Uri$StringUri.<init>(Uri.java:507)
Just a small observation, I that if u turn on autorotate on device and use landscape mode swiping between the channel tabs do not have the noticeable stutter, it only happens in vertical mode kinda strange ( irrespective of thumbnail quality)
Entering/exiting full screen consumes unexpectedly high amount of time. First app shownshown in the video is vanilla Newpipe version, the second one is debug version
https://github.com/TeamNewPipe/NewPipe/assets/79245641/aee14f25-e686-4986-a890-c4182567caf8
Here my report about the OOMs during the feed refresh. It happens consistently for me, at around 150-250 subs processed. If the feed is open during the OOM-crash, it does not produce a guru-screen, putting the app in the backround and watching the notification for the crash, then bringing the app back, does produce a guru-screen. I've put some of them below. A heap dump taken during the refresh finds no obvious leaking objects in LeakCanary. I take this to mean that some component allocates memory incrementally per sub processed, that would be GCed if the refresh managed to finish. I can provide more info, if someone can instruct me on what's needed. Disabling all "fetch tabs" in settings except for "videos", does not change this.
```
java.lang.OutOfMemoryError: Failed to allocate a 48 byte allocation with 1528560 free bytes and 1492KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at java.lang.AbstractStringBuilder.
``` java.lang.OutOfMemoryError: Failed to allocate a 32 byte allocation with 886456 free bytes and 865KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC. at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.addConditionWaiter(AbstractQueuedSynchronizer.java:1882) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2187) at okio.AsyncTimeout$Companion.awaitTimeout$okio(AsyncTimeout.kt:320) at okio.AsyncTimeout$Watchdog.run(AsyncTimeout.kt:186) ```
``` java.lang.OutOfMemoryError: Failed to allocate a 16 byte allocation with 544576 free bytes and 531KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC. at android.os.ThreadLocalWorkSource.setUid(ThreadLocalWorkSource.java:68) at android.os.Looper.loopOnce(Looper.java:199) at android.os.Looper.loop(Looper.java:288) at android.os.HandlerThread.run(HandlerThread.java:67) ```
```
java.lang.OutOfMemoryError: Failed to allocate a 8208 byte allocation with 31608 free bytes and 30KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at okio.Segment.
{"user_action":"play stream","request":"Player error[type=ERROR_CODE_IO_NETWORK_CONNECTION_TIMEOUT] occurred while playing https://www.youtube.com/watch?v=UxznzzWPhyI","content_language":"en-IN","content_country":"IN","app_language":"en_IN","service":"YouTube","package":"org.schabi.newpipe.debug.release0260","version":"0.26.0","os":"Linux Android 12 - 31","time":"2023-10-10 06:14","exceptions":["com.google.android.exoplayer2.ExoPlaybackException: Source error\n\tat com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:644)\n\tat com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:616)\n\tat android.os.Handler.dispatchMessage(Handler.java:102)\n\tat android.os.Looper.loopOnce(Looper.java:226)\n\tat android.os.Looper.loop(Looper.java:313)\n\tat android.os.HandlerThread.run(HandlerThread.java:67)\nCaused by: com.google.android.exoplayer2.upstream.HttpDataSource$HttpDataSourceException: java.net.SocketTimeoutException: failed to connect to rr1---sn-ci5gup-cvhk.googlevideo.com/182.79.138.204 (port 443) from /192.168.1.7 (port 33930) after 8000ms\n\tat org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:389)\n\tat com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:263)\n\tat com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:52)\n\tat com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:796)\n\tat com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:609)\n\tat com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)\n\tat com.google.android.exoplayer2.source.chunk.ContainerMediaChunk.load(ContainerMediaChunk.java:124)\n\tat com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)\n\tat java.lang.Thread.run(Thread.java:1012)\nCaused by: java.net.SocketTimeoutException: failed to connect to rr1---sn-ci5gup-cvhk.googlevideo.com/182.79.138.204 (port 443) from /192.168.1.7 (port 33930) after 8000ms\n\tat libcore.io.IoBridge.connectErrno(IoBridge.java:235)\n\tat libcore.io.IoBridge.connect(IoBridge.java:179)\n\tat java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)\n\tat java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)\n\tat java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)\n\tat java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)\n\tat java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)\n\tat java.net.Socket.connect(Socket.java:646)\n\tat com.android.okhttp.internal.Platform.connectSocket(Platform.java:182)\n\tat com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:145)\n\tat com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)\n\tat com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)\n\tat com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)\n\tat com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)\n\tat com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)\n\tat com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)\n\tat com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)\n\tat com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)\n\tat com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90)\n\tat com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)\n\tat org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.makeConnection(YoutubeHttpDataSource.java:704)\n\tat org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.makeConnection(YoutubeHttpDataSource.java:548)\n\tat org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:383)\n\t... 10 more\n"],"user_comment":""}
android 12 one ui 4 samsung falaxy m21 newpipe 26.0
From my testing, both the subscriptions- and the Whats-new-view do not contain shorts unless the "dedicated feed"/fast-mode is enabled. This matches pre-0.26.0 behaviour. My understanding was, that channel-tabs would allow this to work without needing fast-mode, so I'm mentioning it here.
@ChaosNicro There's a new setting: Fetch channel tabs. Have you opened it?
Thanks for replying. All boxes are ticked and live-content does show up as intended, just shorts are missing. They do show up when viewing a channel-profiles "shorts"-tab, but aren't integrated into feeds.
Mine is the opposite, Showing "shorts" all the time in subscriptions/whats new tabs. Even when unchecked as well as when Dedicated feed is enabled/disabled
Mine is the opposite, Showing "shorts" all the time in subscriptions/whats new tabs. Even when unchecked as well as when Dedicated feed is enabled/disabled
@ACR-Jeff Mind that unchecking the setting doesn't remove shorts from the database/feeds, it just prevents Newpipe from fetching new ones. I think that's by design.
I have "Start main player in fullscreen" enabled, If I play a video I have to manually set it to full screen, Play it through to the end, The video ends back to the description in mini player view automatically, I then exit out to play another video, When selecting another video it goes to the description of the video and shortly after automatically is set to Full screen as I expect it should, Yet part way through the video it will crash the UI completely.
After I posted the above issue I decided to flip the "Start main player in fullscreen" off and on again and restart the system, I haven't experienced the UI crash any further.
The LIVE TAB of this channel does not show anything.
https://www.youtube.com/channel/UCbS8vsbx1MSl1aGrja2-4kg
Despite the video content.
Hey mostly fine but i did get an error...
android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground(): ServiceRecord{d0eaa3d u0 org.schabi.newpipe.debug.release0260/org.schabi.newpipe.player.PlayerService}
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2188)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:8167)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
i hope it will be an optoin to choose channel tabs language like: "settings -> content -> channel tabs language" i saw some devs played with it in last NP code, but if you have differ app and content languages, and also country of content is different, this choosing would be the great!
com.google.android.exoplayer2.ExoPlaybackException: Source error
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:644)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:616)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:237)
at android.os.HandlerThread.run(HandlerThread.java:67)
Caused by: com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 503
at org.schabi.newpipe.player.datasource.YoutubeHttpDataSource.open(YoutubeHttpDataSource.java:422)
at com.google.android.exoplayer2.upstream.DefaultDataSource.open(DefaultDataSource.java:263)
at com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:52)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:796)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:609)
at com.google.android.exoplayer2.upstream.StatsDataSource.open(StatsDataSource.java:84)
at com.google.android.exoplayer2.source.chunk.ContainerMediaChunk.load(ContainerMediaChunk.java:124)
at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:412)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:919)
I dont understand the error message. My internet is fast enough but original youtube is loading alot and playing just a few seconds. If that is the case, why would NP make an exception error. I just post it anyway.
Unfortunately the buffering problem continues
When a channel page is added as a tab to the home screen, the app crashes when I try to open a video from that tab.
When a channel page is added as a tab to the home screen, the app crashes when I try to open a video from that tab.
java.lang.IllegalArgumentException: No view found for id 0x7f0a0198 (org.schabi.newpipe.debug.release0260:id/fragment_player_holder) for fragment VideoDetailFragment{7c6aae7} (897e85aa-6161-4820-8455-c6ca1213921b id=0x7f0a0198)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:513)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1758)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Loading time is at least 3500 ms.
https://github.com/TeamNewPipe/NewPipe/assets/89805719/019f5f79-b939-4af6-af45-03182038a1cd
I can also feel a small but (relatively) noticeable delay in displaying the context menu when you want to enqueue videos. Is this intended?
Loading time is at least 3500 ms.
Don't bother testing delays in debug APKs. This is only worth checking on release APKs.
After test this app, there a problem encountered. When you press and hold a video (on trending tab) and select "Mark as watched" is not working because when selecting that, it should show a red bar on the video thumbnail unless you restart the app
This problem isn't encountered on 0.25.2, you're saying?
This problem isn't encountered on 0.25.2, you're saying?
No im not talking about 25v (stable version) but I'm talking about the 26v (testing verson)
Newpipe v26 freezes when subscribing to a YouTube channel
Newpipe v26 freezes when subscribing to a YouTube channel
Can you be more specific? I subscribed to multiple channels during my time with the RC and didn't have any issues.
Newpipe v26 freezes when subscribing to a YouTube channel
Can you be more specific? I subscribed to multiple channels during my time with the RC and didn't have any issues.
I made a mistake, it was actually my device slowing down when I was testing it
when importing datebase from the original newapp... newpipe .26 starts to misbehave... it would crash each time i would switch to another app or go home ... wheather a video was opened or not.
Opening any file from the downloads section crashes the app for me. In spite of what the error report says, I have granted Newpipe all permissions, including access to storage.
java.lang.SecurityException: UID 10198 does not have permission to content://com.android.externalstorage.documents/document/primary%3ANewpipe%2FSecret%20of%20Mana%20Music%20%26%20Ambience%20%20Serene%20forest%20setting.m4a [user 0] [prefix]; you could obtain access using ACTION_OPEN_DOCUMENT or related APIs
at android.os.Parcel.createExceptionOrNull(Parcel.java:3057)
at android.os.Parcel.createException(Parcel.java:3041)
at android.os.Parcel.readException(Parcel.java:3024)
at android.os.Parcel.readException(Parcel.java:2966)
at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:2126)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1873)
at android.app.Activity.startActivityForResult(Activity.java:5589)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:712)
at android.app.Activity.startActivityForResult(Activity.java:5547)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:693)
at android.app.Activity.startActivity(Activity.java:6045)
at android.app.Activity.startActivity(Activity.java:6012)
at org.schabi.newpipe.util.external_communication.ShareUtils.tryOpenIntentInApp(ShareUtils.java:145)
at org.schabi.newpipe.util.external_communication.ShareUtils.openIntentInApp(ShareUtils.java:163)
at us.shandian.giga.ui.adapter.MissionAdapter.viewWithFileProvider(MissionAdapter.java:347)
at us.shandian.giga.ui.adapter.MissionAdapter.-$$Nest$mviewWithFileProvider(Unknown Source:0)
at us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem.lambda$new$1(MissionAdapter.java:882)
at us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem.$r8$lambda$CmCEgQjJdZQU71R9MLF_QHU7UWI(Unknown Source:0)
at us.shandian.giga.ui.adapter.MissionAdapter$ViewHolderItem$$ExternalSyntheticLambda1.onClick(Unknown Source:2)
at android.view.View.performClick(View.java:7659)
at android.view.View.performClickInternal(View.java:7636)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:30156)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.uri.UriGrantsManagerService.checkGrantUriPermissionUnlocked(UriGrantsManagerService.java:1251)
at com.android.server.uri.UriGrantsManagerService.checkGrantUriPermissionFromIntentUnlocked(UriGrantsManagerService.java:626)
at com.android.server.uri.UriGrantsManagerService.-$$Nest$mcheckGrantUriPermissionFromIntentUnlocked(UriGrantsManagerService.java:0)
at com.android.server.uri.UriGrantsManagerService$LocalService.checkGrantUriPermissionFromIntent(UriGrantsManagerService.java:1441)
at com.android.server.wm.ActivityStarter$Request.resolveActivity(ActivityStarter.java:605)
I updated the release candidate APKs with the following changes:
I used TeamNewPipe/NewPipeExtractor#1127 as the extractor base, which fixes a few errors in the app (e.g. the like count one), and is going to be merged in a little.
when importing datebase from the original newapp... newpipe .26 starts to misbehave... it would crash each time i would switch to another app or go home ... wheather a video was opened or not.
this bug is still here
@arrowcrown @ChaosNicro here is a PR that fixes clicking on videos in channels in the main page. Could you test it and check if it works now? https://github.com/TeamNewPipe/NewPipe/pull/10645
@MD77MD could you provide a bit more information?
newpipe.settings
from the .zip
so that you don't give away any personal data)?@arrowcrown @ChaosNicro here is a PR that fixes clicking on videos in channels in the main page. Could you test it and check if it works now? #10645
I can confirm that it has indeed been fixed, tested with 4 channel pages on the home screen.
@arrowcrown @ChaosNicro here is a PR that fixes clicking on videos in channels in the main page. Could you test it and check if it works now? https://github.com/TeamNewPipe/NewPipe/pull/10645
I tried both live and non-live video streams. It works perfectly! Thank you.
Adding more than 3 channel pages crashes Newpipe, when trying to access a sub menu in the settings page. It doesn't matter if the 4th one was generated as a result of importing a database or created manually, the crash will occur. Creating up to 3 channel pages on the other hand, doesn't result in a crash. A test on another device shows a different result, the app on that can only handle a single channel page, adding more will result in a crash, when trying out the scenario mentioned above. For the crash to actually occur, the channel pages in question should have loaded the content fully, in all of the tabs.
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 1306344 bytes
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:184)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7945)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:603)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: android.os.TransactionTooLargeException: data parcel size 1306344 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:545)
at android.app.IActivityTaskManager$Stub$Proxy.activityStopped(IActivityTaskManager.java:4408)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:146)
... 7 more
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 671588 bytes
at android.app.ActivityClient.activityStopped(ActivityClient.java:86)
at android.app.servertransaction.PendingTransactionActions$StopInfo.run(PendingTransactionActions.java:143)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7880)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1009)
Caused by: android.os.TransactionTooLargeException: data parcel size 671588 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:571)
at android.app.IActivityClientController$Stub$Proxy.activityStopped(IActivityClientController.java:1297)
at android.app.ActivityClient.activityStopped(ActivityClient.java:83)
... 9 more
This problem seems systemic. Channel tabs all seem to want to load together, instead of serially.
App crashes if I try to update feed during video playback. Was able to recreate this 4 times. If I play a video and then refresh the feed, video will start to lag after 30 seconds and then crash.
java.lang.OutOfMemoryError: Failed to allocate a 104 byte allocation with 410752 free bytes and 401KB until OOM, target footprint 268435456, growth limit 268435456; giving up on allocation because <1% of heap free after GC.
at android.database.CursorWindow.nativeGetString(Native Method)
at android.database.CursorWindow.getString(CursorWindow.java:462)
at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:54)
at org.schabi.newpipe.database.history.dao.StreamHistoryDAO_Impl$9.call(StreamHistoryDAO_Impl.java:658)
at org.schabi.newpipe.database.history.dao.StreamHistoryDAO_Impl$9.call(StreamHistoryDAO_Impl.java:604)
at io.reactivex.rxjava3.internal.operators.maybe.MaybeFromCallable.subscribeActual(MaybeFromCallable.java:47)
at io.reactivex.rxjava3.core.Maybe.subscribe(Maybe.java:5377)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableFlatMapMaybe$FlatMapMaybeSubscriber.onNext(FlowableFlatMapMaybe.java:131)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$ObserveOnSubscriber.runAsync(FlowableObserveOn.java:403)
at io.reactivex.rxjava3.internal.operators.flowable.FlowableObserveOn$BaseObserveOnSubscriber.run(FlowableObserveOn.java:178)
at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker$BooleanRunnable.run(ExecutorScheduler.java:324)
at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.runEager(ExecutorScheduler.java:289)
at io.reactivex.rxjava3.internal.schedulers.ExecutorScheduler$ExecutorWorker.run(ExecutorScheduler.java:250)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at java.lang.Thread.run(Thread.java:1012)
Thank you NewPipeTeam for all your hardwork and dedication that you guys bring to the masses with your great development skills and ect , This new version 0.26 is great , and im surely greatful for more intuitive features and updates in the future. KEEP UP THE AWESOME WORK.... "If anyone tells you they have issues they are lying" 🤣🤣🤣 noobs.
This seems to be a symptom of the issue I reported above (see the list at the top). The RC seems to progressively consume memory as it refreshes the feed. @sigh8 Does switching to fast-mode and then refreshing the feed also crash? That works in my case to mitigate the issue.
Please try to create memory-related crashes in as many different ways as you can. But make sure they're regressions, please.
This seems to be a symptom of the issue I reported above (see the list at the top). The RC seems to progressively consume memory as it refreshes the feed. @sigh8 Does switching to fast-mode and then refreshing the feed also crash? That works in my case to mitigate the issue.
Switching to fast-mode indeed solves the issue. I thought it was an issue with video playback as newpipe wouldn't crash if I only refreshed the feed. Upon further inspection I have noticed that it previously did not crash because it used to update only 220 channels out of 300. With video playback, it starts to lag after 223 subscriptions and now that it has started to update all 300 channels at once, it will crash after updating 243 subscriptions without media playing.
This problem seems systemic. Channel tabs all seem to want to load together, instead of serially.
So, it is a regression right? although, I still don't know why the crash varies by device. Does that have something to do with the API version? I tested this using the second release candidate, the non-debug version.
So, it is a regression right?
The only way to know for sure is to compare the behaviour with the current release. When the exact same steps give different outcomes, that's a clue.
@arrowcrown @ChaosNicro here is a PR that fixes clicking on videos in channels in the main page. Could you test it and check if it works now? #10645
@MD77MD could you provide a bit more information?
- If I understand correctly, once you imported the database, every time you open the app and right after doing that (i.e. without performing any action in NewPipe) you switch to another app, NewPipe crashes. Is that correct?
- Were you able to collect a crash report?
- Does the same behavior arise even if you only import data and not settings?
- If the answer to the previous question was "no", then the problem might depend on a specific setting. Could you share the settings export (just extract
newpipe.settings
from the.zip
so that you don't give away any personal data)?- Do you have channels in your home page?
If i import data only without the settings, then it works fine.... will do more tests and try to get a crash report.
didn't get your last question but i do have 3 tabs of youtube channels if thats what you mean.
So, it is a regression right?
The only way to know for sure is to compare the behaviour with the current release. When the exact same steps give different outcomes, that's a clue.
In the current stable build (version 0.25.2), I can easily add and open 10+ channel pages without crash of any sort. Pretty safe to classify this as a regression.
laggy channel tabs
@Stypox You've linked my comment to this bullet point. This was me testing the first RC, and a debug build at that. With your RC2 release build, there is no lag. Someone else can test this to confirm, but I think this TODO can be removed.
Edit: Okay there is still a minor hiccup with the older, slower device, though it is lesser than the debug build.
@sigh8 @ChaosNicro could you test this APK and tell me if it fixes the out of memory crashes when loading feed? app-release.zip
Testing for regressions
Release APK (built and signed by @Stypox): NewPipe_v0.26.0_RC3_release.zip Debug APK (built by @Stypox): NewPipe_v0.26.0_RC3_debug.zip Please report only regressions (i.e. new issues) here, not issues that were already present in previous releases!
TODO
#10086#10580fullscreen takes time(it's a debug version artifact) https://github.com/TeamNewPipe/NewPipe/issues/10471#issuecomment-1751671765
## New - Access more content provided by creators which is grouped in different tabs (TeamNewPipe/NewPipeExtractor#1082 and #9182). The content of the channel tabs can vary by service: - YouTube: videos, live, playlists, about - PeerTube: videos, playlists, channels (for accounts), about - SoundCloud: tracks, playlists, albums, about - Bandcamp: albums, tracks, about - media.ccc.de: videos, about - Allow selecting image quality among multiple images #10062 #10482 NewPipe supports selecting the image quality among multiple image versions. This comes with three different presets which can be selected from within the settings (low, medium and high quality). This is most noticeable in the recently introduced card style for stream lists which is now able to show thumbnails in higher resolutions. Some services (e.g. YouTube) do not always provide the highest quality thumbnails for those lists. ## Improved - Adjust empty state message for `ListInfoFragment`s depending on `Info` stream type #10304 - Show loading indicator before opening the download dialog from the share menu #10407 - Improved accessibility of player interfaces #10199 - Include a high-resolution option in the default resolution settings #9987 - Show play queue button in main player when there is one stream #10396 - Add option to add playlist name and video name to playlist sharing content #10427 ## Localization - Make capitalization of "Night theme" setting consistent with others #10313 - Update Weblate & fix string formats #10376 - Fix selection of wrong languages in language picker #10406 - [README] Remove Bitcoin and Bountysource donation options #10491 ## Fixed - Fix player audio focus not respecting mute #10275 - Fix downloads of streams with missing `MediaFormat` #10165 - [YouTube] Fix extraction of age-restricted music videos TeamNewPipe/NewPipeExtractor#1108 #10440 - Fix restoring software license dialog #10436 - Fix inconsistency between user interaction and database commit order when re-adding videos to a playlist #8248 - Fix playing SoundCloud songs under some conditions: now OPUS HLS streams are considered as unplayable, and thus other streams are preferred #10579 - Fix app not responding, background app crashes and issues with starting the player #10578 - Fix some null pointer exceptions #10576 #10577 - Fix custom filename replacement character being interpreted as regex and crashing the app #10489 ## Development - Make "latest release" link more obvious to bug reporters #10331 - Simplify `MainActivity.tabSelected(MenuItem)` #10360 - Image minizier: replace `Number.toFixed(0)` with `Math.floor()` #10377 - Update miscellaneous libraries #10234 #10244 - Improve the download helpers using the Java 7 NIO API. #10248 - Fix memory leaks and add documentation #10394 - Replace `MathUtils.clamp` with Kotlin `coerceIn` #10224 - Bump AGP to 8.1.1 #10428 - Improve codequality #10435 - Update extractor and remove `DeobfuscateException` handling #10440 - Add workflow "PR size labeler" to label PRs based on the number of changed lines #10170 #10447App changelog
### New - Add support for channel tabs and channel tags TeamNewPipe/NewPipeExtractor#1082 TeamNewPipe/NewPipeExtractor#1092 - [YouTube] Support more channel headers TeamNewPipe/NewPipeExtractor#1094 - [YouTube] Support Shorts UI in playlists TeamNewPipe/NewPipeExtractor#1093 - Multiple images support #889 TeamNewPipe/NewPipeExtractor#1113 - [YouTube] Add support for ultralow audio formats TeamNewPipe/NewPipeExtractor#1063 - Add `hasCreatorReply()` to `CommentsInfoItem` TeamNewPipe/NewPipeExtractor#1111 ### Improved - [YouTube] Improve and fix `YoutubeJavaScriptExtractor` TeamNewPipe/NewPipeExtractor#1087 TeamNewPipe/NewPipeExtractor#1091 - [YouTube] Refactor JavaScript usage and fix extraction of obfuscated signature deobfuscation function TeamNewPipe/NewPipeExtractor#1108 ### Fixed - [media.ccc.de] Only extract kiosk live stream rooms if they are streaming TeamNewPipe/NewPipeExtractor#1089 - [SoundCloud] Detect whether there are any more search results TeamNewPipe/NewPipeExtractor#1081 ### Development - Replace cryptographically secure random with regular random TeamNewPipe/NewPipeExtractor#1088 - Bump org.junit:junit-bom from 5.9.3 to 5.10.0 TeamNewPipe/NewPipeExtractor#1083 - Bump actions/checkout from 3 to 4 TeamNewPipe/NewPipeExtractor#1103 - [Bandcamp] Fix `StreamExtractorTest` TeamNewPipe/NewPipeExtractor#1105 - Use `Locale.forLanguageTag()` in tests TeamNewPipe/NewPipeExtractor#1107 - Update copyright notices to use correct GPLv3 format TeamNewPipe/NewPipeExtractor#1110NewPipe Extractor changelog