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
380c427f
authored
Apr 10, 2015
by
Oliver Woodman
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Make MediaCodecVideoTrackRenderer easier to extend.
parent
a085d2f2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
5 deletions
library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java
library/src/main/java/com/google/android/exoplayer/MediaCodecVideoTrackRenderer.java
View file @
380c427f
...
@@ -373,6 +373,13 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
...
@@ -373,6 +373,13 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
:
holder
.
format
.
pixelWidthHeightRatio
;
:
holder
.
format
.
pixelWidthHeightRatio
;
}
}
/**
* @return True if the first frame has been rendered (playback has not necessarily begun).
*/
protected
final
boolean
haveRenderedFirstFrame
()
{
return
renderedFirstFrame
;
}
@Override
@Override
protected
void
onOutputFormatChanged
(
android
.
media
.
MediaFormat
format
)
{
protected
void
onOutputFormatChanged
(
android
.
media
.
MediaFormat
format
)
{
boolean
hasCrop
=
format
.
containsKey
(
KEY_CROP_RIGHT
)
&&
format
.
containsKey
(
KEY_CROP_LEFT
)
boolean
hasCrop
=
format
.
containsKey
(
KEY_CROP_RIGHT
)
&&
format
.
containsKey
(
KEY_CROP_LEFT
)
...
@@ -427,7 +434,6 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
...
@@ -427,7 +434,6 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
if
(!
renderedFirstFrame
)
{
if
(!
renderedFirstFrame
)
{
renderOutputBufferImmediate
(
codec
,
bufferIndex
);
renderOutputBufferImmediate
(
codec
,
bufferIndex
);
renderedFirstFrame
=
true
;
return
true
;
return
true
;
}
}
...
@@ -463,14 +469,14 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
...
@@ -463,14 +469,14 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
return
false
;
return
false
;
}
}
pr
ivate
void
skipOutputBuffer
(
MediaCodec
codec
,
int
bufferIndex
)
{
pr
otected
void
skipOutputBuffer
(
MediaCodec
codec
,
int
bufferIndex
)
{
TraceUtil
.
beginSection
(
"skipVideoBuffer"
);
TraceUtil
.
beginSection
(
"skipVideoBuffer"
);
codec
.
releaseOutputBuffer
(
bufferIndex
,
false
);
codec
.
releaseOutputBuffer
(
bufferIndex
,
false
);
TraceUtil
.
endSection
();
TraceUtil
.
endSection
();
codecCounters
.
skippedOutputBufferCount
++;
codecCounters
.
skippedOutputBufferCount
++;
}
}
pr
ivate
void
dropOutputBuffer
(
MediaCodec
codec
,
int
bufferIndex
)
{
pr
otected
void
dropOutputBuffer
(
MediaCodec
codec
,
int
bufferIndex
)
{
TraceUtil
.
beginSection
(
"dropVideoBuffer"
);
TraceUtil
.
beginSection
(
"dropVideoBuffer"
);
codec
.
releaseOutputBuffer
(
bufferIndex
,
false
);
codec
.
releaseOutputBuffer
(
bufferIndex
,
false
);
TraceUtil
.
endSection
();
TraceUtil
.
endSection
();
...
@@ -481,22 +487,24 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
...
@@ -481,22 +487,24 @@ public class MediaCodecVideoTrackRenderer extends MediaCodecTrackRenderer {
}
}
}
}
pr
ivate
void
renderOutputBufferImmediate
(
MediaCodec
codec
,
int
bufferIndex
)
{
pr
otected
void
renderOutputBufferImmediate
(
MediaCodec
codec
,
int
bufferIndex
)
{
maybeNotifyVideoSizeChanged
();
maybeNotifyVideoSizeChanged
();
TraceUtil
.
beginSection
(
"renderVideoBufferImmediate"
);
TraceUtil
.
beginSection
(
"renderVideoBufferImmediate"
);
codec
.
releaseOutputBuffer
(
bufferIndex
,
true
);
codec
.
releaseOutputBuffer
(
bufferIndex
,
true
);
TraceUtil
.
endSection
();
TraceUtil
.
endSection
();
codecCounters
.
renderedOutputBufferCount
++;
codecCounters
.
renderedOutputBufferCount
++;
renderedFirstFrame
=
true
;
maybeNotifyDrawnToSurface
();
maybeNotifyDrawnToSurface
();
}
}
@TargetApi
(
21
)
@TargetApi
(
21
)
pr
ivate
void
renderOutputBufferTimedV21
(
MediaCodec
codec
,
int
bufferIndex
,
long
releaseTimeNs
)
{
pr
otected
void
renderOutputBufferTimedV21
(
MediaCodec
codec
,
int
bufferIndex
,
long
releaseTimeNs
)
{
maybeNotifyVideoSizeChanged
();
maybeNotifyVideoSizeChanged
();
TraceUtil
.
beginSection
(
"releaseOutputBufferTimed"
);
TraceUtil
.
beginSection
(
"releaseOutputBufferTimed"
);
codec
.
releaseOutputBuffer
(
bufferIndex
,
releaseTimeNs
);
codec
.
releaseOutputBuffer
(
bufferIndex
,
releaseTimeNs
);
TraceUtil
.
endSection
();
TraceUtil
.
endSection
();
codecCounters
.
renderedOutputBufferCount
++;
codecCounters
.
renderedOutputBufferCount
++;
renderedFirstFrame
=
true
;
maybeNotifyDrawnToSurface
();
maybeNotifyDrawnToSurface
();
}
}
...
...
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