yuliskov / SmartTube

SmartTube - an advanced player for set-top boxes and tvs running Android OS
https://www.patreon.com/smarttube
Other
18.54k stars 1.03k forks source link

2160p60 playback after ExoPlayer 2.12.1 update #259

Open CiNcH83 opened 3 years ago

CiNcH83 commented 3 years ago

@yuliskov

I now tried 2160p60 playback on a BRAVIA ATV2 (MediaTek MT5891 @ 1GHz) with STubeNext 10.54 with the updated ExoPlayer 2.12.1. Looks much better now, similar to the original YouTube app. There is some minor micro-stuttering every few seconds left.

I wonder which MediaCodec mode ExoPlayer operates in. I don't see one being explicitly set by STubeNext. So I assume it operates in OPERATION_MODE_SYNCHRONOUS? How about Tunneled playback mode?

foreveryoungforty commented 3 years ago

Same over here on Sony 65xf9005, some micro-stuttering mostly in the beginning of 4k videos.

yuliskov commented 3 years ago

Thanks for the positive feedback about exoplayer 2.12.1. Yes, current mode is OPERATION_MODE_SYNCHRONOUS. Which mode do you suggest to test instead? I've tested Tunneled playback mode before. It receives multiple negative feedbacks from other users.

CiNcH83 commented 3 years ago

Which mode do you suggest to test instead?

Probably all modes in order to be able to compare the outcome on a slow SoC.

OPERATION_MODE_ASYNCHRONOUS_PLAYBACK_THREAD has the charm of working from API 21 onwards. Then again I think that dequeuing might make sense to be done outside of the playback thread. So OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD might be worth trying in case the first one isn't good enough. I don't think that enqueuing and dequeuing really need to be on separate threads. But devs say that it further improved playback of high frame rate content. Also depends on the SoC probably.

CiNcH83 commented 3 years ago

Tried 10.56 with OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING. Didn't really help with the minor micro-stuttering every now and then. Looks about the same as before.

Wonder whether you can query and display vfpo (Video Frame Processing Offset) from ExoPlayer?

foreveryoungforty commented 3 years ago

Tried 10.56 with OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING. Didn't really help with the minor micro-stuttering every now and then. Looks about the same as before.

Wonder whether you can query and display vfpo (Video Frame Processing Offset) from ExoPlayer?

I agree, still some tiny micro stutter with 10.56 at the beginning of 4k and higher videos. Maybe loading or buffer issue at the start ? As from 5 or 10 seconds onwards, it plays perfect here.

CiNcH83 commented 3 years ago

After some more testing I have to say that playback is close to perfection now. I typically test with The World in HDR in 4K as it has quite some panning shots in it.

foreveryoungforty commented 3 years ago

Indeed that's a great video to test with, as it has panning and slow motions. And indeed the playback is close to perfection now...

CiNcH83 commented 3 years ago

Damn. It reverted to 1080p30 AVC. Need to re-evaluate...

foreveryoungforty commented 3 years ago

Strange, here i have vp9 60fps

CiNcH83 commented 3 years ago

In order to downgrade I had to uninstall STubeNext. That's how my preferred format (being VP9 HDR) got reset. I will need to do another comparison using the following versions:

foreveryoungforty commented 3 years ago

For me the 10.56 version is the best release so far, aside from a bit micro lag at the beginning of 4k+ videos...

CiNcH83 commented 3 years ago

Will try 10.58 with OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD as well. Think I will find the time tomorrow.

foreveryoungforty commented 3 years ago

10.58 has more stutter than 10.56 on my Sony 4K.

kuafor41 commented 3 years ago

For me the 10.56 version is the best release so far, aside from a bit micro lag at the beginning of 4k+ videos...

How about the status when you watch 1.5 or 2x speed ? In normal speed you’re correct. I mostly watch videos double speed and previously with smartyoutubetv this was not the case this is what i want to reach to say build is o.k.

CiNcH83 commented 3 years ago

10.58 has more stutter than 10.56 on my Sony 4K.

