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
1809a0b9
authored
May 03, 2022
by
ibaker
Committed by
Ian Baker
May 09, 2022
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Migrate usages from C.TYPE_* to C.CONTENT_TYPE_*
PiperOrigin-RevId: 446156308
parent
76627d71
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
108 additions
and
103 deletions
demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java
demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java
extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java
extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionUriBuilder.java
extensions/ima/src/test/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoaderTest.java
extensions/ima/src/test/java/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionUriBuilderTest.java
library/common/src/main/java/com/google/android/exoplayer2/util/Util.java
library/common/src/test/java/com/google/android/exoplayer2/util/UtilTest.java
library/core/src/main/java/com/google/android/exoplayer2/analytics/MediaMetricsListener.java
library/core/src/main/java/com/google/android/exoplayer2/offline/DefaultDownloaderFactory.java
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadRequest.java
library/core/src/main/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.java
library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java
library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsLoader.java
library/core/src/test/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactoryTest.java
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java
library/dash/src/test/java/com/google/android/exoplayer2/source/dash/DefaultMediaSourceFactoryTest.java
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java
library/hls/src/test/java/com/google/android/exoplayer2/source/hls/DefaultMediaSourceFactoryTest.java
library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMediaSource.java
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java
library/smoothstreaming/src/test/java/com/google/android/exoplayer2/source/smoothstreaming/DefaultMediaSourceFactoryTest.java
testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSourceFactory.java
demos/gl/src/main/java/com/google/android/exoplayer2/gldemo/MainActivity.java
View file @
1809a0b9
...
@@ -163,12 +163,12 @@ public final class MainActivity extends Activity {
...
@@ -163,12 +163,12 @@ public final class MainActivity extends Activity {
TextUtils
.
isEmpty
(
fileExtension
)
TextUtils
.
isEmpty
(
fileExtension
)
?
Util
.
inferContentType
(
uri
)
?
Util
.
inferContentType
(
uri
)
:
Util
.
inferContentTypeForExtension
(
fileExtension
);
:
Util
.
inferContentTypeForExtension
(
fileExtension
);
if
(
type
==
C
.
TYPE_DASH
)
{
if
(
type
==
C
.
CONTENT_
TYPE_DASH
)
{
mediaSource
=
mediaSource
=
new
DashMediaSource
.
Factory
(
dataSourceFactory
)
new
DashMediaSource
.
Factory
(
dataSourceFactory
)
.
setDrmSessionManagerProvider
(
unusedMediaItem
->
drmSessionManager
)
.
setDrmSessionManagerProvider
(
unusedMediaItem
->
drmSessionManager
)
.
createMediaSource
(
MediaItem
.
fromUri
(
uri
));
.
createMediaSource
(
MediaItem
.
fromUri
(
uri
));
}
else
if
(
type
==
C
.
TYPE_OTHER
)
{
}
else
if
(
type
==
C
.
CONTENT_
TYPE_OTHER
)
{
mediaSource
=
mediaSource
=
new
ProgressiveMediaSource
.
Factory
(
dataSourceFactory
)
new
ProgressiveMediaSource
.
Factory
(
dataSourceFactory
)
.
setDrmSessionManagerProvider
(
unusedMediaItem
->
drmSessionManager
)
.
setDrmSessionManagerProvider
(
unusedMediaItem
->
drmSessionManager
)
...
...
demos/surface/src/main/java/com/google/android/exoplayer2/surfacedemo/MainActivity.java
View file @
1809a0b9
...
@@ -208,12 +208,12 @@ public final class MainActivity extends Activity {
...
@@ -208,12 +208,12 @@ public final class MainActivity extends Activity {
TextUtils
.
isEmpty
(
fileExtension
)
TextUtils
.
isEmpty
(
fileExtension
)
?
Util
.
inferContentType
(
uri
)
?
Util
.
inferContentType
(
uri
)
:
Util
.
inferContentTypeForExtension
(
fileExtension
);
:
Util
.
inferContentTypeForExtension
(
fileExtension
);
if
(
type
==
C
.
TYPE_DASH
)
{
if
(
type
==
C
.
CONTENT_
TYPE_DASH
)
{
mediaSource
=
mediaSource
=
new
DashMediaSource
.
Factory
(
dataSourceFactory
)
new
DashMediaSource
.
Factory
(
dataSourceFactory
)
.
setDrmSessionManagerProvider
(
unusedMediaItem
->
drmSessionManager
)
.
setDrmSessionManagerProvider
(
unusedMediaItem
->
drmSessionManager
)
.
createMediaSource
(
MediaItem
.
fromUri
(
uri
));
.
createMediaSource
(
MediaItem
.
fromUri
(
uri
));
}
else
if
(
type
==
C
.
TYPE_OTHER
)
{
}
else
if
(
type
==
C
.
CONTENT_
TYPE_OTHER
)
{
mediaSource
=
mediaSource
=
new
ProgressiveMediaSource
.
Factory
(
dataSourceFactory
)
new
ProgressiveMediaSource
.
Factory
(
dataSourceFactory
)
.
setDrmSessionManagerProvider
(
unusedMediaItem
->
drmSessionManager
)
.
setDrmSessionManagerProvider
(
unusedMediaItem
->
drmSessionManager
)
...
...
extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java
View file @
1809a0b9
...
@@ -503,11 +503,11 @@ public final class ImaAdsLoader implements AdsLoader {
...
@@ -503,11 +503,11 @@ public final class ImaAdsLoader implements AdsLoader {
List
<
String
>
supportedMimeTypes
=
new
ArrayList
<>();
List
<
String
>
supportedMimeTypes
=
new
ArrayList
<>();
for
(
@C
.
ContentType
int
contentType
:
contentTypes
)
{
for
(
@C
.
ContentType
int
contentType
:
contentTypes
)
{
// IMA does not support Smooth Streaming ad media.
// IMA does not support Smooth Streaming ad media.
if
(
contentType
==
C
.
TYPE_DASH
)
{
if
(
contentType
==
C
.
CONTENT_
TYPE_DASH
)
{
supportedMimeTypes
.
add
(
MimeTypes
.
APPLICATION_MPD
);
supportedMimeTypes
.
add
(
MimeTypes
.
APPLICATION_MPD
);
}
else
if
(
contentType
==
C
.
TYPE_HLS
)
{
}
else
if
(
contentType
==
C
.
CONTENT_
TYPE_HLS
)
{
supportedMimeTypes
.
add
(
MimeTypes
.
APPLICATION_M3U8
);
supportedMimeTypes
.
add
(
MimeTypes
.
APPLICATION_M3U8
);
}
else
if
(
contentType
==
C
.
TYPE_OTHER
)
{
}
else
if
(
contentType
==
C
.
CONTENT_
TYPE_OTHER
)
{
supportedMimeTypes
.
addAll
(
supportedMimeTypes
.
addAll
(
Arrays
.
asList
(
Arrays
.
asList
(
MimeTypes
.
VIDEO_MP4
,
MimeTypes
.
VIDEO_MP4
,
...
...
extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionUriBuilder.java
View file @
1809a0b9
...
@@ -72,7 +72,7 @@ public final class ImaServerSideAdInsertionUriBuilder {
...
@@ -72,7 +72,7 @@ public final class ImaServerSideAdInsertionUriBuilder {
public
ImaServerSideAdInsertionUriBuilder
()
{
public
ImaServerSideAdInsertionUriBuilder
()
{
adTagParameters
=
ImmutableMap
.
of
();
adTagParameters
=
ImmutableMap
.
of
();
loadVideoTimeoutMs
=
DEFAULT_LOAD_VIDEO_TIMEOUT_MS
;
loadVideoTimeoutMs
=
DEFAULT_LOAD_VIDEO_TIMEOUT_MS
;
format
=
C
.
TYPE_OTHER
;
format
=
C
.
CONTENT_
TYPE_OTHER
;
}
}
/**
/**
...
@@ -141,7 +141,7 @@ public final class ImaServerSideAdInsertionUriBuilder {
...
@@ -141,7 +141,7 @@ public final class ImaServerSideAdInsertionUriBuilder {
* @return This instance, for convenience.
* @return This instance, for convenience.
*/
*/
public
ImaServerSideAdInsertionUriBuilder
setFormat
(
@ContentType
int
format
)
{
public
ImaServerSideAdInsertionUriBuilder
setFormat
(
@ContentType
int
format
)
{
checkArgument
(
format
==
C
.
TYPE_DASH
||
format
==
C
.
TYPE_HLS
);
checkArgument
(
format
==
C
.
CONTENT_TYPE_DASH
||
format
==
C
.
CONTENT_
TYPE_HLS
);
this
.
format
=
format
;
this
.
format
=
format
;
return
this
;
return
this
;
}
}
...
@@ -243,7 +243,7 @@ public final class ImaServerSideAdInsertionUriBuilder {
...
@@ -243,7 +243,7 @@ public final class ImaServerSideAdInsertionUriBuilder {
||
(!
TextUtils
.
isEmpty
(
assetKey
)
||
(!
TextUtils
.
isEmpty
(
assetKey
)
&&
TextUtils
.
isEmpty
(
contentSourceId
)
&&
TextUtils
.
isEmpty
(
contentSourceId
)
&&
TextUtils
.
isEmpty
(
videoId
)));
&&
TextUtils
.
isEmpty
(
videoId
)));
checkState
(
format
!=
C
.
TYPE_OTHER
);
checkState
(
format
!=
C
.
CONTENT_
TYPE_OTHER
);
@Nullable
String
adsId
=
this
.
adsId
;
@Nullable
String
adsId
=
this
.
adsId
;
if
(
adsId
==
null
)
{
if
(
adsId
==
null
)
{
adsId
=
assetKey
!=
null
?
assetKey
:
checkNotNull
(
videoId
);
adsId
=
assetKey
!=
null
?
assetKey
:
checkNotNull
(
videoId
);
...
@@ -330,9 +330,9 @@ public final class ImaServerSideAdInsertionUriBuilder {
...
@@ -330,9 +330,9 @@ public final class ImaServerSideAdInsertionUriBuilder {
.
createVodStreamRequest
(
checkNotNull
(
contentSourceId
),
checkNotNull
(
videoId
),
apiKey
);
.
createVodStreamRequest
(
checkNotNull
(
contentSourceId
),
checkNotNull
(
videoId
),
apiKey
);
}
}
int
format
=
Integer
.
parseInt
(
uri
.
getQueryParameter
(
FORMAT
));
int
format
=
Integer
.
parseInt
(
uri
.
getQueryParameter
(
FORMAT
));
if
(
format
==
C
.
TYPE_DASH
)
{
if
(
format
==
C
.
CONTENT_
TYPE_DASH
)
{
streamRequest
.
setFormat
(
StreamFormat
.
DASH
);
streamRequest
.
setFormat
(
StreamFormat
.
DASH
);
}
else
if
(
format
==
C
.
TYPE_HLS
)
{
}
else
if
(
format
==
C
.
CONTENT_
TYPE_HLS
)
{
streamRequest
.
setFormat
(
StreamFormat
.
HLS
);
streamRequest
.
setFormat
(
StreamFormat
.
HLS
);
}
else
{
}
else
{
throw
new
IllegalArgumentException
(
"Unsupported stream format:"
+
format
);
throw
new
IllegalArgumentException
(
"Unsupported stream format:"
+
format
);
...
...
extensions/ima/src/test/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoaderTest.java
View file @
1809a0b9
...
@@ -962,7 +962,7 @@ public final class ImaAdsLoaderTest {
...
@@ -962,7 +962,7 @@ public final class ImaAdsLoaderTest {
@Test
@Test
public
void
setsDefaultMimeTypes
()
throws
Exception
{
public
void
setsDefaultMimeTypes
()
throws
Exception
{
imaAdsLoader
.
setSupportedContentTypes
(
C
.
TYPE_DASH
,
C
.
TYPE_OTHER
);
imaAdsLoader
.
setSupportedContentTypes
(
C
.
CONTENT_TYPE_DASH
,
C
.
CONTENT_
TYPE_OTHER
);
imaAdsLoader
.
start
(
imaAdsLoader
.
start
(
adsMediaSource
,
TEST_DATA_SPEC
,
TEST_ADS_ID
,
adViewProvider
,
adsLoaderListener
);
adsMediaSource
,
TEST_DATA_SPEC
,
TEST_ADS_ID
,
adViewProvider
,
adsLoaderListener
);
...
@@ -996,7 +996,7 @@ public final class ImaAdsLoaderTest {
...
@@ -996,7 +996,7 @@ public final class ImaAdsLoaderTest {
adViewProvider
);
adViewProvider
);
when
(
mockAdsManager
.
getAdCuePoints
()).
thenReturn
(
PREROLL_CUE_POINTS_SECONDS
);
when
(
mockAdsManager
.
getAdCuePoints
()).
thenReturn
(
PREROLL_CUE_POINTS_SECONDS
);
imaAdsLoader
.
setSupportedContentTypes
(
C
.
TYPE_OTHER
);
imaAdsLoader
.
setSupportedContentTypes
(
C
.
CONTENT_
TYPE_OTHER
);
imaAdsLoader
.
start
(
imaAdsLoader
.
start
(
adsMediaSource
,
TEST_DATA_SPEC
,
TEST_ADS_ID
,
adViewProvider
,
adsLoaderListener
);
adsMediaSource
,
TEST_DATA_SPEC
,
TEST_ADS_ID
,
adViewProvider
,
adsLoaderListener
);
...
@@ -1257,7 +1257,7 @@ public final class ImaAdsLoaderTest {
...
@@ -1257,7 +1257,7 @@ public final class ImaAdsLoaderTest {
adViewProvider
);
adViewProvider
);
when
(
mockAdsManager
.
getAdCuePoints
()).
thenReturn
(
PREROLL_CUE_POINTS_SECONDS
);
when
(
mockAdsManager
.
getAdCuePoints
()).
thenReturn
(
PREROLL_CUE_POINTS_SECONDS
);
imaAdsLoader
.
setSupportedContentTypes
(
C
.
TYPE_OTHER
);
imaAdsLoader
.
setSupportedContentTypes
(
C
.
CONTENT_
TYPE_OTHER
);
imaAdsLoader
.
start
(
imaAdsLoader
.
start
(
adsMediaSource
,
TEST_DATA_SPEC
,
TEST_ADS_ID
,
adViewProvider
,
adsLoaderListener
);
adsMediaSource
,
TEST_DATA_SPEC
,
TEST_ADS_ID
,
adViewProvider
,
adsLoaderListener
);
...
@@ -1283,7 +1283,7 @@ public final class ImaAdsLoaderTest {
...
@@ -1283,7 +1283,7 @@ public final class ImaAdsLoaderTest {
adViewProvider
);
adViewProvider
);
when
(
mockAdsManager
.
getAdCuePoints
()).
thenReturn
(
PREROLL_CUE_POINTS_SECONDS
);
when
(
mockAdsManager
.
getAdCuePoints
()).
thenReturn
(
PREROLL_CUE_POINTS_SECONDS
);
imaAdsLoader
.
setSupportedContentTypes
(
C
.
TYPE_OTHER
);
imaAdsLoader
.
setSupportedContentTypes
(
C
.
CONTENT_
TYPE_OTHER
);
imaAdsLoader
.
start
(
imaAdsLoader
.
start
(
adsMediaSource
,
TEST_DATA_SPEC
,
TEST_ADS_ID
,
adViewProvider
,
adsLoaderListener
);
adsMediaSource
,
TEST_DATA_SPEC
,
TEST_ADS_ID
,
adViewProvider
,
adsLoaderListener
);
...
...
extensions/ima/src/test/java/com/google/android/exoplayer2/ext/ima/ImaServerSideAdInsertionUriBuilderTest.java
View file @
1809a0b9
...
@@ -60,7 +60,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
...
@@ -60,7 +60,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
builder
.
setContentUrl
(
CONTENT_URL
);
builder
.
setContentUrl
(
CONTENT_URL
);
builder
.
setAuthToken
(
AUTH_TOKEN
);
builder
.
setAuthToken
(
AUTH_TOKEN
);
builder
.
setStreamActivityMonitorId
(
STREAM_ACTIVITY_MONITOR_ID
);
builder
.
setStreamActivityMonitorId
(
STREAM_ACTIVITY_MONITOR_ID
);
builder
.
setFormat
(
C
.
TYPE_HLS
);
builder
.
setFormat
(
C
.
CONTENT_
TYPE_HLS
);
builder
.
setAdTagParameters
(
adTagParameters
);
builder
.
setAdTagParameters
(
adTagParameters
);
builder
.
setLoadVideoTimeoutMs
(
ADS_LOADER_TIMEOUT_MS
);
builder
.
setLoadVideoTimeoutMs
(
ADS_LOADER_TIMEOUT_MS
);
Uri
uri
=
builder
.
build
();
Uri
uri
=
builder
.
build
();
...
@@ -96,7 +96,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
...
@@ -96,7 +96,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
builder
.
setContentUrl
(
CONTENT_URL
);
builder
.
setContentUrl
(
CONTENT_URL
);
builder
.
setAuthToken
(
AUTH_TOKEN
);
builder
.
setAuthToken
(
AUTH_TOKEN
);
builder
.
setStreamActivityMonitorId
(
STREAM_ACTIVITY_MONITOR_ID
);
builder
.
setStreamActivityMonitorId
(
STREAM_ACTIVITY_MONITOR_ID
);
builder
.
setFormat
(
C
.
TYPE_DASH
);
builder
.
setFormat
(
C
.
CONTENT_
TYPE_DASH
);
builder
.
setAdTagParameters
(
adTagParameters
);
builder
.
setAdTagParameters
(
adTagParameters
);
builder
.
setLoadVideoTimeoutMs
(
ADS_LOADER_TIMEOUT_MS
);
builder
.
setLoadVideoTimeoutMs
(
ADS_LOADER_TIMEOUT_MS
);
Uri
uri
=
builder
.
build
();
Uri
uri
=
builder
.
build
();
...
@@ -127,7 +127,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
...
@@ -127,7 +127,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
ImaServerSideAdInsertionUriBuilder
builder
=
new
ImaServerSideAdInsertionUriBuilder
();
ImaServerSideAdInsertionUriBuilder
builder
=
new
ImaServerSideAdInsertionUriBuilder
();
builder
.
setContentSourceId
(
CONTENT_SOURCE_ID
);
builder
.
setContentSourceId
(
CONTENT_SOURCE_ID
);
builder
.
setVideoId
(
VIDEO_ID
);
builder
.
setVideoId
(
VIDEO_ID
);
builder
.
setFormat
(
C
.
TYPE_DASH
);
builder
.
setFormat
(
C
.
CONTENT_
TYPE_DASH
);
Uri
streamRequest
=
builder
.
build
();
Uri
streamRequest
=
builder
.
build
();
...
@@ -139,7 +139,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
...
@@ -139,7 +139,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
public
void
build_liveWithNoAdsId_usesAssetKeyAsDefault
()
{
public
void
build_liveWithNoAdsId_usesAssetKeyAsDefault
()
{
ImaServerSideAdInsertionUriBuilder
builder
=
new
ImaServerSideAdInsertionUriBuilder
();
ImaServerSideAdInsertionUriBuilder
builder
=
new
ImaServerSideAdInsertionUriBuilder
();
builder
.
setAssetKey
(
ASSET_KEY
);
builder
.
setAssetKey
(
ASSET_KEY
);
builder
.
setFormat
(
C
.
TYPE_DASH
);
builder
.
setFormat
(
C
.
CONTENT_
TYPE_DASH
);
Uri
streamRequest
=
builder
.
build
();
Uri
streamRequest
=
builder
.
build
();
...
@@ -177,7 +177,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
...
@@ -177,7 +177,7 @@ public final class ImaServerSideAdInsertionUriBuilderTest {
Uri
uri
=
Uri
uri
=
new
ImaServerSideAdInsertionUriBuilder
()
new
ImaServerSideAdInsertionUriBuilder
()
.
setAssetKey
(
ASSET_KEY
)
.
setAssetKey
(
ASSET_KEY
)
.
setFormat
(
C
.
TYPE_DASH
)
.
setFormat
(
C
.
CONTENT_
TYPE_DASH
)
.
build
();
.
build
();
int
loadVideoTimeoutMs
=
ImaServerSideAdInsertionUriBuilder
.
getLoadVideoTimeoutMs
(
uri
);
int
loadVideoTimeoutMs
=
ImaServerSideAdInsertionUriBuilder
.
getLoadVideoTimeoutMs
(
uri
);
...
...
library/common/src/main/java/com/google/android/exoplayer2/util/Util.java
View file @
1809a0b9
...
@@ -1838,18 +1838,18 @@ public final class Util {
...
@@ -1838,18 +1838,18 @@ public final class Util {
public
static
@ContentType
int
inferContentType
(
Uri
uri
)
{
public
static
@ContentType
int
inferContentType
(
Uri
uri
)
{
@Nullable
String
scheme
=
uri
.
getScheme
();
@Nullable
String
scheme
=
uri
.
getScheme
();
if
(
scheme
!=
null
&&
Ascii
.
equalsIgnoreCase
(
"rtsp"
,
scheme
))
{
if
(
scheme
!=
null
&&
Ascii
.
equalsIgnoreCase
(
"rtsp"
,
scheme
))
{
return
C
.
TYPE_RTSP
;
return
C
.
CONTENT_
TYPE_RTSP
;
}
}
@Nullable
String
lastPathSegment
=
uri
.
getLastPathSegment
();
@Nullable
String
lastPathSegment
=
uri
.
getLastPathSegment
();
if
(
lastPathSegment
==
null
)
{
if
(
lastPathSegment
==
null
)
{
return
C
.
TYPE_OTHER
;
return
C
.
CONTENT_
TYPE_OTHER
;
}
}
int
lastDotIndex
=
lastPathSegment
.
lastIndexOf
(
'.'
);
int
lastDotIndex
=
lastPathSegment
.
lastIndexOf
(
'.'
);
if
(
lastDotIndex
>=
0
)
{
if
(
lastDotIndex
>=
0
)
{
@C
.
ContentType
@C
.
ContentType
int
contentType
=
inferContentTypeForExtension
(
lastPathSegment
.
substring
(
lastDotIndex
+
1
));
int
contentType
=
inferContentTypeForExtension
(
lastPathSegment
.
substring
(
lastDotIndex
+
1
));
if
(
contentType
!=
C
.
TYPE_OTHER
)
{
if
(
contentType
!=
C
.
CONTENT_
TYPE_OTHER
)
{
// If contentType is TYPE_SS that indicates the extension is .ism or .isml and shows the ISM
// If contentType is TYPE_SS that indicates the extension is .ism or .isml and shows the ISM
// URI is missing the "/manifest" suffix, which contains the information used to
// URI is missing the "/manifest" suffix, which contains the information used to
// disambiguate between Smooth Streaming, HLS and DASH below - so we can just return TYPE_SS
// disambiguate between Smooth Streaming, HLS and DASH below - so we can just return TYPE_SS
...
@@ -1863,15 +1863,15 @@ public final class Util {
...
@@ -1863,15 +1863,15 @@ public final class Util {
@Nullable
String
extensions
=
ismMatcher
.
group
(
2
);
@Nullable
String
extensions
=
ismMatcher
.
group
(
2
);
if
(
extensions
!=
null
)
{
if
(
extensions
!=
null
)
{
if
(
extensions
.
contains
(
ISM_DASH_FORMAT_EXTENSION
))
{
if
(
extensions
.
contains
(
ISM_DASH_FORMAT_EXTENSION
))
{
return
C
.
TYPE_DASH
;
return
C
.
CONTENT_
TYPE_DASH
;
}
else
if
(
extensions
.
contains
(
ISM_HLS_FORMAT_EXTENSION
))
{
}
else
if
(
extensions
.
contains
(
ISM_HLS_FORMAT_EXTENSION
))
{
return
C
.
TYPE_HLS
;
return
C
.
CONTENT_
TYPE_HLS
;
}
}
}
}
return
C
.
TYPE_SS
;
return
C
.
CONTENT_
TYPE_SS
;
}
}
return
C
.
TYPE_OTHER
;
return
C
.
CONTENT_
TYPE_OTHER
;
}
}
/**
/**
...
@@ -1893,14 +1893,14 @@ public final class Util {
...
@@ -1893,14 +1893,14 @@ public final class Util {
fileExtension
=
Ascii
.
toLowerCase
(
fileExtension
);
fileExtension
=
Ascii
.
toLowerCase
(
fileExtension
);
switch
(
fileExtension
)
{
switch
(
fileExtension
)
{
case
"mpd"
:
case
"mpd"
:
return
C
.
TYPE_DASH
;
return
C
.
CONTENT_
TYPE_DASH
;
case
"m3u8"
:
case
"m3u8"
:
return
C
.
TYPE_HLS
;
return
C
.
CONTENT_
TYPE_HLS
;
case
"ism"
:
case
"ism"
:
case
"isml"
:
case
"isml"
:
return
C
.
TYPE_SS
;
return
C
.
TYPE_SS
;
default
:
default
:
return
C
.
TYPE_OTHER
;
return
C
.
CONTENT_
TYPE_OTHER
;
}
}
}
}
...
@@ -1918,15 +1918,15 @@ public final class Util {
...
@@ -1918,15 +1918,15 @@ public final class Util {
}
}
switch
(
mimeType
)
{
switch
(
mimeType
)
{
case
MimeTypes
.
APPLICATION_MPD
:
case
MimeTypes
.
APPLICATION_MPD
:
return
C
.
TYPE_DASH
;
return
C
.
CONTENT_
TYPE_DASH
;
case
MimeTypes
.
APPLICATION_M3U8
:
case
MimeTypes
.
APPLICATION_M3U8
:
return
C
.
TYPE_HLS
;
return
C
.
CONTENT_
TYPE_HLS
;
case
MimeTypes
.
APPLICATION_SS
:
case
MimeTypes
.
APPLICATION_SS
:
return
C
.
TYPE_SS
;
return
C
.
CONTENT_
TYPE_SS
;
case
MimeTypes
.
APPLICATION_RTSP
:
case
MimeTypes
.
APPLICATION_RTSP
:
return
C
.
TYPE_RTSP
;
return
C
.
CONTENT_
TYPE_RTSP
;
default
:
default
:
return
C
.
TYPE_OTHER
;
return
C
.
CONTENT_
TYPE_OTHER
;
}
}
}
}
...
@@ -1937,14 +1937,14 @@ public final class Util {
...
@@ -1937,14 +1937,14 @@ public final class Util {
@Nullable
@Nullable
public
static
String
getAdaptiveMimeTypeForContentType
(
@ContentType
int
contentType
)
{
public
static
String
getAdaptiveMimeTypeForContentType
(
@ContentType
int
contentType
)
{
switch
(
contentType
)
{
switch
(
contentType
)
{
case
C
.
TYPE_DASH
:
case
C
.
CONTENT_
TYPE_DASH
:
return
MimeTypes
.
APPLICATION_MPD
;
return
MimeTypes
.
APPLICATION_MPD
;
case
C
.
TYPE_HLS
:
case
C
.
CONTENT_
TYPE_HLS
:
return
MimeTypes
.
APPLICATION_M3U8
;
return
MimeTypes
.
APPLICATION_M3U8
;
case
C
.
TYPE_SS
:
case
C
.
CONTENT_
TYPE_SS
:
return
MimeTypes
.
APPLICATION_SS
;
return
MimeTypes
.
APPLICATION_SS
;
case
C
.
TYPE_RTSP
:
case
C
.
CONTENT_
TYPE_RTSP
:
case
C
.
TYPE_OTHER
:
case
C
.
CONTENT_
TYPE_OTHER
:
default
:
default
:
return
null
;
return
null
;
}
}
...
...
library/common/src/test/java/com/google/android/exoplayer2/util/UtilTest.java
View file @
1809a0b9
...
@@ -104,65 +104,67 @@ public class UtilTest {
...
@@ -104,65 +104,67 @@ public class UtilTest {
@Test
@Test
public
void
inferContentType_handlesHlsIsmUris
()
{
public
void
inferContentType_handlesHlsIsmUris
()
{
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/manifest(format=m3u8-aapl)"
)))
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/manifest(format=m3u8-aapl)"
)))
.
isEqualTo
(
C
.
TYPE_HLS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/manifest(format=m3u8-aapl,quality=hd)"
)))
Uri
.
parse
(
"http://a.b/c.ism/manifest(format=m3u8-aapl,quality=hd)"
)))
.
isEqualTo
(
C
.
TYPE_HLS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/manifest(quality=hd,format=m3u8-aapl)"
)))
Uri
.
parse
(
"http://a.b/c.ism/manifest(quality=hd,format=m3u8-aapl)"
)))
.
isEqualTo
(
C
.
TYPE_HLS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
}
}
@Test
@Test
public
void
inferContentType_handlesHlsIsmV3Uris
()
{
public
void
inferContentType_handlesHlsIsmV3Uris
()
{
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/manifest(format=m3u8-aapl-v3)"
)))
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/manifest(format=m3u8-aapl-v3)"
)))
.
isEqualTo
(
C
.
TYPE_HLS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/manifest(format=m3u8-aapl-v3,quality=hd)"
)))
Uri
.
parse
(
"http://a.b/c.ism/manifest(format=m3u8-aapl-v3,quality=hd)"
)))
.
isEqualTo
(
C
.
TYPE_HLS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/manifest(quality=hd,format=m3u8-aapl-v3)"
)))
Uri
.
parse
(
"http://a.b/c.ism/manifest(quality=hd,format=m3u8-aapl-v3)"
)))
.
isEqualTo
(
C
.
TYPE_HLS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
}
}
@Test
@Test
public
void
inferContentType_handlesDashIsmUris
()
{
public
void
inferContentType_handlesDashIsmUris
()
{
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest(format=mpd-time-csf)"
)))
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest(format=mpd-time-csf)"
)))
.
isEqualTo
(
C
.
TYPE_DASH
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_DASH
);
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest(format=mpd-time-csf,quality=hd)"
)))
Uri
.
parse
(
"http://a.b/c.isml/manifest(format=mpd-time-csf,quality=hd)"
)))
.
isEqualTo
(
C
.
TYPE_DASH
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_DASH
);
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest(quality=hd,format=mpd-time-csf)"
)))
Uri
.
parse
(
"http://a.b/c.isml/manifest(quality=hd,format=mpd-time-csf)"
)))
.
isEqualTo
(
C
.
TYPE_DASH
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_DASH
);
}
}
@Test
@Test
public
void
inferContentType_handlesSmoothStreamingIsmUris
()
{
public
void
inferContentType_handlesSmoothStreamingIsmUris
()
{
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism"
))).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism"
))).
isEqualTo
(
C
.
CONTENT_TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml"
))).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml"
))).
isEqualTo
(
C
.
CONTENT_TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/"
))).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/"
))).
isEqualTo
(
C
.
CONTENT_TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/"
))).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/"
))).
isEqualTo
(
C
.
CONTENT_TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/Manifest"
))).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/Manifest"
)))
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest"
))).
isEqualTo
(
C
.
TYPE_SS
);
.
isEqualTo
(
C
.
CONTENT_TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest"
)))
.
isEqualTo
(
C
.
CONTENT_TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest(filter=x)"
)))
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest(filter=x)"
)))
.
isEqualTo
(
C
.
TYPE_SS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest_hd"
)))
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.isml/manifest_hd"
)))
.
isEqualTo
(
C
.
TYPE_SS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_SS
);
}
}
@Test
@Test
public
void
inferContentType_handlesOtherIsmUris
()
{
public
void
inferContentType_handlesOtherIsmUris
()
{
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/video.mp4"
)))
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/video.mp4"
)))
.
isEqualTo
(
C
.
TYPE_OTHER
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_OTHER
);
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/prefix-manifest"
)))
assertThat
(
Util
.
inferContentType
(
Uri
.
parse
(
"http://a.b/c.ism/prefix-manifest"
)))
.
isEqualTo
(
C
.
TYPE_OTHER
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_OTHER
);
}
}
/**
/**
...
@@ -172,11 +174,11 @@ public class UtilTest {
...
@@ -172,11 +174,11 @@ public class UtilTest {
@SuppressWarnings
(
"deprecation"
)
@SuppressWarnings
(
"deprecation"
)
@Test
@Test
public
void
inferContentType_extensionAsPath
()
{
public
void
inferContentType_extensionAsPath
()
{
assertThat
(
Util
.
inferContentType
(
".m3u8"
)).
isEqualTo
(
C
.
TYPE_HLS
);
assertThat
(
Util
.
inferContentType
(
".m3u8"
)).
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
assertThat
(
Util
.
inferContentType
(
".mpd"
)).
isEqualTo
(
C
.
TYPE_DASH
);
assertThat
(
Util
.
inferContentType
(
".mpd"
)).
isEqualTo
(
C
.
CONTENT_
TYPE_DASH
);
assertThat
(
Util
.
inferContentType
(
".ism"
)).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
".ism"
)).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
".isml"
)).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
".isml"
)).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentType
(
".mp4"
)).
isEqualTo
(
C
.
TYPE_OTHER
);
assertThat
(
Util
.
inferContentType
(
".mp4"
)).
isEqualTo
(
C
.
CONTENT_
TYPE_OTHER
);
}
}
// Testing deprecated method.
// Testing deprecated method.
...
@@ -186,24 +188,24 @@ public class UtilTest {
...
@@ -186,24 +188,24 @@ public class UtilTest {
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"file:///path/to/something.mpd"
),
/* overrideExtension= */
null
))
Uri
.
parse
(
"file:///path/to/something.mpd"
),
/* overrideExtension= */
null
))
.
isEqualTo
(
C
.
TYPE_DASH
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_DASH
);
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"file:///path/to/something.mpd"
),
/* overrideExtension= */
""
))
Uri
.
parse
(
"file:///path/to/something.mpd"
),
/* overrideExtension= */
""
))
.
isEqualTo
(
C
.
TYPE_DASH
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_DASH
);
assertThat
(
assertThat
(
Util
.
inferContentType
(
Util
.
inferContentType
(
Uri
.
parse
(
"file:///path/to/something.mpd"
),
/* overrideExtension= */
"m3u8"
))
Uri
.
parse
(
"file:///path/to/something.mpd"
),
/* overrideExtension= */
"m3u8"
))
.
isEqualTo
(
C
.
TYPE_HLS
);
.
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
}
}
@Test
@Test
public
void
inferContentTypeForExtension
()
{
public
void
inferContentTypeForExtension
()
{
assertThat
(
Util
.
inferContentTypeForExtension
(
"m3u8"
)).
isEqualTo
(
C
.
TYPE_HLS
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"m3u8"
)).
isEqualTo
(
C
.
CONTENT_
TYPE_HLS
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"mpd"
)).
isEqualTo
(
C
.
TYPE_DASH
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"mpd"
)).
isEqualTo
(
C
.
CONTENT_
TYPE_DASH
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"ism"
)).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"ism"
)).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"isml"
)).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"isml"
)).
isEqualTo
(
C
.
TYPE_SS
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"mp4"
)).
isEqualTo
(
C
.
TYPE_OTHER
);
assertThat
(
Util
.
inferContentTypeForExtension
(
"mp4"
)).
isEqualTo
(
C
.
CONTENT_
TYPE_OTHER
);
}
}
@Test
@Test
...
...
library/core/src/main/java/com/google/android/exoplayer2/analytics/MediaMetricsListener.java
View file @
1809a0b9
...
@@ -677,13 +677,13 @@ public final class MediaMetricsListener
...
@@ -677,13 +677,13 @@ public final class MediaMetricsListener
Util
.
inferContentTypeForUriAndMimeType
(
Util
.
inferContentTypeForUriAndMimeType
(
mediaItem
.
localConfiguration
.
uri
,
mediaItem
.
localConfiguration
.
mimeType
);
mediaItem
.
localConfiguration
.
uri
,
mediaItem
.
localConfiguration
.
mimeType
);
switch
(
contentType
)
{
switch
(
contentType
)
{
case
C
.
TYPE_HLS
:
case
C
.
CONTENT_
TYPE_HLS
:
return
PlaybackMetrics
.
STREAM_TYPE_HLS
;
return
PlaybackMetrics
.
STREAM_TYPE_HLS
;
case
C
.
TYPE_DASH
:
case
C
.
CONTENT_
TYPE_DASH
:
return
PlaybackMetrics
.
STREAM_TYPE_DASH
;
return
PlaybackMetrics
.
STREAM_TYPE_DASH
;
case
C
.
TYPE_SS
:
case
C
.
CONTENT_
TYPE_SS
:
return
PlaybackMetrics
.
STREAM_TYPE_SS
;
return
PlaybackMetrics
.
STREAM_TYPE_SS
;
case
C
.
TYPE_RTSP
:
case
C
.
CONTENT_
TYPE_RTSP
:
default
:
default
:
return
PlaybackMetrics
.
STREAM_TYPE_OTHER
;
return
PlaybackMetrics
.
STREAM_TYPE_OTHER
;
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/offline/DefaultDownloaderFactory.java
View file @
1809a0b9
...
@@ -71,11 +71,11 @@ public class DefaultDownloaderFactory implements DownloaderFactory {
...
@@ -71,11 +71,11 @@ public class DefaultDownloaderFactory implements DownloaderFactory {
@C
.
ContentType
@C
.
ContentType
int
contentType
=
Util
.
inferContentTypeForUriAndMimeType
(
request
.
uri
,
request
.
mimeType
);
int
contentType
=
Util
.
inferContentTypeForUriAndMimeType
(
request
.
uri
,
request
.
mimeType
);
switch
(
contentType
)
{
switch
(
contentType
)
{
case
C
.
TYPE_DASH
:
case
C
.
CONTENT_
TYPE_DASH
:
case
C
.
TYPE_HLS
:
case
C
.
CONTENT_
TYPE_HLS
:
case
C
.
TYPE_SS
:
case
C
.
CONTENT_
TYPE_SS
:
return
createDownloader
(
request
,
contentType
);
return
createDownloader
(
request
,
contentType
);
case
C
.
TYPE_OTHER
:
case
C
.
CONTENT_
TYPE_OTHER
:
return
new
ProgressiveDownloader
(
return
new
ProgressiveDownloader
(
new
MediaItem
.
Builder
()
new
MediaItem
.
Builder
()
.
setUri
(
request
.
uri
)
.
setUri
(
request
.
uri
)
...
@@ -111,7 +111,7 @@ public class DefaultDownloaderFactory implements DownloaderFactory {
...
@@ -111,7 +111,7 @@ public class DefaultDownloaderFactory implements DownloaderFactory {
SparseArray
<
Constructor
<?
extends
Downloader
>>
array
=
new
SparseArray
<>();
SparseArray
<
Constructor
<?
extends
Downloader
>>
array
=
new
SparseArray
<>();
try
{
try
{
array
.
put
(
array
.
put
(
C
.
TYPE_DASH
,
C
.
CONTENT_
TYPE_DASH
,
getDownloaderConstructor
(
getDownloaderConstructor
(
Class
.
forName
(
"com.google.android.exoplayer2.source.dash.offline.DashDownloader"
)));
Class
.
forName
(
"com.google.android.exoplayer2.source.dash.offline.DashDownloader"
)));
}
catch
(
ClassNotFoundException
e
)
{
}
catch
(
ClassNotFoundException
e
)
{
...
@@ -120,7 +120,7 @@ public class DefaultDownloaderFactory implements DownloaderFactory {
...
@@ -120,7 +120,7 @@ public class DefaultDownloaderFactory implements DownloaderFactory {
try
{
try
{
array
.
put
(
array
.
put
(
C
.
TYPE_HLS
,
C
.
CONTENT_
TYPE_HLS
,
getDownloaderConstructor
(
getDownloaderConstructor
(
Class
.
forName
(
"com.google.android.exoplayer2.source.hls.offline.HlsDownloader"
)));
Class
.
forName
(
"com.google.android.exoplayer2.source.hls.offline.HlsDownloader"
)));
}
catch
(
ClassNotFoundException
e
)
{
}
catch
(
ClassNotFoundException
e
)
{
...
@@ -128,7 +128,7 @@ public class DefaultDownloaderFactory implements DownloaderFactory {
...
@@ -128,7 +128,7 @@ public class DefaultDownloaderFactory implements DownloaderFactory {
}
}
try
{
try
{
array
.
put
(
array
.
put
(
C
.
TYPE_SS
,
C
.
CONTENT_
TYPE_SS
,
getDownloaderConstructor
(
getDownloaderConstructor
(
Class
.
forName
(
Class
.
forName
(
"com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader"
)));
"com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader"
)));
...
...
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadHelper.java
View file @
1809a0b9
...
@@ -957,7 +957,7 @@ public final class DownloadHelper {
...
@@ -957,7 +957,7 @@ public final class DownloadHelper {
private
static
boolean
isProgressive
(
MediaItem
.
LocalConfiguration
localConfiguration
)
{
private
static
boolean
isProgressive
(
MediaItem
.
LocalConfiguration
localConfiguration
)
{
return
Util
.
inferContentTypeForUriAndMimeType
(
return
Util
.
inferContentTypeForUriAndMimeType
(
localConfiguration
.
uri
,
localConfiguration
.
mimeType
)
localConfiguration
.
uri
,
localConfiguration
.
mimeType
)
==
C
.
TYPE_OTHER
;
==
C
.
CONTENT_
TYPE_OTHER
;
}
}
private
static
final
class
MediaPreparer
private
static
final
class
MediaPreparer
...
...
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadRequest.java
View file @
1809a0b9
...
@@ -135,7 +135,9 @@ public final class DownloadRequest implements Parcelable {
...
@@ -135,7 +135,9 @@ public final class DownloadRequest implements Parcelable {
@Nullable
String
customCacheKey
,
@Nullable
String
customCacheKey
,
@Nullable
byte
[]
data
)
{
@Nullable
byte
[]
data
)
{
@C
.
ContentType
int
contentType
=
Util
.
inferContentTypeForUriAndMimeType
(
uri
,
mimeType
);
@C
.
ContentType
int
contentType
=
Util
.
inferContentTypeForUriAndMimeType
(
uri
,
mimeType
);
if
(
contentType
==
C
.
TYPE_DASH
||
contentType
==
C
.
TYPE_HLS
||
contentType
==
C
.
TYPE_SS
)
{
if
(
contentType
==
C
.
CONTENT_TYPE_DASH
||
contentType
==
C
.
CONTENT_TYPE_HLS
||
contentType
==
C
.
CONTENT_TYPE_SS
)
{
Assertions
.
checkArgument
(
Assertions
.
checkArgument
(
customCacheKey
==
null
,
"customCacheKey must be null for type: "
+
contentType
);
customCacheKey
==
null
,
"customCacheKey must be null for type: "
+
contentType
);
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactory.java
View file @
1809a0b9
...
@@ -504,11 +504,11 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
...
@@ -504,11 +504,11 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
}
}
private
void
ensureAllSuppliersAreLoaded
()
{
private
void
ensureAllSuppliersAreLoaded
()
{
maybeLoadSupplier
(
C
.
TYPE_DASH
);
maybeLoadSupplier
(
C
.
CONTENT_
TYPE_DASH
);
maybeLoadSupplier
(
C
.
TYPE_SS
);
maybeLoadSupplier
(
C
.
CONTENT_
TYPE_SS
);
maybeLoadSupplier
(
C
.
TYPE_HLS
);
maybeLoadSupplier
(
C
.
CONTENT_
TYPE_HLS
);
maybeLoadSupplier
(
C
.
TYPE_RTSP
);
maybeLoadSupplier
(
C
.
CONTENT_
TYPE_RTSP
);
maybeLoadSupplier
(
C
.
TYPE_OTHER
);
maybeLoadSupplier
(
C
.
CONTENT_
TYPE_OTHER
);
}
}
@Nullable
@Nullable
...
@@ -521,32 +521,32 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
...
@@ -521,32 +521,32 @@ public final class DefaultMediaSourceFactory implements MediaSourceFactory {
try
{
try
{
Class
<?
extends
MediaSource
.
Factory
>
clazz
;
Class
<?
extends
MediaSource
.
Factory
>
clazz
;
switch
(
contentType
)
{
switch
(
contentType
)
{
case
C
.
TYPE_DASH
:
case
C
.
CONTENT_
TYPE_DASH
:
clazz
=
clazz
=
Class
.
forName
(
"com.google.android.exoplayer2.source.dash.DashMediaSource$Factory"
)
Class
.
forName
(
"com.google.android.exoplayer2.source.dash.DashMediaSource$Factory"
)
.
asSubclass
(
MediaSource
.
Factory
.
class
);
.
asSubclass
(
MediaSource
.
Factory
.
class
);
mediaSourceFactorySupplier
=
()
->
newInstance
(
clazz
,
dataSourceFactory
);
mediaSourceFactorySupplier
=
()
->
newInstance
(
clazz
,
dataSourceFactory
);
break
;
break
;
case
C
.
TYPE_SS
:
case
C
.
CONTENT_
TYPE_SS
:
clazz
=
clazz
=
Class
.
forName
(
Class
.
forName
(
"com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory"
)
"com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory"
)
.
asSubclass
(
MediaSource
.
Factory
.
class
);
.
asSubclass
(
MediaSource
.
Factory
.
class
);
mediaSourceFactorySupplier
=
()
->
newInstance
(
clazz
,
dataSourceFactory
);
mediaSourceFactorySupplier
=
()
->
newInstance
(
clazz
,
dataSourceFactory
);
break
;
break
;
case
C
.
TYPE_HLS
:
case
C
.
CONTENT_
TYPE_HLS
:
clazz
=
clazz
=
Class
.
forName
(
"com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory"
)
Class
.
forName
(
"com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory"
)
.
asSubclass
(
MediaSource
.
Factory
.
class
);
.
asSubclass
(
MediaSource
.
Factory
.
class
);
mediaSourceFactorySupplier
=
()
->
newInstance
(
clazz
,
dataSourceFactory
);
mediaSourceFactorySupplier
=
()
->
newInstance
(
clazz
,
dataSourceFactory
);
break
;
break
;
case
C
.
TYPE_RTSP
:
case
C
.
CONTENT_
TYPE_RTSP
:
clazz
=
clazz
=
Class
.
forName
(
"com.google.android.exoplayer2.source.rtsp.RtspMediaSource$Factory"
)
Class
.
forName
(
"com.google.android.exoplayer2.source.rtsp.RtspMediaSource$Factory"
)
.
asSubclass
(
MediaSource
.
Factory
.
class
);
.
asSubclass
(
MediaSource
.
Factory
.
class
);
mediaSourceFactorySupplier
=
()
->
newInstance
(
clazz
);
mediaSourceFactorySupplier
=
()
->
newInstance
(
clazz
);
break
;
break
;
case
C
.
TYPE_OTHER
:
case
C
.
CONTENT_
TYPE_OTHER
:
mediaSourceFactorySupplier
=
mediaSourceFactorySupplier
=
()
->
new
ProgressiveMediaSource
.
Factory
(
dataSourceFactory
,
extractorsFactory
);
()
->
new
ProgressiveMediaSource
.
Factory
(
dataSourceFactory
,
extractorsFactory
);
break
;
break
;
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/ProgressiveMediaSource.java
View file @
1809a0b9
...
@@ -196,7 +196,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
...
@@ -196,7 +196,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
@Override
@Override
public
int
[]
getSupportedTypes
()
{
public
int
[]
getSupportedTypes
()
{
return
new
int
[]
{
C
.
TYPE_OTHER
};
return
new
int
[]
{
C
.
CONTENT_
TYPE_OTHER
};
}
}
}
}
...
...
library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsLoader.java
View file @
1809a0b9
...
@@ -121,7 +121,8 @@ public interface AdsLoader {
...
@@ -121,7 +121,8 @@ public interface AdsLoader {
* be ignored. Called on the main thread by {@link AdsMediaSource}.
* be ignored. Called on the main thread by {@link AdsMediaSource}.
*
*
* @param contentTypes The supported content types for ad media. Each element must be one of
* @param contentTypes The supported content types for ad media. Each element must be one of
* {@link C#TYPE_DASH}, {@link C#TYPE_HLS}, {@link C#TYPE_SS} and {@link C#TYPE_OTHER}.
* {@link C#CONTENT_TYPE_DASH}, {@link C#CONTENT_TYPE_HLS}, {@link C#CONTENT_TYPE_SS} and
* {@link C#CONTENT_TYPE_OTHER}.
*/
*/
void
setSupportedContentTypes
(
@C
.
ContentType
int
...
contentTypes
);
void
setSupportedContentTypes
(
@C
.
ContentType
int
...
contentTypes
);
...
...
library/core/src/test/java/com/google/android/exoplayer2/source/DefaultMediaSourceFactoryTest.java
View file @
1809a0b9
...
@@ -188,7 +188,7 @@ public final class DefaultMediaSourceFactoryTest {
...
@@ -188,7 +188,7 @@ public final class DefaultMediaSourceFactoryTest {
new
DefaultMediaSourceFactory
((
Context
)
ApplicationProvider
.
getApplicationContext
())
new
DefaultMediaSourceFactory
((
Context
)
ApplicationProvider
.
getApplicationContext
())
.
getSupportedTypes
();
.
getSupportedTypes
();
assertThat
(
supportedTypes
).
asList
().
containsExactly
(
C
.
TYPE_OTHER
);
assertThat
(
supportedTypes
).
asList
().
containsExactly
(
C
.
CONTENT_
TYPE_OTHER
);
}
}
@Test
@Test
...
...
library/dash/src/main/java/com/google/android/exoplayer2/source/dash/DashMediaSource.java
View file @
1809a0b9
...
@@ -290,7 +290,7 @@ public final class DashMediaSource extends BaseMediaSource {
...
@@ -290,7 +290,7 @@ public final class DashMediaSource extends BaseMediaSource {
@Override
@Override
public
int
[]
getSupportedTypes
()
{
public
int
[]
getSupportedTypes
()
{
return
new
int
[]
{
C
.
TYPE_DASH
};
return
new
int
[]
{
C
.
CONTENT_
TYPE_DASH
};
}
}
}
}
...
...
library/dash/src/test/java/com/google/android/exoplayer2/source/dash/DefaultMediaSourceFactoryTest.java
View file @
1809a0b9
...
@@ -95,6 +95,6 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -95,6 +95,6 @@ public class DefaultMediaSourceFactoryTest {
new
DefaultMediaSourceFactory
((
Context
)
ApplicationProvider
.
getApplicationContext
())
new
DefaultMediaSourceFactory
((
Context
)
ApplicationProvider
.
getApplicationContext
())
.
getSupportedTypes
();
.
getSupportedTypes
();
assertThat
(
supportedTypes
).
asList
().
containsExactly
(
C
.
TYPE_OTHER
,
C
.
TYPE_DASH
);
assertThat
(
supportedTypes
).
asList
().
containsExactly
(
C
.
CONTENT_TYPE_OTHER
,
C
.
CONTENT_
TYPE_DASH
);
}
}
}
}
library/hls/src/main/java/com/google/android/exoplayer2/source/hls/HlsMediaSource.java
View file @
1809a0b9
...
@@ -329,7 +329,7 @@ public final class HlsMediaSource extends BaseMediaSource
...
@@ -329,7 +329,7 @@ public final class HlsMediaSource extends BaseMediaSource
@Override
@Override
public
int
[]
getSupportedTypes
()
{
public
int
[]
getSupportedTypes
()
{
return
new
int
[]
{
C
.
TYPE_HLS
};
return
new
int
[]
{
C
.
CONTENT_
TYPE_HLS
};
}
}
}
}
...
...
library/hls/src/test/java/com/google/android/exoplayer2/source/hls/DefaultMediaSourceFactoryTest.java
View file @
1809a0b9
...
@@ -95,6 +95,6 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -95,6 +95,6 @@ public class DefaultMediaSourceFactoryTest {
new
DefaultMediaSourceFactory
((
Context
)
ApplicationProvider
.
getApplicationContext
())
new
DefaultMediaSourceFactory
((
Context
)
ApplicationProvider
.
getApplicationContext
())
.
getSupportedTypes
();
.
getSupportedTypes
();
assertThat
(
supportedTypes
).
asList
().
containsExactly
(
C
.
TYPE_OTHER
,
C
.
TYPE_HLS
);
assertThat
(
supportedTypes
).
asList
().
containsExactly
(
C
.
CONTENT_TYPE_OTHER
,
C
.
CONTENT_
TYPE_HLS
);
}
}
}
}
library/rtsp/src/main/java/com/google/android/exoplayer2/source/rtsp/RtspMediaSource.java
View file @
1809a0b9
...
@@ -161,7 +161,7 @@ public final class RtspMediaSource extends BaseMediaSource {
...
@@ -161,7 +161,7 @@ public final class RtspMediaSource extends BaseMediaSource {
@Override
@Override
public
int
[]
getSupportedTypes
()
{
public
int
[]
getSupportedTypes
()
{
return
new
int
[]
{
C
.
TYPE_RTSP
};
return
new
int
[]
{
C
.
CONTENT_
TYPE_RTSP
};
}
}
/**
/**
...
...
library/smoothstreaming/src/main/java/com/google/android/exoplayer2/source/smoothstreaming/SsMediaSource.java
View file @
1809a0b9
...
@@ -271,7 +271,7 @@ public final class SsMediaSource extends BaseMediaSource
...
@@ -271,7 +271,7 @@ public final class SsMediaSource extends BaseMediaSource
@Override
@Override
public
int
[]
getSupportedTypes
()
{
public
int
[]
getSupportedTypes
()
{
return
new
int
[]
{
C
.
TYPE_SS
};
return
new
int
[]
{
C
.
CONTENT_
TYPE_SS
};
}
}
}
}
...
...
library/smoothstreaming/src/test/java/com/google/android/exoplayer2/source/smoothstreaming/DefaultMediaSourceFactoryTest.java
View file @
1809a0b9
...
@@ -106,6 +106,6 @@ public class DefaultMediaSourceFactoryTest {
...
@@ -106,6 +106,6 @@ public class DefaultMediaSourceFactoryTest {
new
DefaultMediaSourceFactory
((
Context
)
ApplicationProvider
.
getApplicationContext
())
new
DefaultMediaSourceFactory
((
Context
)
ApplicationProvider
.
getApplicationContext
())
.
getSupportedTypes
();
.
getSupportedTypes
();
assertThat
(
supportedTypes
).
asList
().
containsExactly
(
C
.
TYPE_OTHER
,
C
.
TYPE_SS
);
assertThat
(
supportedTypes
).
asList
().
containsExactly
(
C
.
CONTENT_TYPE_OTHER
,
C
.
CONTENT_
TYPE_SS
);
}
}
}
}
testutils/src/main/java/com/google/android/exoplayer2/testutil/FakeMediaSourceFactory.java
View file @
1809a0b9
...
@@ -49,7 +49,7 @@ public final class FakeMediaSourceFactory implements MediaSourceFactory {
...
@@ -49,7 +49,7 @@ public final class FakeMediaSourceFactory implements MediaSourceFactory {
@Override
@Override
public
int
[]
getSupportedTypes
()
{
public
int
[]
getSupportedTypes
()
{
return
new
int
[]
{
C
.
TYPE_OTHER
};
return
new
int
[]
{
C
.
CONTENT_
TYPE_OTHER
};
}
}
@Override
@Override
...
...
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