media icon indicating copy to clipboard operation
media copied to clipboard

androidx.media3.exoplayer.hls.SampleQueueMappingException on DRM Content specific on HiSense HiSmart 2K TV

Open JosephSanjaya opened this issue 1 year ago • 5 comments

Version

Media3 1.3.1

More version details

No response

Devices that reproduce the issue

HiSense HiSmart 2K TV

Devices that do not reproduce the issue

On Other android TV

Reproducible in the demo app?

No

Reproduction steps

  1. Has HiSense Smart TV
  2. Play DRM Content

Expected result

The media play successfully

Actual result

Playback crashes with stacktraces:

Exception: androidx.media3.exoplayer.hls.SampleQueueMappingException: Unable to bind a sample queue to TrackGroup with MIME type video/avc.
       at androidx.media3.exoplayer.hls.SampleQueueMappingException.<init>(SampleQueueMappingException.java:32)
       at androidx.media3.exoplayer.hls.HlsSampleStream.maybeThrowError(HlsSampleStream.java:62)
       at androidx.media3.exoplayer.BaseRenderer.maybeThrowStreamError(BaseRenderer.java:182)
       at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1125)
       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:544)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:223)
       at android.os.HandlerThread.run(HandlerThread.java:67)

Media

Not applicable

Bug Report

  • [X] You will email the zip file produced by adb bugreport to [email protected] after filing this issue.

JosephSanjaya avatar Aug 13 '24 09:08 JosephSanjaya

I can't find a SampleQueueMappingException in the provided BR. The only ExoPlayer error I can see happened when the player was already being released:

08-13 16:35:04.333 10029 19897 19897 E EventLogger: playerFailed [eventTime=2498.55, mediaPos=734.01, window=0, period=0, errorCode=ERROR_CODE_TIMEOUT
08-13 16:35:04.333 10029 19897 19897 E EventLogger:   androidx.media3.exoplayer.ExoPlaybackException: Unexpected runtime error
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.exoplayer.ExoPlayerImpl.lambda$release$5(ExoPlayerImpl.java:1070)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.exoplayer.ExoPlayerImpl$$ExternalSyntheticLambda9.invoke(D8$$SyntheticClass:0)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.common.util.ListenerSet$ListenerHolder.invoke(ListenerSet.java:339)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.common.util.ListenerSet.lambda$queueEvent$0(ListenerSet.java:223)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.common.util.ListenerSet$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.common.util.ListenerSet.flushEvents(ListenerSet.java:245)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.common.util.ListenerSet.sendEvent(ListenerSet.java:260)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.exoplayer.ExoPlayerImpl.release(ExoPlayerImpl.java:1066)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.demo.main.PlayerActivity.releasePlayer(PlayerActivity.java:390)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.demo.main.PlayerActivity.onStop(PlayerActivity.java:182)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.Instrumentation.callActivityOnStop(Instrumentation.java:1476)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.Activity.performStop(Activity.java:8215)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.ActivityThread.callActivityOnStop(ActivityThread.java:4850)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:4829)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.ActivityThread.handleStopActivity(ActivityThread.java:4903)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.servertransaction.StopActivityItem.execute(StopActivityItem.java:40)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.os.Handler.dispatchMessage(Handler.java:106)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.os.Looper.loop(Looper.java:223)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at android.app.ActivityThread.main(ActivityThread.java:7656)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at java.lang.reflect.Method.invoke(Native Method)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:   Caused by: androidx.media3.exoplayer.ExoTimeoutException: Player release timed out.
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       at androidx.media3.exoplayer.ExoPlayerImpl.lambda$release$5(ExoPlayerImpl.java:1069)
08-13 16:35:04.333 10029 19897 19897 E EventLogger:       ... 24 more
08-13 16:35:04.333 10029 19897 19897 E EventLogger: ]

Please provide a BR that contains the described exception.

icbaker avatar Aug 14 '24 11:08 icbaker

that's weird. okay let me resend the BR later.

Thanks for response

JosephSanjaya avatar Aug 16 '24 02:08 JosephSanjaya

I'm already resend the bug report, sorry for the inconveniences.

Thanks

JosephSanjaya avatar Aug 19 '24 02:08 JosephSanjaya

is there any update regarding this issue?

JosephSanjaya avatar Aug 27 '24 02:08 JosephSanjaya

We are having a similar issue. Our Video provider can produce both DASH and HLS. Dash play without issue but the HLS (also DRMed) content receives this same error. On both 1.3.0 and 1.4.0.