Haven't tried 10.58 but I am not 100% sure about what you just wrote. One time Sony works better, one time worse. It depends on services that might run in parallel in the background. What I can say is that 2160p60 playback pretty much exhausts the CPU which is the reason why playback might be fragile. I really need to do a more thorough investigation, testing on a longer term and creating the same conditions for all versions.

foreveryoungforty commented 3 years ago

Well for me 10.56 was better (just reinstalled), and in version 10.48 I had no lagging/stutter at all. And even the former SYTV-app still plays flawless without lagging.

CiNcH83 commented 3 years ago

Just for completeness... 10.48 was with ExoPlayer 2.12.1 in OPERATION_MODE_SYNCHRONOUS mode.

Will add my results tomorrow.

foreveryoungforty commented 3 years ago

For me the 10.56 version is the best release so far, aside from a bit micro lag at the beginning of 4k+ videos...

How about the status when you watch 1.5 or 2x speed ? In normal speed you’re correct. I mostly watch videos double speed and previously with smartyoutubetv this was not the case this is what i want to reach to say build is o.k.

I got your point, but to test the HQ settings, normal 1.0 speed is the standard/reference of course.

CiNcH83 commented 3 years ago

I now finished profiling 2160p60 playback on a slow Sony BRAVIA X900F using different SmartTubeNext/ExoPlayer versions with different MediaCodec operational modes (sync/async).

Device: Sony BRAVIA KD-65XF9005 (X900F) CPU: 4X ARM Cortex A53 @ 1GHz Player: SmartTubeNext Video: The World in HDR in 4K (17mbps @ 1440p60; 30mbps @ 2160p60)

SmartTubeNext 10.44

ExoPlayer: 2.10.6 Video buffer: Medium

2160p60 (4K/UHD) There is slight micro-stuttering every few seconds which is mostly visible in panning shots. CPU usage is close to 100% when this happens. No frames are being dropped. So the problem might be VSync timing related and happen inside the SurfaceFlinger. There is lots of frame dropping when browsing recommendations on top of the playing video. As soon as ExoPlayer finishes downloading towards the end of the clip, rendering becomes smooth, even when browsing recommendations on top of the playing video. CPU usage drops considerably. So I assume that the streaming and rendering threads are fighting for resources.

2X speed exhibits extreme frame dropping and bad stuttering.

1440p60 (2K/QHD) Video playback is perfectly fine. CPU usage never goes high enough to cause stuttering. There is hardly any frame dropping when browsing recommendations on top of the playing video.

2X speed exhibits extreme frame dropping and bad stuttering.

SmartTubeNext 10.54

_ExoPlayer: 2.12.1 Mode: OPERATION_MODE_SYNCHRONOUS Video buffer: Medium_

2160p60 (4K/UHD) Heavy stuttering happens in the beginning due to very high CPU usage. Initial buffering seems to be more resource intensive than with ExoPlayer 2.10.6. Playback also suffers a bit more from the recurring micro-stuttering. There is lots of frame dropping when browsing recommendations on top of the playing video.

2X speed exhibits extreme frame dropping and bad stuttering.

1440p60 (2K/QHD) Video playback is perfectly fine. CPU usage never goes high enough to cause stuttering. There is hardly any frame dropping when browsing recommendations on top of the playing video.

2X speed exhibits extreme frame dropping and bad stuttering.

SmartTubeNext 10.56

_ExoPlayer: 2.12.1 Mode: OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING Video buffer: Medium_

Pretty similar to 10.54. Async MediaCodec does not seem to have an impact.

SmartTubeNext 10.58

_ExoPlayer: 2.12.1 Mode: OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD Video buffer: Medium_

Same as 10.56.

Conclusion

ExoPlayer 2.10.6 seems better than 2.12.1. The MediaCodec modes do not seem to be having a real impact. Are we sure that they get applied at all?

