Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
feceabad
authored
Oct 13, 2017
by
Oliver Woodman
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Tweak recently merged pull requests
parent
1c594b4c
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
8 additions
and
68 deletions
library/hls/src/androidTest/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylistParserTest.java
library/hls/src/androidTest/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.java
library/hls/src/androidTest/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylistParserTest.java
View file @
feceabad
...
@@ -16,23 +16,19 @@
...
@@ -16,23 +16,19 @@
package
com
.
google
.
android
.
exoplayer2
.
source
.
hls
.
playlist
;
package
com
.
google
.
android
.
exoplayer2
.
source
.
hls
.
playlist
;
import
android.net.Uri
;
import
android.net.Uri
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.Format
;
import
com.google.android.exoplayer2.Format
;
import
com.google.android.exoplayer2.ParserException
;
import
com.google.android.exoplayer2.ParserException
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
junit.framework.TestCase
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayInputStream
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.nio.charset.Charset
;
import
java.nio.charset.Charset
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.List
;
import
junit.framework.TestCase
;
/**
/**
* Test for {@link HlsMasterPlaylistParserTest}
* Test for {@link HlsMasterPlaylistParserTest}
.
*/
*/
public
class
HlsMasterPlaylistParserTest
extends
TestCase
{
public
class
HlsMasterPlaylistParserTest
extends
TestCase
{
...
@@ -148,44 +144,6 @@ public class HlsMasterPlaylistParserTest extends TestCase {
...
@@ -148,44 +144,6 @@ public class HlsMasterPlaylistParserTest extends TestCase {
assertEquals
(
Collections
.
emptyList
(),
playlist
.
muxedCaptionFormats
);
assertEquals
(
Collections
.
emptyList
(),
playlist
.
muxedCaptionFormats
);
}
}
public
void
testReorderedVariantCopy
()
throws
IOException
{
HlsMasterPlaylist
playlist
=
parseMasterPlaylist
(
PLAYLIST_URI
,
MASTER_PLAYLIST
);
HlsMasterPlaylist
nonReorderedPlaylist
=
playlist
.
copyWithReorderedVariants
(
new
Comparator
<
HlsMasterPlaylist
.
HlsUrl
>()
{
@Override
public
int
compare
(
HlsMasterPlaylist
.
HlsUrl
url1
,
HlsMasterPlaylist
.
HlsUrl
url2
)
{
return
0
;
}
});
assertEquals
(
playlist
.
variants
,
nonReorderedPlaylist
.
variants
);
HlsMasterPlaylist
.
HlsUrl
preferred
=
null
;
for
(
HlsMasterPlaylist
.
HlsUrl
url
:
playlist
.
variants
)
{
if
(
preferred
==
null
||
url
.
format
.
bitrate
>
preferred
.
format
.
bitrate
)
{
preferred
=
url
;
}
}
assertNotNull
(
preferred
);
final
Comparator
comparator
=
Collections
.
reverseOrder
(
new
Comparator
<
HlsMasterPlaylist
.
HlsUrl
>()
{
@Override
public
int
compare
(
HlsMasterPlaylist
.
HlsUrl
url1
,
HlsMasterPlaylist
.
HlsUrl
url2
)
{
if
(
url1
.
format
.
bitrate
>
url2
.
format
.
bitrate
)
{
return
1
;
}
if
(
url2
.
format
.
bitrate
>
url1
.
format
.
bitrate
)
{
return
-
1
;
}
return
0
;
}
});
HlsMasterPlaylist
reorderedPlaylist
=
playlist
.
copyWithReorderedVariants
(
comparator
);
assertEquals
(
reorderedPlaylist
.
variants
.
get
(
0
),
preferred
);
}
private
static
HlsMasterPlaylist
parseMasterPlaylist
(
String
uri
,
String
playlistString
)
private
static
HlsMasterPlaylist
parseMasterPlaylist
(
String
uri
,
String
playlistString
)
throws
IOException
{
throws
IOException
{
Uri
playlistUri
=
Uri
.
parse
(
uri
);
Uri
playlistUri
=
Uri
.
parse
(
uri
);
...
...
library/hls/src/androidTest/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylistParserTest.java
View file @
feceabad
...
@@ -27,7 +27,7 @@ import java.util.Locale;
...
@@ -27,7 +27,7 @@ import java.util.Locale;
import
junit.framework.TestCase
;
import
junit.framework.TestCase
;
/**
/**
* Test for {@link HlsMediaPlaylistParserTest}
* Test for {@link HlsMediaPlaylistParserTest}
.
*/
*/
public
class
HlsMediaPlaylistParserTest
extends
TestCase
{
public
class
HlsMediaPlaylistParserTest
extends
TestCase
{
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java
View file @
feceabad
...
@@ -76,7 +76,8 @@ public final class HlsMediaSource implements MediaSource,
...
@@ -76,7 +76,8 @@ public final class HlsMediaSource implements MediaSource,
public
HlsMediaSource
(
Uri
manifestUri
,
HlsDataSourceFactory
dataSourceFactory
,
public
HlsMediaSource
(
Uri
manifestUri
,
HlsDataSourceFactory
dataSourceFactory
,
int
minLoadableRetryCount
,
Handler
eventHandler
,
int
minLoadableRetryCount
,
Handler
eventHandler
,
AdaptiveMediaSourceEventListener
eventListener
)
{
AdaptiveMediaSourceEventListener
eventListener
)
{
this
(
manifestUri
,
dataSourceFactory
,
minLoadableRetryCount
,
eventHandler
,
eventListener
,
new
HlsPlaylistParser
());
this
(
manifestUri
,
dataSourceFactory
,
minLoadableRetryCount
,
eventHandler
,
eventListener
,
new
HlsPlaylistParser
());
}
}
public
HlsMediaSource
(
Uri
manifestUri
,
HlsDataSourceFactory
dataSourceFactory
,
public
HlsMediaSource
(
Uri
manifestUri
,
HlsDataSourceFactory
dataSourceFactory
,
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMasterPlaylist.java
View file @
feceabad
...
@@ -19,7 +19,6 @@ import com.google.android.exoplayer2.Format;
...
@@ -19,7 +19,6 @@ import com.google.android.exoplayer2.Format;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
com.google.android.exoplayer2.util.MimeTypes
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -125,25 +124,6 @@ public final class HlsMasterPlaylist extends HlsPlaylist {
...
@@ -125,25 +124,6 @@ public final class HlsMasterPlaylist extends HlsPlaylist {
}
}
/**
/**
* Returns a copy of this playlist which includes the variants sorted using the passed comparator. NOTE: the variants
* will be sorted in ascending order by default. If you wish to use descending order, you can wrap your comparator in
* {@link Collections#reverseOrder(Comparator)}.
*
* @param variantComparator the comparator to use to sort the variant list.
* @return a copy of this playlist which includes the variants sorted using the passed comparator.
*/
public
HlsMasterPlaylist
copyWithReorderedVariants
(
Comparator
<
HlsUrl
>
variantComparator
)
{
return
new
HlsMasterPlaylist
(
baseUri
,
tags
,
filterVariants
(
variants
,
variantComparator
),
audios
,
subtitles
,
muxedAudioFormat
,
muxedCaptionFormats
);
}
private
List
<
HlsUrl
>
filterVariants
(
List
<
HlsUrl
>
variants
,
Comparator
<
HlsUrl
>
variantComparator
)
{
List
<
HlsUrl
>
reorderedList
=
new
ArrayList
<>(
variants
);
Collections
.
sort
(
reorderedList
,
variantComparator
);
return
reorderedList
;
}
/**
* Creates a playlist with a single variant.
* Creates a playlist with a single variant.
*
*
* @param variantUrl The url of the single variant.
* @param variantUrl The url of the single variant.
...
...
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsPlaylistTracker.java
View file @
feceabad
...
@@ -145,15 +145,16 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
...
@@ -145,15 +145,16 @@ public final class HlsPlaylistTracker implements Loader.Callback<ParsingLoadable
*/
*/
public
HlsPlaylistTracker
(
Uri
initialPlaylistUri
,
HlsDataSourceFactory
dataSourceFactory
,
public
HlsPlaylistTracker
(
Uri
initialPlaylistUri
,
HlsDataSourceFactory
dataSourceFactory
,
EventDispatcher
eventDispatcher
,
int
minRetryCount
,
EventDispatcher
eventDispatcher
,
int
minRetryCount
,
PrimaryPlaylistListener
primaryPlaylistListener
,
ParsingLoadable
.
Parser
<
HlsPlaylist
>
playlistParser
)
{
PrimaryPlaylistListener
primaryPlaylistListener
,
ParsingLoadable
.
Parser
<
HlsPlaylist
>
playlistParser
)
{
this
.
initialPlaylistUri
=
initialPlaylistUri
;
this
.
initialPlaylistUri
=
initialPlaylistUri
;
this
.
dataSourceFactory
=
dataSourceFactory
;
this
.
dataSourceFactory
=
dataSourceFactory
;
this
.
eventDispatcher
=
eventDispatcher
;
this
.
eventDispatcher
=
eventDispatcher
;
this
.
minRetryCount
=
minRetryCount
;
this
.
minRetryCount
=
minRetryCount
;
this
.
primaryPlaylistListener
=
primaryPlaylistListener
;
this
.
primaryPlaylistListener
=
primaryPlaylistListener
;
this
.
playlistParser
=
playlistParser
;
listeners
=
new
ArrayList
<>();
listeners
=
new
ArrayList
<>();
initialPlaylistLoader
=
new
Loader
(
"HlsPlaylistTracker:MasterPlaylist"
);
initialPlaylistLoader
=
new
Loader
(
"HlsPlaylistTracker:MasterPlaylist"
);
this
.
playlistParser
=
playlistParser
;
playlistBundles
=
new
IdentityHashMap
<>();
playlistBundles
=
new
IdentityHashMap
<>();
playlistRefreshHandler
=
new
Handler
();
playlistRefreshHandler
=
new
Handler
();
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment