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
bec8b44b
authored
Jan 30, 2022
by
Dustin
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
BitmapFactoryVideoRenderer Tests
parent
df9e51de
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
474 additions
and
79 deletions
library/core/build.gradle
library/core/src/main/java/com/google/android/exoplayer2/video/BitmapFactoryVideoRenderer.java
library/core/src/test/java/com/google/android/exoplayer2/video/BitmapFactoryVideoRendererTest.java
library/core/src/test/java/com/google/android/exoplayer2/video/FakeEventListener.java
library/core/src/test/java/com/google/android/exoplayer2/video/ShadowSurfaceExtended.java
library/ui/src/main/java/com/google/android/exoplayer2/ui/CanvasSubtitleOutput.java
testdata/src/test/assets/media/jpeg/image-320-240.jpg
library/core/build.gradle
View file @
bec8b44b
...
...
@@ -21,7 +21,11 @@ android {
testInstrumentationRunnerArguments
clearPackageData:
'true'
multiDexEnabled
true
}
testOptions
{
unitTests
.
all
{
jvmArgs
'-noverify'
}
}
buildTypes
{
debug
{
testCoverageEnabled
=
true
...
...
library/core/src/main/java/com/google/android/exoplayer2/video/BitmapFactoryVideoRenderer.java
View file @
bec8b44b
This diff is collapsed.
Click to expand it.
library/core/src/test/java/com/google/android/exoplayer2/video/BitmapFactoryVideoRendererTest.java
0 → 100644
View file @
bec8b44b
This diff is collapsed.
Click to expand it.
library/core/src/test/java/com/google/android/exoplayer2/video/FakeEventListener.java
0 → 100644
View file @
bec8b44b
package
com
.
google
.
android
.
exoplayer2
.
video
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.decoder.DecoderCounters
;
public
class
FakeEventListener
implements
VideoRendererEventListener
{
@Nullable
VideoSize
videoSize
;
@Nullable
DecoderCounters
decoderCounters
;
private
long
firstFrameRenderMs
=
Long
.
MIN_VALUE
;
private
int
droppedFrames
;
private
Exception
videoCodecError
;
@Override
public
void
onVideoSizeChanged
(
VideoSize
videoSize
)
{
this
.
videoSize
=
videoSize
;
}
public
boolean
isVideoEnabled
()
{
return
decoderCounters
!=
null
;
}
@Override
public
void
onVideoEnabled
(
DecoderCounters
counters
)
{
decoderCounters
=
counters
;
}
@Override
public
void
onVideoDisabled
(
DecoderCounters
counters
)
{
decoderCounters
=
null
;
}
public
long
getFirstFrameRenderMs
()
{
return
firstFrameRenderMs
;
}
@Override
public
void
onRenderedFirstFrame
(
Object
output
,
long
renderTimeMs
)
{
firstFrameRenderMs
=
renderTimeMs
;
}
public
int
getDroppedFrames
()
{
return
droppedFrames
;
}
@Override
public
void
onDroppedFrames
(
int
count
,
long
elapsedMs
)
{
droppedFrames
+=
count
;
}
public
Exception
getVideoCodecError
()
{
return
videoCodecError
;
}
@Override
public
void
onVideoCodecError
(
Exception
videoCodecError
)
{
this
.
videoCodecError
=
videoCodecError
;
}
}
library/core/src/test/java/com/google/android/exoplayer2/video/ShadowSurfaceExtended.java
0 → 100644
View file @
bec8b44b
package
com
.
google
.
android
.
exoplayer2
.
video
;
import
android.graphics.Bitmap
;
import
android.graphics.Canvas
;
import
android.graphics.Rect
;
import
android.view.Surface
;
import
java.util.concurrent.Semaphore
;
import
java.util.concurrent.TimeUnit
;
import
org.robolectric.annotation.Implements
;
import
org.robolectric.shadow.api.Shadow
;
import
org.robolectric.shadows.ShadowSurface
;
@Implements
(
Surface
.
class
)
public
class
ShadowSurfaceExtended
extends
ShadowSurface
{
private
final
Semaphore
postSemaphore
=
new
Semaphore
(
0
);
private
int
width
;
private
int
height
;
public
static
Surface
newInstance
()
{
return
Shadow
.
newInstanceOf
(
Surface
.
class
);
}
public
void
setSize
(
final
int
width
,
final
int
height
)
{
this
.
width
=
width
;
this
.
height
=
height
;
}
public
Canvas
lockCanvas
(
Rect
canvas
)
{
return
new
Canvas
(
Bitmap
.
createBitmap
(
width
,
height
,
Bitmap
.
Config
.
ARGB_8888
));
}
public
void
unlockCanvasAndPost
(
Canvas
canvas
)
{
postSemaphore
.
release
();
}
public
boolean
waitForPost
(
long
millis
)
{
try
{
return
postSemaphore
.
tryAcquire
(
millis
,
TimeUnit
.
MILLISECONDS
);
}
catch
(
InterruptedException
e
)
{
return
false
;
}
}
}
library/ui/src/main/java/com/google/android/exoplayer2/ui/CanvasSubtitleOutput.java
View file @
bec8b44b
...
...
@@ -32,7 +32,8 @@ import java.util.List;
* A {@link SubtitleView.Output} that uses Android's native layout framework via {@link
* SubtitlePainter}.
*/
/* package */
final
class
CanvasSubtitleOutput
extends
View
implements
SubtitleView
.
Output
{
/* package */
final
class
CanvasSubtitleOutput
extends
View
implements
SubtitleView
.
Output
{
private
final
List
<
SubtitlePainter
>
painters
;
...
...
testdata/src/test/assets/media/jpeg/image-320-240.jpg
0 → 100644
View file @
bec8b44b
35.2 KB
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