NewPipe/app/src/main/java/org/schabi/newpipe/util
AudricV 210834fbe9
Add support of other delivery methods than progressive HTTP (in the player only)
Detailed changes:

- External players:

  - Add a message instruction about stream selection;
  - Add a message when there is no stream available for external players;
  - Return now HLS, DASH and SmoothStreaming URL contents, in addition to progressive HTTP ones.

- Player:

  - Support DASH, HLS and SmoothStreaming streams for videos, whether they are content URLs or the manifests themselves, in addition to progressive HTTP ones;
  - Use a custom HttpDataSource to play YouTube contents, based of ExoPlayer's default one, which allows better spoofing of official clients (custom user-agent and headers (depending of the client used), use of range and rn (set dynamically by the DataSource) parameters);
  - Fetch YouTube progressive contents as DASH streams, like official clients, support fully playback of livestreams which have ended recently and OTF streams;
  - Use ExoPlayer's default retries count for contents on non-fatal errors (instead of Integer.MAX_VALUE for non-live contents and 5 for live contents).

- Download dialog:

  - Add message about support of progressive HTTP streams only for downloading;
  - Remove several duplicated code and update relevant usages;
  - Support downloading of contents with an unknown media format.

- ListHelper:

  - Catch NumberFormatException when trying to compare two video streams between them.

- Tests:

  - Update ListHelperTest and StreamItemAdapterTest to fix breaking changes in the extractor.

- Other places:

  - Fixes deprecation of changes made in the extractor;
  - Improve some code related to the files changed.

- Issues fixed and/or improved with the changes:

  - Seeking of PeerTube HLS streams (the duration shown was the one from the stream duration and not the one parsed, incomplete because HLS streams are fragmented MP4s with multiple sidx boxes, for which seeking is not supported by ExoPlayer) (the app now uses the HLS manifest returned for each quality, in the master playlist (not fetched and computed by the extractor));
  - Crash when loading PeerTube streams with a separated audio;
  - Lack of some streams on some YouTube videos (OTF streams);
  - Loading times of YouTube streams, after a quality change or a playback start;
  - View count of YouTube ended livestreams interpreted as watching count (this type of streams is not interpreted anymore as livestreams);
  - Watchable time of YouTube ended livestreams;
  - Playback of SoundCloud HLS-only tracks (which cannot be downloaded anymore because the workaround which was used is being removed by SoundCloud, so it has been removed from the extractor).
2022-06-17 22:00:22 +02:00
..
external_communication Improvements to sharing content with thumbnail 2022-05-22 21:34:10 +02:00
urlfinder Auto-format using Ktlint 2020-05-01 20:13:21 +02:00
CommentTextOnTouchListener.java Initial work: use disposables for timestamps parsing in YouTube video descriptions and YouTube comments 2021-06-11 12:12:08 +02:00
Constants.kt Combine the two Constants files into one file. 2021-01-15 12:13:47 +05:30
CookieUtils.java Use final where possible 2020-08-16 10:25:09 +02:00
DeviceUtils.java Disable media tunneling on Philips QM16XE 2021-12-04 22:23:09 +01:00
ExtractorHelper.java Deduplicate code for fetching stream info when sparse 2022-03-03 16:54:40 +01:00
FallbackViewHolder.java Improve code style to be more consistent 2020-04-02 15:57:50 +02:00
FilePickerActivityHelper.java Support SAF properly 2021-06-08 10:40:44 +02:00
FilenameUtils.java Apply the requested changes and little improvements 2021-01-16 13:23:42 +01:00
InfoCache.java Use final where possible 2020-08-16 10:25:09 +02:00
KeyboardUtil.java Fix keyboard showing after the search box acquiring focus (#8227) 2022-04-18 16:05:42 +02:00
KioskTranslator.java Annotate some NonNulls, some lint cleaning 2022-03-18 13:15:44 -04:00
ListHelper.java Add support of other delivery methods than progressive HTTP (in the player only) 2022-06-17 22:00:22 +02:00
Localization.java Added plural forms for download related strings (#6930) 2021-08-29 13:28:01 +02:00
NavigationHelper.java Add support of other delivery methods than progressive HTTP (in the player only) 2022-06-17 22:00:22 +02:00
NewPipeTextViewHelper.java Adress new requested changes 2021-10-16 15:32:56 +02:00
OnClickGesture.java Improve code style to be more consistent 2020-04-02 15:57:50 +02:00
PeertubeHelper.java Apply the requested changes and little improvements 2021-01-16 13:23:42 +01:00
PermissionHelper.java Fix a few SonarLint warnings 2021-09-05 19:54:28 +02:00
PicassoHelper.java Improvements to sharing content with thumbnail 2022-05-22 21:34:10 +02:00
RelatedItemInfo.java Rename related streams to related items 2021-03-31 22:33:22 +02:00
ReleaseVersionUtil.kt Convert NewVersionWorker to Kotlin 2022-03-03 13:34:35 -05:00
SavedState.kt Changed package as the old one is deprecated 2021-08-26 18:09:27 +02:00
SecondaryStreamHelper.java Add support of other delivery methods than progressive HTTP (in the player only) 2022-06-17 22:00:22 +02:00
SerializedCache.java Solve Java warning "Raw use of parameterized class" 2022-02-19 17:30:38 +01:00
ServiceHelper.java Removed placeholder prefix 2022-05-07 15:08:37 +02:00
SimpleOnSeekBarChangeListener.kt Create stub implementation for OnSeekBarChangeListener 2022-03-17 21:49:04 -04:00
SliderStrategy.java Improve code style to be more consistent 2020-04-02 15:57:50 +02:00
SparseItemUtil.java Fix `SparseItemUtil` loading 2022-03-30 21:11:15 +02:00
StateSaver.java Fix NullPointerException: Attempt to get length of null array in MainActivity (#5999) 2021-04-06 14:13:13 +02:00
StreamItemAdapter.java Add support of other delivery methods than progressive HTTP (in the player only) 2022-06-17 22:00:22 +02:00
StreamTypeUtil.java Add support of other delivery methods than progressive HTTP (in the player only) 2022-06-17 22:00:22 +02:00
TLSSocketFactoryCompat.java Removed unused imports 2021-11-06 21:07:00 +01:00
ThemeHelper.java Use AppCompatResources. 2022-05-16 12:27:44 +05:30
ZipHelper.java Move Stored(File|Directory)Helper into NewPipe 2021-06-08 10:40:44 +02:00