2160p60 suffers from recurring micro-stuttering on BRAVIA due to playback exhausting the slow CPU. Streaming high bitrate content (30mbps isn't exactly high though...) seems to have quite an impact on CPU usage. Also quite some frames get dropped when browsing recommendations on top of the playing video. 1440p60 is fine already (which is half the bitrate). 2160p60 is also fine after the clip has finished downloading. So it clearly looks like streaming and rendering threads are fighting for resources.

foreveryoungforty commented 3 years ago

@CiNcH83 @yuliskov Great technical analysis (I also have Sony BRAVIA KD-65XF9005) - as I mentioned in other post/issues regarding HDR and stutter, I also use the preset 2K 60fps vp9 hdr on my Sony 4K to get flawless playback. I also uncheck energy optimalization for STube in the special app settings on android 9, but I don't think that makes much difference. Changing the buffer to medium or even to maximum with 4K 60fps vp9 hdr had absolutely no influence on the playback here on my system ... same stutter. The solution to put the video preset on 2K 60fps vp9 hdr for a 4K-device remains a bit "strange/weird" from a user-standpoint, but it is a great work-a-round with still splendid picture. There is only one thing that keeps me wondering and hoping that there must be hope for a solution: what is the reason that this video still plays without any stutter on SYTV 6.17.730 (which has exo 2.10.6) with the optimal video preset 4K ? (just checked it a minute ago). If I am logically thinking, the reason must be found in a technical difference between the two apps....

CiNcH83 commented 3 years ago

what is the reason that this video still plays without any stutter on SYTV 6.17.730 (which has exo 2.10.6) with the optimal video preset 4K ?

Can't really confirm. It is on a level with STubeNext 10.44 here. Micro-stuttering still happens and is also caused by CPU usage going to almost 100% at times.

yuliskov commented 3 years ago

I can't find anything suspicious except of exoplayer version. Seems that exo 2.10.6 plays more smoothly on Sony BRAVIA KD-65XF9005

CiNcH83 commented 3 years ago

I posted my findings over at the ExoPlayer repository.

yuliskov commented 3 years ago

@foreveryoungforty what do you say about 10.50? It should perform exactly the same as the old app. https://github.com/yuliskov/SmartTubeNext/releases/download/10.50/STubeNext_stbeta_v10.50_r.apk

foreveryoungforty commented 3 years ago

@foreveryoungforty what do you say about 10.50? It should perform exactly the same as the old app. https://github.com/yuliskov/SmartTubeNext/releases/download/10.50/STubeNext_stbeta_v10.50_r.apk

I will re-install and let you know by mail.

kuafor41 commented 3 years ago

SmartTubeNext 10.56 is play smoothly (acceptable than others) except the video beginnig stutterings on MiBoxS with 1.0 playback speed, just fyi ...

kuafor41 commented 3 years ago

I am receiving many frame drops [more frame drops than undropped ones -also some frame drops at FHD video-] with 10.59 version at 4k 60fps (1.0 playback speed). I dont know which operation mode is using on 10.59 exoplayer 2.10.6 but sytnext 10.56 was way better on 4k 60fps it has no frame drops with its exoplayer playback mode via MiBoxS !

Please turn back; ExoPlayer: 2.12.1 Mode: OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING

PS: old seeking preview style was better than in this version (10.59) from my point of view.

yuliskov commented 3 years ago

Thanks for the feedback. I'll add an option to select preview style. ExoPlayer also will be upgraded, but later.

foreveryoungforty commented 3 years ago

I am receiving many frame drops [more frame drops than undropped ones -also some frame drops at FHD video-] with 10.59 version at 4k 60fps (1.0 playback speed). I dont know which operation mode is using on 10.59 exoplayer 2.10.6 but sytnext 10.56 was way better on 4k 60fps it has no frame drops with its exoplayer playback mode via MiBoxS !

Please turn back; ExoPlayer: 2.12.1 Mode: OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING

PS: old seeking preview style was better than in this version (10.59) from my point of view.

Everything very great here with 10.59 playback on Sony 4K 65XF9005 (no frame drops). I just tested your seek-preview-remark , and I agree - would be great to choose to the personal taste of the user : 1 image or a sequence of preview images as it was before.

kuafor41 commented 3 years ago

I am receiving many frame drops [more frame drops than undropped ones -also some frame drops at FHD video-] with 10.59 version at 4k 60fps (1.0 playback speed). I dont know which operation mode is using on 10.59 exoplayer 2.10.6 but sytnext 10.56 was way better on 4k 60fps it has no frame drops with its exoplayer playback mode via MiBoxS ! Please turn back; ExoPlayer: 2.12.1 Mode: OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING PS: old seeking preview style was better than in this version (10.59) from my point of view.

Everything very great here with 10.59 playback on Sony 4K 65XF9005 (no frame drops). I just tested your seek-preview-remark , and I agree - would be great to choose to the personal taste of the user : 1 image or a sequence of preview images as it was before.

Wish i was take some photos from frame drops and add here but i immediatelly downgrade to 10.56 ! Probably different machines shows different behaviours but i am pretty sure most of the endusers are run sytnext with MiBox kind of devices, Android Boxes (same specs.) as their daily driver!

PS: I am choosing video beginning stutering (as you know it is acceptable) on 4k 60fps that i live on 10.56 if i compare with 10.59 frame drops

foreveryoungforty commented 3 years ago

Probably different machines shows different behaviours but i am pretty sure most of the endusers are run sytnext with MiBox kind of devices, Android Boxes (same specs.) as their daily driver!

Indeed, as always, there are differences with (hardware/cpu/OS) capabilities of different devices - It is not my intention to discuss if there are more endusers of this or that type : a modern app should work on all popular devices (and Sony is over here, as well as MiBox). But of course we should keep in mind what the developer writes on his main page : SmartTubeNext is an unofficial YouTube client for Android TV (which means installed/run directly on an Android TV & thus evaluated - reason why also other apps like Facebook, Google app,... have an Android TV-version apart from a version for other devices like tablet,...). (Just to compare : at my professional work, we support our apps for all popular devices with OS-versions that are still supported by Android)

kuafor41 commented 3 years ago

I get your point, and agree on your below sentence. I am also curious about smartyoutube’s exoplayer version and playback mode how can be reflect to sytnext cause it was not problematic for me too like you stated on your above sentences. Lets see upcoming builds.

a modern app should work on all popular devices (and Sony is over here as well as MiBox). And of course we should keep in mind what the developer writes on his main page : SmartTubeNext is an unofficial YouTube client for Android TV. (Just to compare : at my professional work, we support our apps for all popular devices with OS-versions that are still supported by Android)

CiNcH83 commented 3 years ago

@yuliskov

ExoPlayer devs ask me to do another test:

experimentalSetVideoMediaCodecOperationMode(MediaCodecRenderer. OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING);
experimentalSetAudioMediaCodecOperationMode(MediaCodecRenderer. OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING);

Can you create a build with async MediaCodec enabled for audio as well?

yuliskov commented 3 years ago

exo 2.12.1 experimentalSetVideoMediaCodecOperationMode(MediaCodecRenderer.OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING); experimentalSetAudioMediaCodecOperationMode(MediaCodecRenderer.OPERATION_MODE_ASYNCHRONOUS_DEDICATED_THREAD_ASYNCHRONOUS_QUEUEING);

https://github.com/yuliskov/SmartTubeNext/releases/download/beta/STubeNext_stbeta_v10.65_r.apk

CiNcH83 commented 3 years ago

Thanks! Didn't really improve things.

foreveryoungforty commented 3 years ago

Thanks! Didn't really improve things.

Indeed, same over here , in fact more stutter/lagging in the first 10-15 seconds of our reference test-video The World in HDR in 4K. Beta 10.59 with exo 2.10.6 was far better for me. I think your earlier conclusion "ExoPlayer 2.10.6 seems better than 2.12.1" is still valid on Android TV (especially if there are no other advantages with 2.21.1, which I don't see in the playback till now....)

CiNcH83 commented 3 years ago

2.10.6 seems to be from the Amazon fork of ExoPlayer. I wonder whether this is what makes the difference...

kuafor41 commented 3 years ago

SYTNext 10.65 & 10.67 with The World in HDR in 4K 60fps many dropped frames (more than undropped) so same here. Is there any possiblity to try same exoplayer version and same player mode that used on SmartYTTV at SYTNext ?

foreveryoungforty commented 3 years ago

10.67 with exo 2.10.6 runs perfect again on my Android TV.

CiNcH83 commented 3 years ago

@yuliskov

This is the response I got from ExoPlayer devs:

I took a closer look at your code sample and I see your renderer factory is also overriding buildAudioRenderers() and buildVideoRenderers(). The code is replacing the MediaCodec audio and video renderers with custom ones. However, the MediaCodec operation modes need to be passed down to the MediaCodecVideoRenderer and MediaCodecAudiorRenderer instances, and I think the code does not do it at the moment (at least on the link you posted before). You should be able to set the operation mode on AudioDelayMediaCodecAudioRenderer and FrameDropFixMediaCodecVideoRenderer.

When playback starts, you should see this line being executed in the MediaCodec audio/video renderers when they initialize the MediaCodec internally.

Can you please verify the operation mode is passed down the MediaCodecRenderers correctly?

Can you confirm that async MediaCodec is indeed being used? It would explain why different modes didn't make any difference.

yuliskov commented 3 years ago

Thanks. Very useful info.

Regards, Yuriy

On Tue, Dec 22, 2020, 14:20 CiNcH83 notifications@github.com wrote:

@yuliskov https://github.com/yuliskov

This is the response I got from ExoPlayer devs:

I took a closer look at your code sample and I see your renderer factory is also overriding buildAudioRenderers() and buildVideoRenderers(). The code is replacing the MediaCodec audio and video renderers with custom ones. However, the MediaCodec operation modes need to be passed down to the MediaCodecVideoRenderer and MediaCodecAudiorRenderer instances, and I think the code does not do it at the moment (at least on the link you posted before). You should be able to set the operation mode on AudioDelayMediaCodecAudioRenderer and FrameDropFixMediaCodecVideoRenderer.

When playback starts, you should see this line https://github.com/google/ExoPlayer/blob/r2.12.1/library/core/src/main/java/com/google/android/exoplayer2/mediacodec/MediaCodecRenderer.java#L1135 being executed in the MediaCodec audio/video renderers when they initialize the MediaCodec internally.

Can you please verify the operation mode is passed down the MediaCodecRenderers correctly?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/yuliskov/SmartTubeNext/issues/259#issuecomment-749513656, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM7Z6BHOG3ZUXCH3M7G7EDSWCFKLANCNFSM4U2REZXA .

kuafor41 commented 3 years ago

@yuliskov v10.69 works flawlessly so far! No frame drops, no lags etc. with same test videos, just fyi...

edit1: indeed CiNcH83's below comment is valid for me too after more experience with the build but to be honest current build better than previous builds.

foreveryoungforty commented 3 years ago

Same over here with 10.69: perfect playback !

CiNcH83 commented 3 years ago

It still exhibits quite some stuttering when navigating menus on top of video (dropped frames) and also stuttering/micro-stuttering every few seconds without any interaction.

Hope that @yuliskov can pull off a version with the mentioned optimizations and check whether AsynchronousMediaCodecAdapter is indeed being instantiated.

CiNcH83 commented 3 years ago

@yuliskov

I am a developer myself, nowadays mainly C/C++/C# under Linux and Windows (also Java back in my studies). I have also done media applications based on DXVA/Direct3D. I am not so much into Android development though.

I now tried to build SmartTubeNext in order to be able to check some ExoPlayer related things myself. I installed all the necessary tools and dependencies (Android Studio with correct gradle and SDK version). Building still gives me the following error though:

Execution failed for task ':smarttubetv:processStbetaDebugGoogleServices'.
> File google-services.json is missing. The Google Services Plugin cannot function without it. 
   Searched Location: 
  D:\private\SmartTubeNext\smarttubetv\src\stbeta\google-services.json
  D:\private\SmartTubeNext\smarttubetv\src\debug\google-services.json
  D:\private\SmartTubeNext\smarttubetv\src\stbetaDebug\google-services.json
  D:\private\SmartTubeNext\smarttubetv\src\stbeta\debug\google-services.json
  D:\private\SmartTubeNext\smarttubetv\src\debug\stbeta\google-services.json
  D:\private\SmartTubeNext\smarttubetv\google-services.json

Can you help me out on this? Are all necessary files for building checked into the repo?

yuliskov commented 3 years ago

Try to build with this command

./gradlew buildStorigDebug

Regards, Yuriy

On Wed, Dec 30, 2020, 13:02 CiNcH83 notifications@github.com wrote:

@yuliskov https://github.com/yuliskov

I am a developer myself, nowadays mainly C/C++/C# under Linux and Windows (also Java back in my studies). I have also done media applications based on DXVA/Direct3D. I am not so much into Android development though.

I now tried to build SmartTubeNext in order to be able to check some ExoPlayer related things myself. I installed all the necessary tools and dependencies (Android Studio with correct gradle and SDK version). Building still gives me the following error though:

Execution failed for task ':smarttubetv:processStbetaDebugGoogleServices'.

File google-services.json is missing. The Google Services Plugin cannot function without it. Searched Location: D:\private\SmartTubeNext\smarttubetv\src\stbeta\google-services.json D:\private\SmartTubeNext\smarttubetv\src\debug\google-services.json D:\private\SmartTubeNext\smarttubetv\src\stbetaDebug\google-services.json D:\private\SmartTubeNext\smarttubetv\src\stbeta\debug\google-services.json D:\private\SmartTubeNext\smarttubetv\src\debug\stbeta\google-services.json D:\private\SmartTubeNext\smarttubetv\google-services.json

Can you help me out on this? Are all necessary files for building checked into the repo?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/yuliskov/SmartTubeNext/issues/259#issuecomment-752417599, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM7Z6G3BUJVLG3X3DHPOSDSXMCF7ANCNFSM4U2REZXA .

CiNcH83 commented 3 years ago

It is a bash script. I am building on Windows though.

CiNcH83 commented 3 years ago

I tried with this gradlew.bat. Looks to download Gradle 5.4.1 instead of the 4.5.1 required by STubeNext. Build fails with invalid JRE installation error:

Execution failed for task ':appupdatechecker2:compileStorigDebugJavaWithJavac'.
> Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_241 contains a valid JDK installation.

EDIT: Guess I need JDK...

CiNcH83 commented 3 years ago

JDK error solved. Now I get the following using this gradlew.bat:

> Task :smarttubetv:compileStorigDebugJavaWithJavac
D:\private\SmartTubeNext\smarttubetv\src\main\java\com\liskovsoft\smartyoutubetv2\tv\ui\playback\other\StoryBoardSeekDataProvider.java:10: error: class StoryboardSeekDataProvider is public, should be declared in a file named StoryboardSeekDataProvider.java
public class StoryboardSeekDataProvider extends PlaybackSeekDataProvider {
       ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
yuliskov commented 3 years ago

update repo and try again

On Wed, Dec 30, 2020 at 1:56 PM CiNcH83 notifications@github.com wrote:

JDK error solved. Now I get the following using this gradlew.bat https://github.com/gradle/gradle/blob/master/gradlew.bat:

Task :smarttubetv:compileStorigDebugJavaWithJavac D:\private\SmartTubeNext\smarttubetv\src\main\java\com\liskovsoft\smartyoutubetv2\tv\ui\playback\other\StoryBoardSeekDataProvider.java:10: error: class StoryboardSeekDataProvider is public, should be declared in a file named StoryboardSeekDataProvider.java public class StoryboardSeekDataProvider extends PlaybackSeekDataProvider { ^ Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 1 error

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/yuliskov/SmartTubeNext/issues/259#issuecomment-752474925, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM7Z6G56KODTBI5YBN6EBLSXMINZANCNFSM4U2REZXA .