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
4ebe046b
authored
Nov 18, 2021
by
tonihei
Committed by
Ian Baker
Nov 19, 2021
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Set LogSessionId on MediaParser for progressive playbacks.
PiperOrigin-RevId: 410766492
parent
21e659ef
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
46 additions
and
7 deletions
libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaParserExtractorAdapter.java
libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaExtractor.java
libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java
libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/MediaParserUtil.java
libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriodTest.java
libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/MediaParserExtractorAdapter.java
View file @
4ebe046b
...
@@ -28,7 +28,10 @@ import androidx.annotation.RequiresApi;
...
@@ -28,7 +28,10 @@ import androidx.annotation.RequiresApi;
import
androidx.media3.common.C
;
import
androidx.media3.common.C
;
import
androidx.media3.common.DataReader
;
import
androidx.media3.common.DataReader
;
import
androidx.media3.common.util.UnstableApi
;
import
androidx.media3.common.util.UnstableApi
;
import
androidx.media3.common.util.Util
;
import
androidx.media3.exoplayer.analytics.PlayerId
;
import
androidx.media3.exoplayer.source.mediaparser.InputReaderAdapterV30
;
import
androidx.media3.exoplayer.source.mediaparser.InputReaderAdapterV30
;
import
androidx.media3.exoplayer.source.mediaparser.MediaParserUtil
;
import
androidx.media3.exoplayer.source.mediaparser.OutputConsumerAdapterV30
;
import
androidx.media3.exoplayer.source.mediaparser.OutputConsumerAdapterV30
;
import
androidx.media3.extractor.Extractor
;
import
androidx.media3.extractor.Extractor
;
import
androidx.media3.extractor.ExtractorOutput
;
import
androidx.media3.extractor.ExtractorOutput
;
...
@@ -54,7 +57,7 @@ public final class MediaParserExtractorAdapter implements ProgressiveMediaExtrac
...
@@ -54,7 +57,7 @@ public final class MediaParserExtractorAdapter implements ProgressiveMediaExtrac
private
String
parserName
;
private
String
parserName
;
@SuppressLint
(
"WrongConstant"
)
@SuppressLint
(
"WrongConstant"
)
public
MediaParserExtractorAdapter
()
{
public
MediaParserExtractorAdapter
(
PlayerId
playerId
)
{
// TODO: Add support for injecting the desired extractor list.
// TODO: Add support for injecting the desired extractor list.
outputConsumerAdapter
=
new
OutputConsumerAdapterV30
();
outputConsumerAdapter
=
new
OutputConsumerAdapterV30
();
inputReaderAdapter
=
new
InputReaderAdapterV30
();
inputReaderAdapter
=
new
InputReaderAdapterV30
();
...
@@ -63,6 +66,9 @@ public final class MediaParserExtractorAdapter implements ProgressiveMediaExtrac
...
@@ -63,6 +66,9 @@ public final class MediaParserExtractorAdapter implements ProgressiveMediaExtrac
mediaParser
.
setParameter
(
PARAMETER_IN_BAND_CRYPTO_INFO
,
true
);
mediaParser
.
setParameter
(
PARAMETER_IN_BAND_CRYPTO_INFO
,
true
);
mediaParser
.
setParameter
(
PARAMETER_INCLUDE_SUPPLEMENTAL_DATA
,
true
);
mediaParser
.
setParameter
(
PARAMETER_INCLUDE_SUPPLEMENTAL_DATA
,
true
);
parserName
=
MediaParser
.
PARSER_NAME_UNKNOWN
;
parserName
=
MediaParser
.
PARSER_NAME_UNKNOWN
;
if
(
Util
.
SDK_INT
>=
31
)
{
MediaParserUtil
.
setLogSessionIdOnMediaParser
(
mediaParser
,
playerId
);
}
}
}
@Override
@Override
...
...
libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaExtractor.java
View file @
4ebe046b
...
@@ -19,6 +19,7 @@ import android.net.Uri;
...
@@ -19,6 +19,7 @@ import android.net.Uri;
import
androidx.media3.common.C
;
import
androidx.media3.common.C
;
import
androidx.media3.common.DataReader
;
import
androidx.media3.common.DataReader
;
import
androidx.media3.common.util.UnstableApi
;
import
androidx.media3.common.util.UnstableApi
;
import
androidx.media3.exoplayer.analytics.PlayerId
;
import
androidx.media3.extractor.Extractor
;
import
androidx.media3.extractor.Extractor
;
import
androidx.media3.extractor.ExtractorOutput
;
import
androidx.media3.extractor.ExtractorOutput
;
import
androidx.media3.extractor.PositionHolder
;
import
androidx.media3.extractor.PositionHolder
;
...
@@ -33,8 +34,12 @@ public interface ProgressiveMediaExtractor {
...
@@ -33,8 +34,12 @@ public interface ProgressiveMediaExtractor {
/** Creates {@link ProgressiveMediaExtractor} instances. */
/** Creates {@link ProgressiveMediaExtractor} instances. */
interface
Factory
{
interface
Factory
{
/** Returns a new {@link ProgressiveMediaExtractor} instance. */
/**
ProgressiveMediaExtractor
createProgressiveMediaExtractor
();
* Returns a new {@link ProgressiveMediaExtractor} instance.
*
* @param playerId The {@link PlayerId} of the player this extractor is used for.
*/
ProgressiveMediaExtractor
createProgressiveMediaExtractor
(
PlayerId
playerId
);
}
}
/**
/**
...
...
libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/ProgressiveMediaSource.java
View file @
4ebe046b
...
@@ -79,7 +79,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
...
@@ -79,7 +79,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
* Factory(dataSourceFactory, () -> new BundledExtractorsAdapter(extractorsFactory)}.
* Factory(dataSourceFactory, () -> new BundledExtractorsAdapter(extractorsFactory)}.
*/
*/
public
Factory
(
DataSource
.
Factory
dataSourceFactory
,
ExtractorsFactory
extractorsFactory
)
{
public
Factory
(
DataSource
.
Factory
dataSourceFactory
,
ExtractorsFactory
extractorsFactory
)
{
this
(
dataSourceFactory
,
()
->
new
BundledExtractorsAdapter
(
extractorsFactory
));
this
(
dataSourceFactory
,
playerId
->
new
BundledExtractorsAdapter
(
extractorsFactory
));
}
}
/**
/**
...
@@ -107,7 +107,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
...
@@ -107,7 +107,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
@Deprecated
@Deprecated
public
Factory
setExtractorsFactory
(
@Nullable
ExtractorsFactory
extractorsFactory
)
{
public
Factory
setExtractorsFactory
(
@Nullable
ExtractorsFactory
extractorsFactory
)
{
this
.
progressiveMediaExtractorFactory
=
this
.
progressiveMediaExtractorFactory
=
()
->
playerId
->
new
BundledExtractorsAdapter
(
new
BundledExtractorsAdapter
(
extractorsFactory
!=
null
?
extractorsFactory
:
new
DefaultExtractorsFactory
());
extractorsFactory
!=
null
?
extractorsFactory
:
new
DefaultExtractorsFactory
());
return
this
;
return
this
;
...
@@ -315,7 +315,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
...
@@ -315,7 +315,7 @@ public final class ProgressiveMediaSource extends BaseMediaSource
return
new
ProgressiveMediaPeriod
(
return
new
ProgressiveMediaPeriod
(
localConfiguration
.
uri
,
localConfiguration
.
uri
,
dataSource
,
dataSource
,
progressiveMediaExtractorFactory
.
createProgressiveMediaExtractor
(),
progressiveMediaExtractorFactory
.
createProgressiveMediaExtractor
(
getPlayerId
()
),
drmSessionManager
,
drmSessionManager
,
createDrmEventDispatcher
(
id
),
createDrmEventDispatcher
(
id
),
loadableLoadErrorHandlingPolicy
,
loadableLoadErrorHandlingPolicy
,
...
...
libraries/exoplayer/src/main/java/androidx/media3/exoplayer/source/mediaparser/MediaParserUtil.java
View file @
4ebe046b
...
@@ -17,8 +17,11 @@ package androidx.media3.exoplayer.source.mediaparser;
...
@@ -17,8 +17,11 @@ package androidx.media3.exoplayer.source.mediaparser;
import
android.media.MediaFormat
;
import
android.media.MediaFormat
;
import
android.media.MediaParser
;
import
android.media.MediaParser
;
import
android.media.metrics.LogSessionId
;
import
androidx.annotation.RequiresApi
;
import
androidx.media3.common.Format
;
import
androidx.media3.common.Format
;
import
androidx.media3.common.util.UnstableApi
;
import
androidx.media3.common.util.UnstableApi
;
import
androidx.media3.exoplayer.analytics.PlayerId
;
/**
/**
* Miscellaneous constants and utility methods related to the {@link MediaParser} integration.
* Miscellaneous constants and utility methods related to the {@link MediaParser} integration.
...
@@ -59,4 +62,27 @@ public final class MediaParserUtil {
...
@@ -59,4 +62,27 @@ public final class MediaParserUtil {
}
}
return
mediaFormat
;
return
mediaFormat
;
}
}
/**
* Calls {@link MediaParser#setLogSessionId(LogSessionId)}.
*
* @param mediaParser The {@link MediaParser} to call the method on.
* @param playerId The {@link PlayerId} to obtain the {@link LogSessionId} from.
*/
@RequiresApi
(
31
)
public
static
void
setLogSessionIdOnMediaParser
(
MediaParser
mediaParser
,
PlayerId
playerId
)
{
Api31
.
setLogSessionIdOnMediaParser
(
mediaParser
,
playerId
);
}
@RequiresApi
(
31
)
private
static
final
class
Api31
{
private
Api31
()
{}
public
static
void
setLogSessionIdOnMediaParser
(
MediaParser
mediaParser
,
PlayerId
playerId
)
{
LogSessionId
logSessionId
=
playerId
.
getLogSessionId
();
if
(!
logSessionId
.
equals
(
LogSessionId
.
LOG_SESSION_ID_NONE
))
{
mediaParser
.
setLogSessionId
(
logSessionId
);
}
}
}
}
}
libraries/exoplayer/src/test/java/androidx/media3/exoplayer/source/ProgressiveMediaPeriodTest.java
View file @
4ebe046b
...
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
...
@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import
android.net.Uri
;
import
android.net.Uri
;
import
androidx.media3.common.C
;
import
androidx.media3.common.C
;
import
androidx.media3.datasource.AssetDataSource
;
import
androidx.media3.datasource.AssetDataSource
;
import
androidx.media3.exoplayer.analytics.PlayerId
;
import
androidx.media3.exoplayer.drm.DrmSessionEventListener
;
import
androidx.media3.exoplayer.drm.DrmSessionEventListener
;
import
androidx.media3.exoplayer.drm.DrmSessionManager
;
import
androidx.media3.exoplayer.drm.DrmSessionManager
;
import
androidx.media3.exoplayer.source.MediaSource.MediaPeriodId
;
import
androidx.media3.exoplayer.source.MediaSource.MediaPeriodId
;
...
@@ -48,7 +49,8 @@ public final class ProgressiveMediaPeriodTest {
...
@@ -48,7 +49,8 @@ public final class ProgressiveMediaPeriodTest {
@Test
@Test
public
void
prepareUsingMediaParser_updatesSourceInfoBeforeOnPreparedCallback
()
public
void
prepareUsingMediaParser_updatesSourceInfoBeforeOnPreparedCallback
()
throws
TimeoutException
{
throws
TimeoutException
{
testExtractorsUpdatesSourceInfoBeforeOnPreparedCallback
(
new
MediaParserExtractorAdapter
());
testExtractorsUpdatesSourceInfoBeforeOnPreparedCallback
(
new
MediaParserExtractorAdapter
(
PlayerId
.
UNSET
));
}
}
private
static
void
testExtractorsUpdatesSourceInfoBeforeOnPreparedCallback
(
private
static
void
testExtractorsUpdatesSourceInfoBeforeOnPreparedCallback
(
...
...
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