Open mis-kcn opened 2 years ago
I'm unable to reproduce the behaviour described. I played the link provided and I saw the following tracks in logcat (i.e. one text track):
tracks [eventTime=1.93, mediaPos=0.00, window=0, period=0
MediaCodecVideoRenderer [
Group:0, adaptive_supported=N/A [
[ ] Track:0, id=0, mimeType=video/mpeg2, bitrate=11110000, res=1920x1080, fps=29.97, supported=NO_UNSUPPORTED_TYPE
]
]
MediaCodecAudioRenderer [
Group:0, adaptive_supported=N/A [
[ ] Track:0, id=3/15, mimeType=audio/mp4a-latm, codecs=mp4a.40.2, channels=6, sample_rate=48000, language=en, supported=YES
]
Group:1, adaptive_supported=N/A [
[X] Track:0, id=aac:eng a1, mimeType=audio/mp4a-latm, codecs=mp4a.40.2, channels=6, sample_rate=48000, language=en, label=eng a1, supported=YES
]
Group:2, adaptive_supported=N/A [
[ ] Track:0, id=aac:spa a2, mimeType=audio/mp4a-latm, codecs=mp4a.40.2, channels=2, sample_rate=48000, language=es, label=spa a2, supported=YES
]
Metadata [
HlsTrackMetadataEntry [aac, eng a1]
]
]
TextRenderer [
Group:0, adaptive_supported=N/A [
[X] Track:0, id=3/8194, mimeType=application/cea-608, language=en, supported=YES
]
]
MetadataRenderer [
Group:0, adaptive_supported=N/A [
[X] Track:0, id=null, mimeType=application/id3, supported=YES
]
Group:1, adaptive_supported=N/A [
[ ] Track:0, id=null, mimeType=application/id3, supported=YES
]
Group:2, adaptive_supported=N/A [
[ ] Track:0, id=null, mimeType=application/id3, supported=YES
]
]
CameraMotionRenderer []
]
This matches the manifest file, which declares a single #EXT-X-MEDIA
with TYPE=CLOSED-CAPTIONS
.
This single text track is selected automatically by the player, because it has DEFAULT=YES,AUTOSELECT=YES
. I see captions appear on the screen.
I am using 460d2219be34c489084be3ccd4a8c7716f4f1fff
commit, I believe this is 2.17.1 release.
I cannot replicate the same with my end, here's how I ran the application and the logcat I got. @icbaker
adb shell am start -a com.google.android.exoplayer.demo.action.VIEW \
-d M3U8_LINK
2022-06-20 21:57:36.582 3890-3890/com.google.android.exoplayer2.demo I/ExoPlayerImpl: Release 3f66298 [ExoPlayerLib/2.17.1] [generic_x86, sdk_google_atv_x86, unknown, 28] [goog.exo.core, goog.exo.database, goog.exo.ui, goog.exo.exoplayer, goog.exo.decoder, goog.exo.hls, goog.exo.cronet, goog.exo.datasource, goog.exo.vpx, goog.exo.opus, goog.exo.flac, goog.exo.ffmpeg, goog.exo.extractor]
2022-06-20 21:57:36.588 3890-3890/com.google.android.exoplayer2.demo E/libc: Access denied finding property "vendor.display-size"
2022-06-20 21:57:36.575 3890-3890/com.google.android.exoplayer2.demo W/exoplayer2.demo: type=1400 audit(0.0:41): avc: denied { read } for name="u:object_r:vendor_default_prop:s0" dev="tmpfs" ino=164 scontext=u:r:untrusted_app:s0:c56,c256,c512,c768 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
2022-06-20 21:57:36.589 3890-3890/com.google.android.exoplayer2.demo I/ExoPlayerImpl: Init d92a939 [ExoPlayerLib/2.17.1] [generic_x86, sdk_google_atv_x86, unknown, 28]
2022-06-20 21:57:36.590 3890-3890/com.google.android.exoplayer2.demo I/DefaultRenderersFactory: Loaded LibvpxVideoRenderer.
2022-06-20 21:57:36.590 3890-3890/com.google.android.exoplayer2.demo I/DefaultRenderersFactory: Loaded Libgav1VideoRenderer.
2022-06-20 21:57:36.591 3890-3890/com.google.android.exoplayer2.demo I/DefaultRenderersFactory: Loaded LibopusAudioRenderer.
2022-06-20 21:57:36.591 3890-3890/com.google.android.exoplayer2.demo I/DefaultRenderersFactory: Loaded LibflacAudioRenderer.
2022-06-20 21:57:36.591 3890-3890/com.google.android.exoplayer2.demo I/DefaultRenderersFactory: Loaded FfmpegAudioRenderer.
2022-06-20 21:57:36.613 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: playWhenReady [eventTime=0.00, mediaPos=0.00, window=0, true, USER_REQUEST]
2022-06-20 21:57:36.617 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: surfaceSize [eventTime=0.01, mediaPos=0.00, window=0, 1920, 1080]
2022-06-20 21:57:36.619 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: timeline [eventTime=0.01, mediaPos=0.00, window=0, periodCount=1, windowCount=1, reason=PLAYLIST_CHANGED
2022-06-20 21:57:36.619 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: period [?]
2022-06-20 21:57:36.619 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: window [?, seekable=false, dynamic=true]
2022-06-20 21:57:36.619 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:36.619 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: mediaItem [eventTime=0.01, mediaPos=0.00, window=0, reason=PLAYLIST_CHANGED]
2022-06-20 21:57:36.623 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: state [eventTime=0.01, mediaPos=0.00, window=0, BUFFERING]
2022-06-20 21:57:36.641 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: loading [eventTime=0.03, mediaPos=0.00, window=0, period=0, true]
2022-06-20 21:57:39.339 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: timeline [eventTime=2.73, mediaPos=0.00, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
2022-06-20 21:57:39.339 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: period [?]
2022-06-20 21:57:39.339 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: window [21.69, seekable=true, dynamic=true]
2022-06-20 21:57:39.339 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:39.349 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: audioEnabled [eventTime=2.74, mediaPos=0.00, window=0, period=0]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: tracks [eventTime=2.74, mediaPos=0.00, window=0, period=0
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: MediaCodecVideoRenderer []
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: LibvpxVideoRenderer []
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: Libgav1VideoRenderer []
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: MediaCodecAudioRenderer [
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: Group:main, adaptive_supported=N/A [
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: [ ] Track:0, id=0, mimeType=audio/mp4a-latm, bitrate=12210000, codecs=mp4a.40.2, supported=YES
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: Group:audio:eng a1, adaptive_supported=N/A [
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: [X] Track:0, id=aac:eng a1, mimeType=audio/mp4a-latm, codecs=mp4a.40.2, language=en, label=eng a1, selectionFlags=[auto,default], supported=YES
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: Group:audio:spa a2, adaptive_supported=N/A [
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: [ ] Track:0, id=aac:spa a2, mimeType=audio/mp4a-latm, codecs=mp4a.40.2, language=es, label=spa a2, selectionFlags=[auto], supported=YES
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: Metadata [
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: HlsTrackMetadataEntry [aac, eng a1]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: LibopusAudioRenderer []
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: LibflacAudioRenderer []
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: FfmpegAudioRenderer []
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: TextRenderer []
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: MetadataRenderer [
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: Group:main:id3, adaptive_supported=N/A [
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: [X] Track:0, id=ID3, mimeType=application/id3, supported=YES
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: CameraMotionRenderer []
2022-06-20 21:57:39.350 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:40.141 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: downstreamFormat [eventTime=3.53, mediaPos=0.00, window=0, period=0, id=aac:eng a1, mimeType=audio/mp4a-latm, codecs=mp4a.40.2, language=en, label=eng a1, selectionFlags=[auto,default]]
2022-06-20 21:57:40.143 3890-4090/com.google.android.exoplayer2.demo I/OMXClient: IOmx service obtained
2022-06-20 21:57:40.145 3890-4090/com.google.android.exoplayer2.demo I/ACodec: codec does not support config priority (err -2147483648)
2022-06-20 21:57:40.148 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: audioDecoderInitialized [eventTime=3.54, mediaPos=0.00, window=0, period=0, OMX.google.aac.decoder]
2022-06-20 21:57:40.149 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: audioInputFormat [eventTime=3.54, mediaPos=0.00, window=0, period=0, id=aac:eng a1, mimeType=audio/mp4a-latm, codecs=mp4a.40.2, channels=6, sample_rate=48000, language=en, label=eng a1, selectionFlags=[auto,default]]
2022-06-20 21:57:40.616 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: downstreamFormat [eventTime=4.01, mediaPos=0.00, window=0, period=0, id=0, mimeType=null, bitrate=12210000, codecs=mp4a.40.2, res=1920x1080, fps=29.97]
2022-06-20 21:57:41.952 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: state [eventTime=5.34, mediaPos=0.00, window=0, period=0, READY]
2022-06-20 21:57:41.955 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: isPlaying [eventTime=5.35, mediaPos=0.00, window=0, period=0, true]
2022-06-20 21:57:45.594 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: timeline [eventTime=8.99, mediaPos=-1.47, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
2022-06-20 21:57:45.594 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: period [?]
2022-06-20 21:57:45.594 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: window [22.22, seekable=true, dynamic=true]
2022-06-20 21:57:45.594 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:57:52.850 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: timeline [eventTime=16.24, mediaPos=-0.20, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
2022-06-20 21:57:52.850 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: period [?]
2022-06-20 21:57:52.850 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: window [22.72, seekable=true, dynamic=true]
2022-06-20 21:57:52.850 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
2022-06-20 21:58:00.108 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: timeline [eventTime=23.50, mediaPos=2.05, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
2022-06-20 21:58:00.108 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: period [?]
2022-06-20 21:58:00.108 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: window [23.72, seekable=true, dynamic=true]
2022-06-20 21:58:00.109 3890-3890/com.google.android.exoplayer2.demo D/EventLogger: ]
I am using
460d2219be34c489084be3ccd4a8c7716f4f1fff
commit, I believe this is 2.17.1 release.
The original version of this issue stated you were using version 2.15.1 of the library so that's what I tested with, and was unable to reproduce the problem.
18 hours ago (i.e. after my initial comment) you updated the top comment to say 2.17.1.
Testing again with 2.17.1 I see the same behaviour you report.
HLS chunkless preparation was enabled by default in the 2.17.0 release. Disabling this results in the subtitles appearing again.
You can disable chunkless preparation as described in https://github.com/google/ExoPlayer/issues/10065#issuecomment-1080946460.
Handing this over to @christosts to see if this HLS playlist could be improved to better support chunkless preparation, or whether something needs to change in the way ExoPlayer parses playlists like this.
There's something that's confusing HLS chunkless preparation but I'm not sure yet which of the two (or both) it is:
I recommend to disable chunkless preparation on your app for this stream. I'll mark this as a bug but with low-priority for now.
ExoPlayer Version
2.17.1
Devices that reproduce the issue
Android TV emulator running Android 9
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
Yes
Reproduction steps
Expected result
There should be 4 captions available for selection
Actual result
Caption button is disabled
Media
Debugging info from provider:
Media URL will be sent through email.
Bug Report
adb bugreport
to dev.exoplayer@gmail.com after filing this issue.