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
aa570621
authored
Feb 27, 2018
by
Oliver Woodman
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Restore equivalence
parent
51405c99
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
166 additions
and
104 deletions
README.md
library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java
library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java
README.md
View file @
aa570621
...
...
@@ -38,8 +38,8 @@ repositories {
}
```
Next add a
gradle compile dependency to the
`build.gradle`
file of your app
module. The
following will add a dependency to the full library:
Next add a
dependency in the
`build.gradle`
file of your app module. The
following will add a dependency to the full library:
```
gradle
implementation
'com.google.android.exoplayer:exoplayer:2.X.X'
...
...
library/core/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java
View file @
aa570621
...
...
@@ -1929,12 +1929,12 @@ public final class MatroskaExtractor implements Extractor {
/**
* Builds initialization data for a {@link Format} from FourCC codec private data.
* <p>
* VC1 and H263 are the only supported compression types.
*
* @return A pair object with the first object being the codec mime type
* and the second object the initialization data for the {@link Format},
* or null if the compression type is not a currently supported type (VC1 or H263).
* <p>VC1 and H263 are the only supported compression types.
*
* @return The codec mime type and initialization data. If the compression type is not supported
* then the mime type is set to {@link MimeTypes#VIDEO_UNKNOWN} and the initialization data
* is {@code null}.
* @throws ParserException If the initialization data could not be built.
*/
private
static
Pair
<
String
,
List
<
byte
[]>>
parseFourCcPrivate
(
ParsableByteArray
buffer
)
...
...
@@ -1944,14 +1944,16 @@ public final class MatroskaExtractor implements Extractor {
long
compression
=
buffer
.
readLittleEndianUnsignedInt
();
if
(
compression
==
FOURCC_COMPRESSION_DIVX
)
{
return
new
Pair
<>(
MimeTypes
.
VIDEO_H263
,
null
);
}
else
if
(
compression
==
FOURCC_COMPRESSION_VC1
)
{
}
else
if
(
compression
==
FOURCC_COMPRESSION_VC1
)
{
// Search for the initialization data from the end of the BITMAPINFOHEADER. The last 20
// bytes of which are: sizeImage(4), xPel/m (4), yPel/m (4), clrUsed(4), clrImportant(4).
int
startOffset
=
buffer
.
getPosition
()
+
20
;
byte
[]
bufferData
=
buffer
.
data
;
for
(
int
offset
=
startOffset
;
offset
<
bufferData
.
length
-
4
;
offset
++)
{
if
(
bufferData
[
offset
]
==
0x00
&&
bufferData
[
offset
+
1
]
==
0x00
&&
bufferData
[
offset
+
2
]
==
0x01
&&
bufferData
[
offset
+
3
]
==
0x0F
)
{
if
(
bufferData
[
offset
]
==
0x00
&&
bufferData
[
offset
+
1
]
==
0x00
&&
bufferData
[
offset
+
2
]
==
0x01
&&
bufferData
[
offset
+
3
]
==
0x0F
)
{
// We've found the initialization data.
byte
[]
initializationData
=
Arrays
.
copyOfRange
(
bufferData
,
offset
,
bufferData
.
length
);
return
new
Pair
<>(
MimeTypes
.
VIDEO_VC1
,
Collections
.
singletonList
(
initializationData
));
...
...
library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadService.java
View file @
aa570621
...
...
@@ -289,6 +289,7 @@ public abstract class DownloadService extends Service implements DownloadManager
@Override
public
void
onIdle
(
DownloadManager
downloadManager
)
{
// Make sure startForeground is called before stopping.
// Workaround for https://buganizer.corp.google.com/issues/69424260
if
(
Util
.
SDK_INT
>=
26
)
{
Builder
notificationBuilder
=
new
Builder
(
this
,
getNotificationChannelId
());
Notification
foregroundNotification
=
notificationBuilder
.
build
();
...
...
library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultHttpDataSource.java
View file @
aa570621
...
...
@@ -614,8 +614,8 @@ public class DefaultHttpDataSource implements HttpDataSource {
}
String
className
=
inputStream
.
getClass
().
getName
();
if
(
"com.android.okhttp.internal.http.HttpTransport$ChunkedInputStream"
.
equals
(
className
)
||
"com.android.okhttp.internal.http.HttpTransport$FixedLengthInputStream"
.
equals
(
className
))
{
||
"com.android.okhttp.internal.http.HttpTransport$FixedLengthInputStream"
.
equals
(
className
))
{
Class
<?>
superclass
=
inputStream
.
getClass
().
getSuperclass
();
Method
unexpectedEndOfInput
=
superclass
.
getDeclaredMethod
(
"unexpectedEndOfInput"
);
unexpectedEndOfInput
.
setAccessible
(
true
);
...
...
library/core/src/main/java/com/google/android/exoplayer2/util/EventLogger.java
View file @
aa570621
...
...
@@ -89,173 +89,207 @@ public class EventLogger
@Override
public
void
onLoadingChanged
(
boolean
isLoading
)
{
logd
(
TAG
,
"loading ["
+
isLoading
+
"]"
);
logd
(
"loading ["
+
isLoading
+
"]"
);
}
@Override
public
void
onPlayerStateChanged
(
boolean
playWhenReady
,
int
state
)
{
logd
(
TAG
,
"state ["
+
getSessionTimeString
()
+
", "
+
playWhenReady
+
", "
+
getStateString
(
state
)
+
"]"
);
logd
(
"state ["
+
getSessionTimeString
()
+
", "
+
playWhenReady
+
", "
+
getStateString
(
state
)
+
"]"
);
}
@Override
public
void
onRepeatModeChanged
(
@Player
.
RepeatMode
int
repeatMode
)
{
logd
(
TAG
,
"repeatMode ["
+
getRepeatModeString
(
repeatMode
)
+
"]"
);
logd
(
"repeatMode ["
+
getRepeatModeString
(
repeatMode
)
+
"]"
);
}
@Override
public
void
onShuffleModeEnabledChanged
(
boolean
shuffleModeEnabled
)
{
logd
(
TAG
,
"shuffleModeEnabled ["
+
shuffleModeEnabled
+
"]"
);
logd
(
"shuffleModeEnabled ["
+
shuffleModeEnabled
+
"]"
);
}
@Override
public
void
onPositionDiscontinuity
(
@Player
.
DiscontinuityReason
int
reason
)
{
logd
(
TAG
,
"positionDiscontinuity ["
+
getDiscontinuityReasonString
(
reason
)
+
"]"
);
logd
(
"positionDiscontinuity ["
+
getDiscontinuityReasonString
(
reason
)
+
"]"
);
}
@Override
public
void
onPlaybackParametersChanged
(
PlaybackParameters
playbackParameters
)
{
logd
(
TAG
,
"playbackParameters "
+
String
.
format
(
"[speed=%.2f, pitch=%.2f]"
,
playbackParameters
.
speed
,
playbackParameters
.
pitch
));
logd
(
"playbackParameters "
+
String
.
format
(
"[speed=%.2f, pitch=%.2f]"
,
playbackParameters
.
speed
,
playbackParameters
.
pitch
));
}
@Override
public
void
onTimelineChanged
(
Timeline
timeline
,
Object
manifest
,
@Player
.
TimelineChangeReason
int
reason
)
{
public
void
onTimelineChanged
(
Timeline
timeline
,
Object
manifest
,
@Player
.
TimelineChangeReason
int
reason
)
{
int
periodCount
=
timeline
.
getPeriodCount
();
int
windowCount
=
timeline
.
getWindowCount
();
logd
(
TAG
,
"timelineChanged [periodCount="
+
periodCount
+
", windowCount="
+
windowCount
+
", reason="
+
getTimelineChangeReasonString
(
reason
));
logd
(
"timelineChanged [periodCount="
+
periodCount
+
", windowCount="
+
windowCount
+
", reason="
+
getTimelineChangeReasonString
(
reason
));
for
(
int
i
=
0
;
i
<
Math
.
min
(
periodCount
,
MAX_TIMELINE_ITEM_LINES
);
i
++)
{
timeline
.
getPeriod
(
i
,
period
);
logd
(
TAG
,
" "
+
"period ["
+
getTimeString
(
period
.
getDurationMs
())
+
"]"
);
logd
(
" "
+
"period ["
+
getTimeString
(
period
.
getDurationMs
())
+
"]"
);
}
if
(
periodCount
>
MAX_TIMELINE_ITEM_LINES
)
{
logd
(
TAG
,
" ..."
);
logd
(
" ..."
);
}
for
(
int
i
=
0
;
i
<
Math
.
min
(
windowCount
,
MAX_TIMELINE_ITEM_LINES
);
i
++)
{
timeline
.
getWindow
(
i
,
window
);
logd
(
TAG
,
" "
+
"window ["
+
getTimeString
(
window
.
getDurationMs
())
+
", "
+
window
.
isSeekable
+
", "
+
window
.
isDynamic
+
"]"
);
logd
(
" "
+
"window ["
+
getTimeString
(
window
.
getDurationMs
())
+
", "
+
window
.
isSeekable
+
", "
+
window
.
isDynamic
+
"]"
);
}
if
(
windowCount
>
MAX_TIMELINE_ITEM_LINES
)
{
logd
(
TAG
,
" ..."
);
logd
(
" ..."
);
}
logd
(
TAG
,
"]"
);
logd
(
"]"
);
}
@Override
public
void
onPlayerError
(
ExoPlaybackException
e
)
{
loge
(
TAG
,
"playerFailed ["
+
getSessionTimeString
()
+
"]"
,
e
);
loge
(
"playerFailed ["
+
getSessionTimeString
()
+
"]"
,
e
);
}
@Override
public
void
onTracksChanged
(
TrackGroupArray
ignored
,
TrackSelectionArray
trackSelections
)
{
MappedTrackInfo
mappedTrackInfo
=
trackSelector
.
getCurrentMappedTrackInfo
();
if
(
mappedTrackInfo
==
null
)
{
logd
(
TAG
,
"Tracks []"
);
logd
(
"Tracks []"
);
return
;
}
logd
(
TAG
,
"Tracks ["
);
logd
(
"Tracks ["
);
// Log tracks associated to renderers.
for
(
int
rendererIndex
=
0
;
rendererIndex
<
mappedTrackInfo
.
length
;
rendererIndex
++)
{
TrackGroupArray
rendererTrackGroups
=
mappedTrackInfo
.
getTrackGroups
(
rendererIndex
);
TrackSelection
trackSelection
=
trackSelections
.
get
(
rendererIndex
);
if
(
rendererTrackGroups
.
length
>
0
)
{
logd
(
TAG
,
" Renderer:"
+
rendererIndex
+
" ["
);
logd
(
" Renderer:"
+
rendererIndex
+
" ["
);
for
(
int
groupIndex
=
0
;
groupIndex
<
rendererTrackGroups
.
length
;
groupIndex
++)
{
TrackGroup
trackGroup
=
rendererTrackGroups
.
get
(
groupIndex
);
String
adaptiveSupport
=
getAdaptiveSupportString
(
trackGroup
.
length
,
mappedTrackInfo
.
getAdaptiveSupport
(
rendererIndex
,
groupIndex
,
false
));
logd
(
TAG
,
" Group:"
+
groupIndex
+
", adaptive_supported="
+
adaptiveSupport
+
" ["
);
String
adaptiveSupport
=
getAdaptiveSupportString
(
trackGroup
.
length
,
mappedTrackInfo
.
getAdaptiveSupport
(
rendererIndex
,
groupIndex
,
false
));
logd
(
" Group:"
+
groupIndex
+
", adaptive_supported="
+
adaptiveSupport
+
" ["
);
for
(
int
trackIndex
=
0
;
trackIndex
<
trackGroup
.
length
;
trackIndex
++)
{
String
status
=
getTrackStatusString
(
trackSelection
,
trackGroup
,
trackIndex
);
String
formatSupport
=
getFormatSupportString
(
mappedTrackInfo
.
getTrackFormatSupport
(
rendererIndex
,
groupIndex
,
trackIndex
));
logd
(
TAG
,
" "
+
status
+
" Track:"
+
trackIndex
+
", "
+
Format
.
toLogString
(
trackGroup
.
getFormat
(
trackIndex
))
+
", supported="
+
formatSupport
);
String
formatSupport
=
getFormatSupportString
(
mappedTrackInfo
.
getTrackFormatSupport
(
rendererIndex
,
groupIndex
,
trackIndex
));
logd
(
" "
+
status
+
" Track:"
+
trackIndex
+
", "
+
Format
.
toLogString
(
trackGroup
.
getFormat
(
trackIndex
))
+
", supported="
+
formatSupport
);
}
logd
(
TAG
,
" ]"
);
logd
(
" ]"
);
}
// Log metadata for at most one of the tracks selected for the renderer.
if
(
trackSelection
!=
null
)
{
for
(
int
selectionIndex
=
0
;
selectionIndex
<
trackSelection
.
length
();
selectionIndex
++)
{
Metadata
metadata
=
trackSelection
.
getFormat
(
selectionIndex
).
metadata
;
if
(
metadata
!=
null
)
{
logd
(
TAG
,
" Metadata ["
);
logd
(
" Metadata ["
);
printMetadata
(
metadata
,
" "
);
logd
(
TAG
,
" ]"
);
logd
(
" ]"
);
break
;
}
}
}
logd
(
TAG
,
" ]"
);
logd
(
" ]"
);
}
}
// Log tracks not associated with a renderer.
TrackGroupArray
unassociatedTrackGroups
=
mappedTrackInfo
.
getUnassociatedTrackGroups
();
if
(
unassociatedTrackGroups
.
length
>
0
)
{
logd
(
TAG
,
" Renderer:None ["
);
logd
(
" Renderer:None ["
);
for
(
int
groupIndex
=
0
;
groupIndex
<
unassociatedTrackGroups
.
length
;
groupIndex
++)
{
logd
(
TAG
,
" Group:"
+
groupIndex
+
" ["
);
logd
(
" Group:"
+
groupIndex
+
" ["
);
TrackGroup
trackGroup
=
unassociatedTrackGroups
.
get
(
groupIndex
);
for
(
int
trackIndex
=
0
;
trackIndex
<
trackGroup
.
length
;
trackIndex
++)
{
String
status
=
getTrackStatusString
(
false
);
String
formatSupport
=
getFormatSupportString
(
RendererCapabilities
.
FORMAT_UNSUPPORTED_TYPE
);
logd
(
TAG
,
" "
+
status
+
" Track:"
+
trackIndex
+
", "
+
Format
.
toLogString
(
trackGroup
.
getFormat
(
trackIndex
))
+
", supported="
+
formatSupport
);
String
formatSupport
=
getFormatSupportString
(
RendererCapabilities
.
FORMAT_UNSUPPORTED_TYPE
);
logd
(
" "
+
status
+
" Track:"
+
trackIndex
+
", "
+
Format
.
toLogString
(
trackGroup
.
getFormat
(
trackIndex
))
+
", supported="
+
formatSupport
);
}
logd
(
TAG
,
" ]"
);
logd
(
" ]"
);
}
logd
(
TAG
,
" ]"
);
logd
(
" ]"
);
}
logd
(
TAG
,
"]"
);
logd
(
"]"
);
}
@Override
public
void
onSeekProcessed
()
{
logd
(
TAG
,
"seekProcessed"
);
logd
(
"seekProcessed"
);
}
// MetadataOutput
@Override
public
void
onMetadata
(
Metadata
metadata
)
{
logd
(
TAG
,
"onMetadata ["
);
logd
(
"onMetadata ["
);
printMetadata
(
metadata
,
" "
);
logd
(
TAG
,
"]"
);
logd
(
"]"
);
}
// AudioRendererEventListener
@Override
public
void
onAudioEnabled
(
DecoderCounters
counters
)
{
logd
(
TAG
,
"audioEnabled ["
+
getSessionTimeString
()
+
"]"
);
logd
(
"audioEnabled ["
+
getSessionTimeString
()
+
"]"
);
}
@Override
public
void
onAudioSessionId
(
int
audioSessionId
)
{
logd
(
TAG
,
"audioSessionId ["
+
audioSessionId
+
"]"
);
logd
(
"audioSessionId ["
+
audioSessionId
+
"]"
);
}
@Override
public
void
onAudioDecoderInitialized
(
String
decoderName
,
long
elapsedRealtimeMs
,
long
initializationDurationMs
)
{
logd
(
TAG
,
"audioDecoderInitialized ["
+
getSessionTimeString
()
+
", "
+
decoderName
+
"]"
);
public
void
onAudioDecoderInitialized
(
String
decoderName
,
long
elapsedRealtimeMs
,
long
initializationDurationMs
)
{
logd
(
"audioDecoderInitialized ["
+
getSessionTimeString
()
+
", "
+
decoderName
+
"]"
);
}
@Override
public
void
onAudioInputFormatChanged
(
Format
format
)
{
logd
(
TAG
,
"audioFormatChanged ["
+
getSessionTimeString
()
+
", "
+
Format
.
toLogString
(
format
)
+
"]"
);
logd
(
"audioFormatChanged ["
+
getSessionTimeString
()
+
", "
+
Format
.
toLogString
(
format
)
+
"]"
);
}
@Override
public
void
onAudioDisabled
(
DecoderCounters
counters
)
{
logd
(
TAG
,
"audioDisabled ["
+
getSessionTimeString
()
+
"]"
);
logd
(
"audioDisabled ["
+
getSessionTimeString
()
+
"]"
);
}
@Override
...
...
@@ -268,40 +302,39 @@ public class EventLogger
@Override
public
void
onVideoEnabled
(
DecoderCounters
counters
)
{
logd
(
TAG
,
"videoEnabled ["
+
getSessionTimeString
()
+
"]"
);
logd
(
"videoEnabled ["
+
getSessionTimeString
()
+
"]"
);
}
@Override
public
void
onVideoDecoderInitialized
(
String
decoderName
,
long
elapsedRealtimeMs
,
long
initializationDurationMs
)
{
logd
(
TAG
,
"videoDecoderInitialized ["
+
getSessionTimeString
()
+
", "
+
decoderName
+
"]"
);
public
void
onVideoDecoderInitialized
(
String
decoderName
,
long
elapsedRealtimeMs
,
long
initializationDurationMs
)
{
logd
(
"videoDecoderInitialized ["
+
getSessionTimeString
()
+
", "
+
decoderName
+
"]"
);
}
@Override
public
void
onVideoInputFormatChanged
(
Format
format
)
{
logd
(
TAG
,
"videoFormatChanged ["
+
getSessionTimeString
()
+
", "
+
Format
.
toLogString
(
format
)
+
"]"
);
logd
(
"videoFormatChanged ["
+
getSessionTimeString
()
+
", "
+
Format
.
toLogString
(
format
)
+
"]"
);
}
@Override
public
void
onVideoDisabled
(
DecoderCounters
counters
)
{
logd
(
TAG
,
"videoDisabled ["
+
getSessionTimeString
()
+
"]"
);
logd
(
"videoDisabled ["
+
getSessionTimeString
()
+
"]"
);
}
@Override
public
void
onDroppedFrames
(
int
count
,
long
elapsed
)
{
logd
(
TAG
,
"droppedFrames ["
+
getSessionTimeString
()
+
", "
+
count
+
"]"
);
logd
(
"droppedFrames ["
+
getSessionTimeString
()
+
", "
+
count
+
"]"
);
}
@Override
public
void
onVideoSizeChanged
(
int
width
,
int
height
,
int
unappliedRotationDegrees
,
float
pixelWidthHeightRatio
)
{
logd
(
TAG
,
"videoSizeChanged ["
+
width
+
", "
+
height
+
"]"
);
public
void
onVideoSizeChanged
(
int
width
,
int
height
,
int
unappliedRotationDegrees
,
float
pixelWidthHeightRatio
)
{
logd
(
"videoSizeChanged ["
+
width
+
", "
+
height
+
"]"
);
}
@Override
public
void
onRenderedFirstFrame
(
Surface
surface
)
{
logd
(
TAG
,
"renderedFirstFrame ["
+
surface
+
"]"
);
logd
(
"renderedFirstFrame ["
+
surface
+
"]"
);
}
// DefaultDrmSessionManager.EventListener
...
...
@@ -313,17 +346,17 @@ public class EventLogger
@Override
public
void
onDrmKeysRestored
()
{
logd
(
TAG
,
"drmKeysRestored ["
+
getSessionTimeString
()
+
"]"
);
logd
(
"drmKeysRestored ["
+
getSessionTimeString
()
+
"]"
);
}
@Override
public
void
onDrmKeysRemoved
()
{
logd
(
TAG
,
"drmKeysRemoved ["
+
getSessionTimeString
()
+
"]"
);
logd
(
"drmKeysRemoved ["
+
getSessionTimeString
()
+
"]"
);
}
@Override
public
void
onDrmKeysLoaded
()
{
logd
(
TAG
,
"drmKeysLoaded ["
+
getSessionTimeString
()
+
"]"
);
logd
(
"drmKeysLoaded ["
+
getSessionTimeString
()
+
"]"
);
}
// MediaSourceEventListener
...
...
@@ -397,10 +430,29 @@ public class EventLogger
// Do nothing.
}
/**
* Logs a debug message.
*
* @param msg The message to log.
*/
protected
void
logd
(
String
msg
)
{
Log
.
d
(
TAG
,
msg
);
}
/**
* Logs an error message and exception.
*
* @param msg The message to log.
* @param tr The exception to log.
*/
protected
void
loge
(
String
msg
,
Throwable
tr
)
{
Log
.
e
(
TAG
,
msg
,
tr
);
}
// Internal methods
private
void
printInternalError
(
String
type
,
Exception
e
)
{
loge
(
TAG
,
"internalError ["
+
getSessionTimeString
()
+
", "
+
type
+
"]"
,
e
);
loge
(
"internalError ["
+
getSessionTimeString
()
+
", "
+
type
+
"]"
,
e
);
}
private
void
printMetadata
(
Metadata
metadata
,
String
prefix
)
{
...
...
@@ -408,37 +460,51 @@ public class EventLogger
Metadata
.
Entry
entry
=
metadata
.
get
(
i
);
if
(
entry
instanceof
TextInformationFrame
)
{
TextInformationFrame
textInformationFrame
=
(
TextInformationFrame
)
entry
;
logd
(
TAG
,
prefix
+
String
.
format
(
"%s: value=%s"
,
textInformationFrame
.
id
,
textInformationFrame
.
value
));
logd
(
prefix
+
String
.
format
(
"%s: value=%s"
,
textInformationFrame
.
id
,
textInformationFrame
.
value
));
}
else
if
(
entry
instanceof
UrlLinkFrame
)
{
UrlLinkFrame
urlLinkFrame
=
(
UrlLinkFrame
)
entry
;
logd
(
TAG
,
prefix
+
String
.
format
(
"%s: url=%s"
,
urlLinkFrame
.
id
,
urlLinkFrame
.
url
));
logd
(
prefix
+
String
.
format
(
"%s: url=%s"
,
urlLinkFrame
.
id
,
urlLinkFrame
.
url
));
}
else
if
(
entry
instanceof
PrivFrame
)
{
PrivFrame
privFrame
=
(
PrivFrame
)
entry
;
logd
(
TAG
,
prefix
+
String
.
format
(
"%s: owner=%s"
,
privFrame
.
id
,
privFrame
.
owner
));
logd
(
prefix
+
String
.
format
(
"%s: owner=%s"
,
privFrame
.
id
,
privFrame
.
owner
));
}
else
if
(
entry
instanceof
GeobFrame
)
{
GeobFrame
geobFrame
=
(
GeobFrame
)
entry
;
logd
(
TAG
,
prefix
+
String
.
format
(
"%s: mimeType=%s, filename=%s, description=%s"
,
geobFrame
.
id
,
geobFrame
.
mimeType
,
geobFrame
.
filename
,
geobFrame
.
description
));
logd
(
prefix
+
String
.
format
(
"%s: mimeType=%s, filename=%s, description=%s"
,
geobFrame
.
id
,
geobFrame
.
mimeType
,
geobFrame
.
filename
,
geobFrame
.
description
));
}
else
if
(
entry
instanceof
ApicFrame
)
{
ApicFrame
apicFrame
=
(
ApicFrame
)
entry
;
logd
(
TAG
,
prefix
+
String
.
format
(
"%s: mimeType=%s, description=%s"
,
apicFrame
.
id
,
apicFrame
.
mimeType
,
apicFrame
.
description
));
logd
(
prefix
+
String
.
format
(
"%s: mimeType=%s, description=%s"
,
apicFrame
.
id
,
apicFrame
.
mimeType
,
apicFrame
.
description
));
}
else
if
(
entry
instanceof
CommentFrame
)
{
CommentFrame
commentFrame
=
(
CommentFrame
)
entry
;
logd
(
TAG
,
prefix
+
String
.
format
(
"%s: language=%s, description=%s"
,
commentFrame
.
id
,
commentFrame
.
language
,
commentFrame
.
description
));
logd
(
prefix
+
String
.
format
(
"%s: language=%s, description=%s"
,
commentFrame
.
id
,
commentFrame
.
language
,
commentFrame
.
description
));
}
else
if
(
entry
instanceof
Id3Frame
)
{
Id3Frame
id3Frame
=
(
Id3Frame
)
entry
;
logd
(
TAG
,
prefix
+
String
.
format
(
"%s"
,
id3Frame
.
id
)
);
logd
(
prefix
+
id3Frame
.
id
);
}
else
if
(
entry
instanceof
EventMessage
)
{
EventMessage
eventMessage
=
(
EventMessage
)
entry
;
logd
(
TAG
,
prefix
+
String
.
format
(
"EMSG: scheme=%s, id=%d, value=%s"
,
eventMessage
.
schemeIdUri
,
eventMessage
.
id
,
eventMessage
.
value
));
logd
(
prefix
+
String
.
format
(
"EMSG: scheme=%s, id=%d, value=%s"
,
eventMessage
.
schemeIdUri
,
eventMessage
.
id
,
eventMessage
.
value
));
}
else
if
(
entry
instanceof
SpliceCommand
)
{
String
description
=
String
.
format
(
"SCTE-35 splice command: type=%s."
,
entry
.
getClass
().
getSimpleName
());
logd
(
TAG
,
prefix
+
description
);
logd
(
prefix
+
description
);
}
}
}
...
...
@@ -555,11 +621,4 @@ public class EventLogger
}
}
protected
void
logd
(
String
tag
,
String
msg
)
{
Log
.
d
(
tag
,
msg
);
}
protected
void
loge
(
String
tag
,
String
msg
,
Throwable
tr
)
{
Log
.
e
(
tag
,
msg
,
tr
);
}
}
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