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
8e6daec9
authored
Dec 27, 2022
by
kimvde
Committed by
Marc Baechinger
Jan 04, 2023
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Remove mentions of player in TransformationException
PiperOrigin-RevId: 497921432
parent
967e44c0
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
37 additions
and
51 deletions
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/AssetLoader.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExoPlayerAssetLoader.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExoPlayerAssetLoaderRenderer.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformationException.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerInternal.java
library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ExoPlayerAssetLoaderTest.java
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/AssetLoader.java
View file @
8e6daec9
...
@@ -171,7 +171,7 @@ public interface AssetLoader {
...
@@ -171,7 +171,7 @@ public interface AssetLoader {
* Called if an error occurs in the asset loader. In this case, the asset loader will be
* Called if an error occurs in the asset loader. In this case, the asset loader will be
* {@linkplain #release() released} automatically.
* {@linkplain #release() released} automatically.
*/
*/
void
on
Error
(
Exception
e
);
void
on
TransformationError
(
TransformationException
exception
);
}
}
/**
/**
...
...
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExoPlayerAssetLoader.java
View file @
8e6daec9
...
@@ -20,11 +20,13 @@ import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_BUFFER_FO
...
@@ -20,11 +20,13 @@ import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_BUFFER_FO
import
static
com
.
google
.
android
.
exoplayer2
.
DefaultLoadControl
.
DEFAULT_BUFFER_FOR_PLAYBACK_MS
;
import
static
com
.
google
.
android
.
exoplayer2
.
DefaultLoadControl
.
DEFAULT_BUFFER_FOR_PLAYBACK_MS
;
import
static
com
.
google
.
android
.
exoplayer2
.
DefaultLoadControl
.
DEFAULT_MAX_BUFFER_MS
;
import
static
com
.
google
.
android
.
exoplayer2
.
DefaultLoadControl
.
DEFAULT_MAX_BUFFER_MS
;
import
static
com
.
google
.
android
.
exoplayer2
.
DefaultLoadControl
.
DEFAULT_MIN_BUFFER_MS
;
import
static
com
.
google
.
android
.
exoplayer2
.
DefaultLoadControl
.
DEFAULT_MIN_BUFFER_MS
;
import
static
com
.
google
.
android
.
exoplayer2
.
PlaybackException
.
ERROR_CODE_FAILED_RUNTIME_CHECK
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
TransformationException
.
ERROR_CODE_FAILED_RUNTIME_CHECK
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
TransformationException
.
ERROR_CODE_UNSPECIFIED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_AVAILABLE
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_AVAILABLE
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_NOT_STARTED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_NOT_STARTED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_UNAVAILABLE
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_UNAVAILABLE
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_WAITING_FOR_AVAILABILITY
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_WAITING_FOR_AVAILABILITY
;
import
static
com
.
google
.
android
.
exoplayer2
.
util
.
Assertions
.
checkNotNull
;
import
static
com
.
google
.
android
.
exoplayer2
.
util
.
Assertions
.
checkStateNotNull
;
import
static
com
.
google
.
android
.
exoplayer2
.
util
.
Assertions
.
checkStateNotNull
;
import
static
java
.
lang
.
Math
.
min
;
import
static
java
.
lang
.
Math
.
min
;
...
@@ -349,10 +351,9 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
...
@@ -349,10 +351,9 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
trackCount
++;
trackCount
++;
}
}
if
(
trackCount
==
0
)
{
if
(
trackCount
==
0
)
{
assetLoaderListener
.
onError
(
assetLoaderListener
.
onTransformationError
(
new
PlaybackException
(
TransformationException
.
createForAssetLoader
(
"The asset loader has no track to output."
,
new
IllegalStateException
(
"The asset loader has no track to output."
),
/* cause= */
null
,
ERROR_CODE_FAILED_RUNTIME_CHECK
));
ERROR_CODE_FAILED_RUNTIME_CHECK
));
return
;
return
;
}
else
{
}
else
{
...
@@ -365,7 +366,13 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
...
@@ -365,7 +366,13 @@ public final class ExoPlayerAssetLoader implements AssetLoader {
@Override
@Override
public
void
onPlayerError
(
PlaybackException
error
)
{
public
void
onPlayerError
(
PlaybackException
error
)
{
assetLoaderListener
.
onError
(
error
);
@TransformationException
.
ErrorCode
int
errorCode
=
checkNotNull
(
TransformationException
.
NAME_TO_ERROR_CODE
.
getOrDefault
(
error
.
getErrorCodeName
(),
ERROR_CODE_UNSPECIFIED
));
assetLoaderListener
.
onTransformationError
(
TransformationException
.
createForAssetLoader
(
error
,
errorCode
));
}
}
}
}
}
}
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/ExoPlayerAssetLoaderRenderer.java
View file @
8e6daec9
...
@@ -119,7 +119,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...
@@ -119,7 +119,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
}
}
}
catch
(
TransformationException
e
)
{
}
catch
(
TransformationException
e
)
{
isTransformationRunning
=
false
;
isTransformationRunning
=
false
;
assetLoaderListener
.
onError
(
e
);
assetLoaderListener
.
on
Transformation
Error
(
e
);
}
}
}
}
...
...
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformationException.java
View file @
8e6daec9
...
@@ -23,7 +23,6 @@ import android.os.SystemClock;
...
@@ -23,7 +23,6 @@ import android.os.SystemClock;
import
androidx.annotation.IntDef
;
import
androidx.annotation.IntDef
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
com.google.android.exoplayer2.Format
;
import
com.google.android.exoplayer2.Format
;
import
com.google.android.exoplayer2.PlaybackException
;
import
com.google.android.exoplayer2.audio.AudioProcessor.AudioFormat
;
import
com.google.android.exoplayer2.audio.AudioProcessor.AudioFormat
;
import
com.google.android.exoplayer2.util.Clock
;
import
com.google.android.exoplayer2.util.Clock
;
import
com.google.android.exoplayer2.util.FrameProcessingException
;
import
com.google.android.exoplayer2.util.FrameProcessingException
;
...
@@ -107,8 +106,8 @@ public final class TransformationException extends Exception {
...
@@ -107,8 +106,8 @@ public final class TransformationException extends Exception {
/**
/**
* Caused by a server returning a resource with an invalid "Content-Type" HTTP header value.
* Caused by a server returning a resource with an invalid "Content-Type" HTTP header value.
*
*
* <p>For example, this can happen when the
player is expecting a piece of media, but the server
* <p>For example, this can happen when the
{@link AssetLoader} is expecting a piece of media, but
* returns a paywall HTML page, with content type "text/html".
*
the server
returns a paywall HTML page, with content type "text/html".
*/
*/
public
static
final
int
ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE
=
2003
;
public
static
final
int
ERROR_CODE_IO_INVALID_HTTP_CONTENT_TYPE
=
2003
;
/** Caused by an HTTP server returning an unexpected HTTP response status code. */
/** Caused by an HTTP server returning an unexpected HTTP response status code. */
...
@@ -121,8 +120,8 @@ public final class TransformationException extends Exception {
...
@@ -121,8 +120,8 @@ public final class TransformationException extends Exception {
*/
*/
public
static
final
int
ERROR_CODE_IO_NO_PERMISSION
=
2006
;
public
static
final
int
ERROR_CODE_IO_NO_PERMISSION
=
2006
;
/**
/**
* Caused by the
player trying to access cleartext HTTP traffic (meaning http:// rather than
* Caused by the
{@link AssetLoader} trying to access cleartext HTTP traffic (meaning http://
* https://) when the app's Network Security Configuration does not permit it.
*
rather than
https://) when the app's Network Security Configuration does not permit it.
*/
*/
public
static
final
int
ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED
=
2007
;
public
static
final
int
ERROR_CODE_IO_CLEARTEXT_NOT_PERMITTED
=
2007
;
/** Caused by reading data out of the data bound. */
/** Caused by reading data out of the data bound. */
...
@@ -170,7 +169,7 @@ public final class TransformationException extends Exception {
...
@@ -170,7 +169,7 @@ public final class TransformationException extends Exception {
/** Caused by a failure while muxing media samples. */
/** Caused by a failure while muxing media samples. */
public
static
final
int
ERROR_CODE_MUXING_FAILED
=
7001
;
public
static
final
int
ERROR_CODE_MUXING_FAILED
=
7001
;
private
static
final
ImmutableBiMap
<
String
,
@ErrorCode
Integer
>
NAME_TO_ERROR_CODE
=
/* package */
static
final
ImmutableBiMap
<
String
,
@ErrorCode
Integer
>
NAME_TO_ERROR_CODE
=
new
ImmutableBiMap
.
Builder
<
String
,
@ErrorCode
Integer
>()
new
ImmutableBiMap
.
Builder
<
String
,
@ErrorCode
Integer
>()
.
put
(
"ERROR_CODE_FAILED_RUNTIME_CHECK"
,
ERROR_CODE_FAILED_RUNTIME_CHECK
)
.
put
(
"ERROR_CODE_FAILED_RUNTIME_CHECK"
,
ERROR_CODE_FAILED_RUNTIME_CHECK
)
.
put
(
"ERROR_CODE_IO_UNSPECIFIED"
,
ERROR_CODE_IO_UNSPECIFIED
)
.
put
(
"ERROR_CODE_IO_UNSPECIFIED"
,
ERROR_CODE_IO_UNSPECIFIED
)
...
@@ -195,11 +194,6 @@ public final class TransformationException extends Exception {
...
@@ -195,11 +194,6 @@ public final class TransformationException extends Exception {
.
put
(
"ERROR_CODE_MUXING_FAILED"
,
ERROR_CODE_MUXING_FAILED
)
.
put
(
"ERROR_CODE_MUXING_FAILED"
,
ERROR_CODE_MUXING_FAILED
)
.
buildOrThrow
();
.
buildOrThrow
();
/** Returns the {@code errorCode} for a given name. */
private
static
@ErrorCode
int
getErrorCodeForName
(
String
errorCodeName
)
{
return
NAME_TO_ERROR_CODE
.
getOrDefault
(
errorCodeName
,
ERROR_CODE_UNSPECIFIED
);
}
/** Returns the name of a given {@code errorCode}. */
/** Returns the name of a given {@code errorCode}. */
public
static
String
getErrorCodeName
(
@ErrorCode
int
errorCode
)
{
public
static
String
getErrorCodeName
(
@ErrorCode
int
errorCode
)
{
return
NAME_TO_ERROR_CODE
.
inverse
().
getOrDefault
(
errorCode
,
"invalid error code"
);
return
NAME_TO_ERROR_CODE
.
inverse
().
getOrDefault
(
errorCode
,
"invalid error code"
);
...
@@ -214,6 +208,17 @@ public final class TransformationException extends Exception {
...
@@ -214,6 +208,17 @@ public final class TransformationException extends Exception {
}
}
/**
/**
* Creates an instance for an {@link AssetLoader} related exception.
*
* @param cause The cause of the failure.
* @param errorCode See {@link #errorCode}.
* @return The created instance.
*/
public
static
TransformationException
createForAssetLoader
(
Throwable
cause
,
int
errorCode
)
{
return
new
TransformationException
(
"Asset loader error"
,
cause
,
errorCode
);
}
/**
* Creates an instance for a decoder or encoder related exception.
* Creates an instance for a decoder or encoder related exception.
*
*
* <p>Use this method after the {@link MediaFormat} used to configure the {@link Codec} is known.
* <p>Use this method after the {@link MediaFormat} used to configure the {@link Codec} is known.
...
@@ -322,21 +327,6 @@ public final class TransformationException extends Exception {
...
@@ -322,21 +327,6 @@ public final class TransformationException extends Exception {
return
new
TransformationException
(
"Unexpected error"
,
cause
,
ERROR_CODE_UNSPECIFIED
);
return
new
TransformationException
(
"Unexpected error"
,
cause
,
ERROR_CODE_UNSPECIFIED
);
}
}
/**
* Creates an instance for a {@link PlaybackException}.
*
* <p>If there is a corresponding {@link TransformationException.ErrorCode} for the {@link
* PlaybackException.ErrorCode}, this error code and the same message are used for the created
* instance. Otherwise, this is equivalent to {@link #createForUnexpected(Exception)}.
*/
/* package */
static
TransformationException
createForPlaybackException
(
PlaybackException
exception
)
{
@ErrorCode
int
errorCode
=
getErrorCodeForName
(
exception
.
getErrorCodeName
());
return
errorCode
==
ERROR_CODE_UNSPECIFIED
?
createForUnexpected
(
exception
)
:
new
TransformationException
(
exception
.
getMessage
(),
exception
,
errorCode
);
}
/** An error code which identifies the cause of the transformation failure. */
/** An error code which identifies the cause of the transformation failure. */
public
final
@ErrorCode
int
errorCode
;
public
final
@ErrorCode
int
errorCode
;
...
...
library/transformer/src/main/java/com/google/android/exoplayer2/transformer/TransformerInternal.java
View file @
8e6daec9
...
@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.transformer;
...
@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.transformer;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AssetLoader
.
SUPPORTED_OUTPUT_TYPE_DECODED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AssetLoader
.
SUPPORTED_OUTPUT_TYPE_DECODED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AssetLoader
.
SUPPORTED_OUTPUT_TYPE_ENCODED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
AssetLoader
.
SUPPORTED_OUTPUT_TYPE_ENCODED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
TransformationException
.
ERROR_CODE_FAILED_RUNTIME_CHECK
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
TransformationException
.
ERROR_CODE_MUXING_FAILED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
TransformationException
.
ERROR_CODE_MUXING_FAILED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_NOT_STARTED
;
import
static
com
.
google
.
android
.
exoplayer2
.
transformer
.
Transformer
.
PROGRESS_STATE_NOT_STARTED
;
import
static
com
.
google
.
android
.
exoplayer2
.
util
.
Assertions
.
checkState
;
import
static
com
.
google
.
android
.
exoplayer2
.
util
.
Assertions
.
checkState
;
...
@@ -33,7 +34,6 @@ import androidx.annotation.Nullable;
...
@@ -33,7 +34,6 @@ import androidx.annotation.Nullable;
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.MediaItem
;
import
com.google.android.exoplayer2.MediaItem
;
import
com.google.android.exoplayer2.PlaybackException
;
import
com.google.android.exoplayer2.audio.AudioProcessor
;
import
com.google.android.exoplayer2.audio.AudioProcessor
;
import
com.google.android.exoplayer2.decoder.DecoderInputBuffer
;
import
com.google.android.exoplayer2.decoder.DecoderInputBuffer
;
import
com.google.android.exoplayer2.metadata.Metadata
;
import
com.google.android.exoplayer2.metadata.Metadata
;
...
@@ -397,7 +397,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...
@@ -397,7 +397,10 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@Override
@Override
public
void
onTrackCount
(
int
trackCount
)
{
public
void
onTrackCount
(
int
trackCount
)
{
if
(
trackCount
<=
0
)
{
if
(
trackCount
<=
0
)
{
onError
(
new
IllegalStateException
(
"AssetLoader instances must provide at least 1 track."
));
onTransformationError
(
TransformationException
.
createForAssetLoader
(
new
IllegalStateException
(
"AssetLoader instances must provide at least 1 track."
),
ERROR_CODE_FAILED_RUNTIME_CHECK
));
return
;
return
;
}
}
this
.
trackCount
.
set
(
trackCount
);
this
.
trackCount
.
set
(
trackCount
);
...
@@ -450,20 +453,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...
@@ -450,20 +453,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
return
new
SamplePipelineInput
(
samplePipelineIndex
,
samplePipeline
.
expectsDecodedData
());
return
new
SamplePipelineInput
(
samplePipelineIndex
,
samplePipeline
.
expectsDecodedData
());
}
}
@Override
public
void
onError
(
Exception
e
)
{
TransformationException
transformationException
;
if
(
e
instanceof
TransformationException
)
{
transformationException
=
(
TransformationException
)
e
;
}
else
if
(
e
instanceof
PlaybackException
)
{
transformationException
=
TransformationException
.
createForPlaybackException
((
PlaybackException
)
e
);
}
else
{
transformationException
=
TransformationException
.
createForUnexpected
(
e
);
}
onTransformationError
(
transformationException
);
}
// MuxerWrapper.Listener implementation.
// MuxerWrapper.Listener implementation.
@Override
@Override
...
...
library/transformer/src/test/java/com/google/android/exoplayer2/transformer/ExoPlayerAssetLoaderTest.java
View file @
8e6daec9
...
@@ -85,7 +85,7 @@ public class ExoPlayerAssetLoaderTest {
...
@@ -85,7 +85,7 @@ public class ExoPlayerAssetLoaderTest {
}
}
@Override
@Override
public
void
on
Error
(
Exception
e
)
{
public
void
on
TransformationError
(
Transformation
Exception
e
)
{
exceptionRef
.
set
(
e
);
exceptionRef
.
set
(
e
);
}
}
...
...
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