NewPipe/app/src/main/java/org/schabi/newpipe
AudricV e3c2aea3cc
Fix playback of non-URI HLS streams
A custom HlsPlaylistParserFactory cannot be used anymore to play HLS streams.

This needs to be replaced by a custom HlsDataSourceFactory, which returns a ByteArrayDataSource (where the bytes of this DataSource correspond to the bytes of the playlist string) and a specified DataSource for other request types.

This model has two limitations:

- if media requests are relative, the URI from which the manifest comes from (either the manifest URI (preferred) or the master URI (if applicable)) must be returned, otherwise the content will be not playable, as it will be an invalid URL, or it may be treat as something unexpected, for instance as a file for DefaultDataSources;
- if the playlist is a master playlist, endless loops should be encountered because the DataSources created for media playlists will use the master playlist response instead of fetching the corresponding playlist. With the current model of HlsDataSourceFactory, there is no possibility to distinguish the playlist type or the URI that is requested.

If ExoPlayer provides a way to create HlsMediaSources with an HlsPlaylist in the future, it should be used instead of this solution.
2022-06-17 22:01:30 +02:00
..
about De-duplicate showLicense methods 2022-03-18 13:48:07 -04:00
database Use StreamTypeUtil where possible and add isAudio and isVideo to this utility class 2022-06-17 22:01:26 +02:00
download Filter streams using Java 8 Stream's API instead of removing streams with list iterators and add a better toast when there is no audio stream for external players 2022-06-17 22:01:29 +02:00
error Merge pull request #7977 from Stypox/error-notification-kitkat 2022-03-25 20:00:48 +01:00
fragments Filter streams using Java 8 Stream's API instead of removing streams with list iterators and add a better toast when there is no audio stream for external players 2022-06-17 22:01:29 +02:00
info_list Use StreamTypeUtil where possible and add isAudio and isVideo to this utility class 2022-06-17 22:01:26 +02:00
ktx Use JvmOverloads. 2022-05-13 07:46:02 +05:30
local Add support of other delivery methods than progressive HTTP (in the player only) 2022-06-17 22:00:22 +02:00
player Fix playback of non-URI HLS streams 2022-06-17 22:01:30 +02:00
settings Bonus fix: Made ``single_choice_dialog_view`` scrollable + use viewbinding 2022-05-28 00:46:28 +02:00
streams Use @SuppressWarnings for checkstyle suppressions & warnings 2022-03-18 23:57:11 +01:00
util Filter streams using Java 8 Stream's API instead of removing streams with list iterators and add a better toast when there is no audio stream for external players 2022-06-17 22:01:29 +02:00
views Merge pull request #8066 from TacoTheDank/simpleSeekbarChange 2022-03-19 14:37:10 +01:00
App.java Update ACRA library 2022-04-14 22:08:42 -04:00
BaseFragment.java Get rid of setUserVisibleHint 2021-10-16 15:33:45 -04:00
DownloaderImpl.java Update USER_AGENT in DownloaderImpl 2022-04-20 16:15:27 +03:00
ExitActivity.java Replaced System.Exit calls with FinishAffinity and Start Activity calls 2021-06-17 17:18:15 +01:00
MainActivity.java Use simpler DrawerLayout method 2022-04-14 16:50:28 -04:00
NewPipeDatabase.java Notifications about new streams 2021-09-07 13:30:16 +03:00
NewVersionWorker.kt Convert NewVersionWorker to Kotlin 2022-03-03 13:34:35 -05:00
PanicResponderActivity.java Clean up SDK version checks 2020-09-06 12:55:30 +02:00
QueueItemMenuUtil.java Deduplicate code for fetching stream info when sparse 2022-03-03 16:54:40 +01:00
RouterActivity.java Add support of other delivery methods than progressive HTTP (in the player only) 2022-06-17 22:00:22 +02:00