2024-08-29 12:12:36.118 18055-18055 EventLogger                                                     timeline [eventTime=48.76, mediaPos=0.00, window=0, periodCount=1, windowCount=1, reason=PLAYLIST_CHANGED
2024-08-29 12:12:36.118 18055-18055 EventLogger             <package>             D    period [?]
2024-08-29 12:12:36.118 18055-18055 EventLogger             <package>             D    window [?, seekable=false, dynamic=true]
2024-08-29 12:12:36.118 18055-18055 EventLogger             <package>             D  ]
2024-08-29 12:12:36.144 18055-18055 EventLogger             <package>             D  mediaItem [eventTime=48.79, mediaPos=0.00, window=0, reason=PLAYLIST_CHANGED]
2024-08-29 12:12:36.148 18055-18055 EventLogger             <package>             D  state [eventTime=48.79, mediaPos=0.00, window=0, BUFFERING]
2024-08-29 12:12:36.149 18055-18096 DrmHalHidl              <package>             I  No hidl drm factories found
2024-08-29 12:12:36.149 18055-18096 DrmHalHidl              <package>             E  Failed to find passthrough drm factories
2024-08-29 12:12:36.150 18055-18096 DrmUtils                <package>             I  found IDrmFactory. Instance name:[android.hardware.drm.IDrmFactory/clearkey]
2024-08-29 12:12:36.151 18055-18096 DrmUtils                <package>             I  found IDrmFactory. Instance name:[android.hardware.drm.IDrmFactory/widevine]
2024-08-29 12:12:36.168 18055-18055 EventLogger             <package>             D  loading [eventTime=48.81, mediaPos=0.00, window=0, period=0, true]
2024-08-29 12:12:36.364 18055-18055 EventLogger             <package>             D  timeline [eventTime=49.01, mediaPos=728.01, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
2024-08-29 12:12:36.364 18055-18055 EventLogger             <package>             D    period [?]
2024-08-29 12:12:36.364 18055-18055 EventLogger             <package>             D    window [752.03, seekable=true, dynamic=true]
2024-08-29 12:12:36.364 18055-18055 EventLogger             <package>             D  ]
2024-08-29 12:12:36.372 18055-18055 EventLogger             <package>             D  videoEnabled [eventTime=49.02, mediaPos=728.01, window=0, period=0]
2024-08-29 12:12:36.373 18055-18055 EventLogger             <package>             D  audioEnabled [eventTime=49.02, mediaPos=728.01, window=0, period=0]
2024-08-29 12:12:36.374 18055-18055 EventLogger             <package>             D  tracks [eventTime=49.02, mediaPos=728.01, window=0, period=0
2024-08-29 12:12:36.374 18055-18055 EventLogger             <package>             D    group [
2024-08-29 12:12:36.374 18055-18055 EventLogger             <package>             D      [X] Track:0, id=0, mimeType=video/avc, container=application/x-mpegURL, bitrate=2861313, codecs=avc1.4D4029, res=1024x576, fps=59.94, supported=YES
2024-08-29 12:12:36.374 18055-18055 EventLogger             <package>             D      [X] Track:1, id=1, mimeType=video/avc, container=application/x-mpegURL, bitrate=401313, codecs=avc1.4D401E, res=256x144, fps=59.94, supported=YES
2024-08-29 12:12:36.374 18055-18055 EventLogger             <package>             D      [X] Track:2, id=2, mimeType=video/avc, container=application/x-mpegURL, bitrate=521313, codecs=avc1.4D401E, res=384x216, fps=59.94, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:3, id=3, mimeType=video/avc, container=application/x-mpegURL, bitrate=701313, codecs=avc1.4D401E, res=384x216, fps=59.94, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:4, id=4, mimeType=video/avc, container=application/x-mpegURL, bitrate=941313, codecs=avc1.4D401E, res=512x288, fps=59.94, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:5, id=5, mimeType=video/avc, container=application/x-mpegURL, bitrate=1361313, codecs=avc1.4D401F, res=640x360, fps=59.94, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:6, id=6, mimeType=video/avc, container=application/x-mpegURL, bitrate=1901313, codecs=avc1.4D4020, res=768x432, fps=59.94, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:7, id=7, mimeType=video/avc, container=application/x-mpegURL, bitrate=4361313, codecs=avc1.4D4029, res=1280x720, fps=59.94, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:8, id=8, mimeType=video/avc, container=application/x-mpegURL, bitrate=5921313, codecs=avc1.640029, res=1280x720, fps=59.94, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:9, id=9, mimeType=video/avc, container=application/x-mpegURL, bitrate=7421313, codecs=avc1.640029, res=1280x720, fps=59.94, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    ]
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    group [
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:0, id=0, mimeType=audio/mp4a-latm, container=application/x-mpegURL, codecs=mp4a.40.2, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    ]
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    group [
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:0, id=subs_wvtt:caption_1, mimeType=application/x-media3-cues, container=application/x-mpegURL, codecs=text/vtt, language=en, labels=[androidx.media3.common.Label@caa7cb91], selectionFlags=[auto,default], supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    ]
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    group [
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      [X] Track:0, id=ID3, mimeType=application/id3, supported=YES
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    ]
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    Metadata [
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D      HlsTrackMetadataEntry
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D    ]
2024-08-29 12:12:36.375 18055-18055 EventLogger             <package>             D  ]
2024-08-29 12:12:36.375 18055-18055 CVMediaExo...erListener <package>             D  setLanguage: is called but either Key is empty or Client is Null
2024-08-29 12:12:36.376 18055-18246 TrafficStats            <package>             D  tagSocket(5) with statsTag=0xffffffff, statsUid=-1
2024-08-29 12:12:36.824 18055-18096 ExoPlayerImplInternal   <package>             E  Playback error
                                                                                                      androidx.media3.exoplayer.ExoPlaybackException: Source error
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:736)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:712)
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:103)
                                                                                                          at android.os.Looper.loopOnce(Looper.java:232)
                                                                                                          at android.os.Looper.loop(Looper.java:317)
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:85)
                                                                                                      Caused by: androidx.media3.exoplayer.hls.SampleQueueMappingException: Unable to bind a sample queue to TrackGroup with MIME type video/avc.
                                                                                                          at androidx.media3.exoplayer.hls.HlsSampleStream.maybeThrowError(HlsSampleStream.java:62)
                                                                                                          at androidx.media3.exoplayer.BaseRenderer.maybeThrowStreamError(BaseRenderer.java:182)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1149)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:561)
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:103) 
                                                                                                          at android.os.Looper.loopOnce(Looper.java:232) 
                                                                                                          at android.os.Looper.loop(Looper.java:317) 
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:85) 
2024-08-29 12:12:36.828 18055-18055 EventLogger             <package>             D  videoDisabled [eventTime=49.47, mediaPos=728.01, window=0, period=0]
2024-08-29 12:12:36.829 18055-18055 EventLogger             <package>             D  videoSize [eventTime=49.48, mediaPos=728.01, window=0, period=0, 0, 0]
2024-08-29 12:12:36.830 18055-18055 EventLogger             <package>             D  audioDisabled [eventTime=49.48, mediaPos=728.01, window=0, period=0]
2024-08-29 12:12:36.832 18055-18055 EventLogger             <package>             D  timeline [eventTime=49.48, mediaPos=728.01, window=0, period=0, periodCount=1, windowCount=1, reason=SOURCE_UPDATE
2024-08-29 12:12:36.833 18055-18055 EventLogger             <package>             D    period [?]
2024-08-29 12:12:36.833 18055-18055 EventLogger             <package>             D    window [752.03, seekable=true, dynamic=true]
2024-08-29 12:12:36.833 18055-18055 EventLogger             <package>             D  ]
2024-08-29 12:12:36.836 18055-18055 EventLogger             <package>             E  playerFailed [eventTime=49.48, mediaPos=728.01, window=0, period=0, errorCode=ERROR_CODE_IO_UNSPECIFIED
                                                                                                      androidx.media3.exoplayer.ExoPlaybackException: Source error
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:736)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:712)
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:103)
                                                                                                          at android.os.Looper.loopOnce(Looper.java:232)
                                                                                                          at android.os.Looper.loop(Looper.java:317)
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:85)
                                                                                                      Caused by: androidx.media3.exoplayer.hls.SampleQueueMappingException: Unable to bind a sample queue to TrackGroup with MIME type video/avc.
                                                                                                          at androidx.media3.exoplayer.hls.HlsSampleStream.maybeThrowError(HlsSampleStream.java:62)
                                                                                                          at androidx.media3.exoplayer.BaseRenderer.maybeThrowStreamError(BaseRenderer.java:182)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1149)
                                                                                                          at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:561)
                                                                                                          at android.os.Handler.dispatchMessage(Handler.java:103) 
                                                                                                          at android.os.Looper.loopOnce(Looper.java:232) 
                                                                                                          at android.os.Looper.loop(Looper.java:317) 
                                                                                                          at android.os.HandlerThread.run(HandlerThread.java:85) 
                                                                                                    ]

JonWatson avatar Aug 29 '24 17:08 JonWatson

Hi @JosephSanjaya,

Could you please provide the stream that has this issue? Not sure it is similar to https://github.com/androidx/media/issues/1675 as you said there are devices that cannot reproduce this, so might be due to some other reasons.

tianyif avatar Sep 03 '24 18:09 tianyif

Hello @tianyif, thanks for response already send the video and token thorugh email

JosephSanjaya avatar Sep 05 '24 09:09 JosephSanjaya

We have resolved the issue internally. The root cause was identified as the TV’s inability to load video streams using HLS with PlayFair.

To address this, we have transitioned the streaming feed to utilize DASH with Widevine, ensuring compatibility.

JosephSanjaya avatar Sep 11 '24 01:09 JosephSanjaya