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
d79f8f64
authored
Oct 20, 2016
by
ojw28
Committed by
GitHub
Oct 20, 2016
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge pull request #1970 from google/dev-v2-r2.0.4
r2.0.4
parents
08256eee
c7824c46
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
35 additions
and
21 deletions
RELEASENOTES.md
build.gradle
demo/src/main/AndroidManifest.xml
library/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java
library/src/main/java/com/google/android/exoplayer2/extractor/ts/H265Reader.java
library/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java
playbacktests/src/main/AndroidManifest.xml
RELEASENOTES.md
View file @
d79f8f64
# Release notes #
# Release notes #
### r2.0.
3
###
### r2.0.
4
###
This release contains important bug fixes. Users of
r2.0.0, r2.0.1 and r2.0.2
This release contains important bug fixes. Users of
earlier r2.0.x versions
should proactively update to this version.
should proactively update to this version.
*
Fix crash on Jellybean devices when using playback controls
(
[
#1965
](
https://github.com/google/ExoPlayer/issues/1965
)
).
### r2.0.3 ###
*
Fixed NullPointerException in ExtractorMediaSource
*
Fixed NullPointerException in ExtractorMediaSource
(
[
#1914
](
https://github.com/google/ExoPlayer/issues/1914
)
.
(
[
#1914
](
https://github.com/google/ExoPlayer/issues/1914
)
)
.
*
Fixed NullPointerException in HlsMediaPeriod
*
Fixed NullPointerException in HlsMediaPeriod
(
[
#1907
](
https://github.com/google/ExoPlayer/issues/1907
)
.
(
[
#1907
](
https://github.com/google/ExoPlayer/issues/1907
)
)
.
*
Fixed memory leak in PlaybackControlView
*
Fixed memory leak in PlaybackControlView
(
[
#1908
](
https://github.com/google/ExoPlayer/issues/1908
)
.
(
[
#1908
](
https://github.com/google/ExoPlayer/issues/1908
)
)
.
*
Fixed strict mode violation when using
*
Fixed strict mode violation when using
SimpleExoPlayer.setVideoPlayerTextureView().
SimpleExoPlayer.setVideoPlayerTextureView().
*
Fixed L3 Widevine provisioning
*
Fixed L3 Widevine provisioning
(
[
#1925
](
https://github.com/google/ExoPlayer/issues/1925
)
.
(
[
#1925
](
https://github.com/google/ExoPlayer/issues/1925
)
)
.
*
Fixed hiding of controls with use_controller="false"
*
Fixed hiding of controls with use_controller="false"
(
[
#1919
](
https://github.com/google/ExoPlayer/issues/1919
)
.
(
[
#1919
](
https://github.com/google/ExoPlayer/issues/1919
)
)
.
*
Improvements to Cronet network stack extension.
*
Improvements to Cronet network stack extension.
*
Misc bug fixes.
*
Misc bug fixes.
...
...
build.gradle
View file @
d79f8f64
...
@@ -35,7 +35,7 @@ allprojects {
...
@@ -35,7 +35,7 @@ allprojects {
releaseRepoName
=
'exoplayer'
releaseRepoName
=
'exoplayer'
releaseUserOrg
=
'google'
releaseUserOrg
=
'google'
releaseGroupId
=
'com.google.android.exoplayer'
releaseGroupId
=
'com.google.android.exoplayer'
releaseVersion
=
'r2.0.
3
'
releaseVersion
=
'r2.0.
4
'
releaseWebsite
=
'https://github.com/google/ExoPlayer'
releaseWebsite
=
'https://github.com/google/ExoPlayer'
}
}
}
}
demo/src/main/AndroidManifest.xml
View file @
d79f8f64
...
@@ -16,8 +16,8 @@
...
@@ -16,8 +16,8 @@
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"com.google.android.exoplayer2.demo"
package=
"com.google.android.exoplayer2.demo"
android:versionCode=
"200
3
"
android:versionCode=
"200
4
"
android:versionName=
"2.0.
3
"
>
android:versionName=
"2.0.
4
"
>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
...
...
library/src/main/java/com/google/android/exoplayer2/ExoPlayerLibraryInfo.java
View file @
d79f8f64
...
@@ -23,7 +23,7 @@ public interface ExoPlayerLibraryInfo {
...
@@ -23,7 +23,7 @@ public interface ExoPlayerLibraryInfo {
/**
/**
* The version of the library, expressed as a string.
* The version of the library, expressed as a string.
*/
*/
String
VERSION
=
"2.0.
3
"
;
String
VERSION
=
"2.0.
4
"
;
/**
/**
* The version of the library, expressed as an integer.
* The version of the library, expressed as an integer.
...
@@ -32,7 +32,7 @@ public interface ExoPlayerLibraryInfo {
...
@@ -32,7 +32,7 @@ public interface ExoPlayerLibraryInfo {
* corresponding integer version 1002003 (001-002-003), and "123.45.6" has the corresponding
* corresponding integer version 1002003 (001-002-003), and "123.45.6" has the corresponding
* integer version 123045006 (123-045-006).
* integer version 123045006 (123-045-006).
*/
*/
int
VERSION_INT
=
200000
3
;
int
VERSION_INT
=
200000
4
;
/**
/**
* Whether the library was compiled with {@link com.google.android.exoplayer2.util.Assertions}
* Whether the library was compiled with {@link com.google.android.exoplayer2.util.Assertions}
...
...
library/src/main/java/com/google/android/exoplayer2/extractor/ts/H265Reader.java
View file @
d79f8f64
...
@@ -44,6 +44,7 @@ import java.util.Collections;
...
@@ -44,6 +44,7 @@ import java.util.Collections;
private
static
final
int
SUFFIX_SEI_NUT
=
40
;
private
static
final
int
SUFFIX_SEI_NUT
=
40
;
private
TrackOutput
output
;
private
TrackOutput
output
;
private
SampleReader
sampleReader
;
private
SeiReader
seiReader
;
private
SeiReader
seiReader
;
// State that should not be reset on seek.
// State that should not be reset on seek.
...
@@ -56,7 +57,6 @@ import java.util.Collections;
...
@@ -56,7 +57,6 @@ import java.util.Collections;
private
final
NalUnitTargetBuffer
pps
;
private
final
NalUnitTargetBuffer
pps
;
private
final
NalUnitTargetBuffer
prefixSei
;
private
final
NalUnitTargetBuffer
prefixSei
;
private
final
NalUnitTargetBuffer
suffixSei
;
// TODO: Are both needed?
private
final
NalUnitTargetBuffer
suffixSei
;
// TODO: Are both needed?
private
final
SampleReader
sampleReader
;
private
long
totalBytesWritten
;
private
long
totalBytesWritten
;
// Per packet state that gets reset at the start of each packet.
// Per packet state that gets reset at the start of each packet.
...
@@ -72,7 +72,6 @@ import java.util.Collections;
...
@@ -72,7 +72,6 @@ import java.util.Collections;
pps
=
new
NalUnitTargetBuffer
(
PPS_NUT
,
128
);
pps
=
new
NalUnitTargetBuffer
(
PPS_NUT
,
128
);
prefixSei
=
new
NalUnitTargetBuffer
(
PREFIX_SEI_NUT
,
128
);
prefixSei
=
new
NalUnitTargetBuffer
(
PREFIX_SEI_NUT
,
128
);
suffixSei
=
new
NalUnitTargetBuffer
(
SUFFIX_SEI_NUT
,
128
);
suffixSei
=
new
NalUnitTargetBuffer
(
SUFFIX_SEI_NUT
,
128
);
sampleReader
=
new
SampleReader
(
output
);
seiWrapper
=
new
ParsableByteArray
();
seiWrapper
=
new
ParsableByteArray
();
}
}
...
@@ -91,6 +90,7 @@ import java.util.Collections;
...
@@ -91,6 +90,7 @@ import java.util.Collections;
@Override
@Override
public
void
init
(
ExtractorOutput
extractorOutput
,
TrackIdGenerator
idGenerator
)
{
public
void
init
(
ExtractorOutput
extractorOutput
,
TrackIdGenerator
idGenerator
)
{
output
=
extractorOutput
.
track
(
idGenerator
.
getNextId
());
output
=
extractorOutput
.
track
(
idGenerator
.
getNextId
());
sampleReader
=
new
SampleReader
(
output
);
seiReader
=
new
SeiReader
(
extractorOutput
.
track
(
idGenerator
.
getNextId
()));
seiReader
=
new
SeiReader
(
extractorOutput
.
track
(
idGenerator
.
getNextId
()));
}
}
...
...
library/src/main/java/com/google/android/exoplayer2/ui/PlaybackControlView.java
View file @
d79f8f64
...
@@ -15,6 +15,7 @@
...
@@ -15,6 +15,7 @@
*/
*/
package
com
.
google
.
android
.
exoplayer2
.
ui
;
package
com
.
google
.
android
.
exoplayer2
.
ui
;
import
android.annotation.TargetApi
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.res.TypedArray
;
import
android.content.res.TypedArray
;
import
android.os.SystemClock
;
import
android.os.SystemClock
;
...
@@ -75,6 +76,7 @@ public class PlaybackControlView extends FrameLayout {
...
@@ -75,6 +76,7 @@ public class PlaybackControlView extends FrameLayout {
private
ExoPlayer
player
;
private
ExoPlayer
player
;
private
VisibilityListener
visibilityListener
;
private
VisibilityListener
visibilityListener
;
private
boolean
isAttachedToWindow
;
private
boolean
dragging
;
private
boolean
dragging
;
private
int
rewindMs
;
private
int
rewindMs
;
private
int
fastForwardMs
;
private
int
fastForwardMs
;
...
@@ -264,7 +266,7 @@ public class PlaybackControlView extends FrameLayout {
...
@@ -264,7 +266,7 @@ public class PlaybackControlView extends FrameLayout {
removeCallbacks
(
hideAction
);
removeCallbacks
(
hideAction
);
if
(
showTimeoutMs
>
0
)
{
if
(
showTimeoutMs
>
0
)
{
hideAtMs
=
SystemClock
.
uptimeMillis
()
+
showTimeoutMs
;
hideAtMs
=
SystemClock
.
uptimeMillis
()
+
showTimeoutMs
;
if
(
isAttachedToWindow
()
)
{
if
(
isAttachedToWindow
)
{
postDelayed
(
hideAction
,
showTimeoutMs
);
postDelayed
(
hideAction
,
showTimeoutMs
);
}
}
}
else
{
}
else
{
...
@@ -279,7 +281,7 @@ public class PlaybackControlView extends FrameLayout {
...
@@ -279,7 +281,7 @@ public class PlaybackControlView extends FrameLayout {
}
}
private
void
updatePlayPauseButton
()
{
private
void
updatePlayPauseButton
()
{
if
(!
isVisible
()
||
!
isAttachedToWindow
()
)
{
if
(!
isVisible
()
||
!
isAttachedToWindow
)
{
return
;
return
;
}
}
boolean
playing
=
player
!=
null
&&
player
.
getPlayWhenReady
();
boolean
playing
=
player
!=
null
&&
player
.
getPlayWhenReady
();
...
@@ -291,7 +293,7 @@ public class PlaybackControlView extends FrameLayout {
...
@@ -291,7 +293,7 @@ public class PlaybackControlView extends FrameLayout {
}
}
private
void
updateNavigation
()
{
private
void
updateNavigation
()
{
if
(!
isVisible
()
||
!
isAttachedToWindow
()
)
{
if
(!
isVisible
()
||
!
isAttachedToWindow
)
{
return
;
return
;
}
}
Timeline
currentTimeline
=
player
!=
null
?
player
.
getCurrentTimeline
()
:
null
;
Timeline
currentTimeline
=
player
!=
null
?
player
.
getCurrentTimeline
()
:
null
;
...
@@ -315,7 +317,7 @@ public class PlaybackControlView extends FrameLayout {
...
@@ -315,7 +317,7 @@ public class PlaybackControlView extends FrameLayout {
}
}
private
void
updateProgress
()
{
private
void
updateProgress
()
{
if
(!
isVisible
()
||
!
isAttachedToWindow
()
)
{
if
(!
isVisible
()
||
!
isAttachedToWindow
)
{
return
;
return
;
}
}
long
duration
=
player
==
null
?
0
:
player
.
getDuration
();
long
duration
=
player
==
null
?
0
:
player
.
getDuration
();
...
@@ -350,13 +352,18 @@ public class PlaybackControlView extends FrameLayout {
...
@@ -350,13 +352,18 @@ public class PlaybackControlView extends FrameLayout {
private
void
setButtonEnabled
(
boolean
enabled
,
View
view
)
{
private
void
setButtonEnabled
(
boolean
enabled
,
View
view
)
{
view
.
setEnabled
(
enabled
);
view
.
setEnabled
(
enabled
);
if
(
Util
.
SDK_INT
>=
11
)
{
if
(
Util
.
SDK_INT
>=
11
)
{
view
.
setAlpha
(
enabled
?
1
f
:
0.3f
);
setViewAlphaV11
(
view
,
enabled
?
1
f
:
0.3f
);
view
.
setVisibility
(
VISIBLE
);
view
.
setVisibility
(
VISIBLE
);
}
else
{
}
else
{
view
.
setVisibility
(
enabled
?
VISIBLE
:
INVISIBLE
);
view
.
setVisibility
(
enabled
?
VISIBLE
:
INVISIBLE
);
}
}
}
}
@TargetApi
(
11
)
private
void
setViewAlphaV11
(
View
view
,
float
alpha
)
{
view
.
setAlpha
(
alpha
);
}
private
String
stringForTime
(
long
timeMs
)
{
private
String
stringForTime
(
long
timeMs
)
{
if
(
timeMs
==
C
.
TIME_UNSET
)
{
if
(
timeMs
==
C
.
TIME_UNSET
)
{
timeMs
=
0
;
timeMs
=
0
;
...
@@ -426,6 +433,7 @@ public class PlaybackControlView extends FrameLayout {
...
@@ -426,6 +433,7 @@ public class PlaybackControlView extends FrameLayout {
@Override
@Override
public
void
onAttachedToWindow
()
{
public
void
onAttachedToWindow
()
{
super
.
onAttachedToWindow
();
super
.
onAttachedToWindow
();
isAttachedToWindow
=
true
;
if
(
hideAtMs
!=
C
.
TIME_UNSET
)
{
if
(
hideAtMs
!=
C
.
TIME_UNSET
)
{
long
delayMs
=
hideAtMs
-
SystemClock
.
uptimeMillis
();
long
delayMs
=
hideAtMs
-
SystemClock
.
uptimeMillis
();
if
(
delayMs
<=
0
)
{
if
(
delayMs
<=
0
)
{
...
@@ -440,6 +448,7 @@ public class PlaybackControlView extends FrameLayout {
...
@@ -440,6 +448,7 @@ public class PlaybackControlView extends FrameLayout {
@Override
@Override
public
void
onDetachedFromWindow
()
{
public
void
onDetachedFromWindow
()
{
super
.
onDetachedFromWindow
();
super
.
onDetachedFromWindow
();
isAttachedToWindow
=
false
;
removeCallbacks
(
updateProgressAction
);
removeCallbacks
(
updateProgressAction
);
removeCallbacks
(
hideAction
);
removeCallbacks
(
hideAction
);
}
}
...
...
playbacktests/src/main/AndroidManifest.xml
View file @
d79f8f64
...
@@ -17,8 +17,8 @@
...
@@ -17,8 +17,8 @@
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
package=
"com.google.android.exoplayer2.playbacktests"
package=
"com.google.android.exoplayer2.playbacktests"
android:versionCode=
"200
3
"
android:versionCode=
"200
4
"
android:versionName=
"2.0.
3
"
>
android:versionName=
"2.0.
4
"
>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
...
...
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