gfuentesdev / google-cast-sdk

Automatically exported from code.google.com/p/google-cast-sdk
0 stars 0 forks source link

Widevine DRM Stream crashes Chromecast App on Nexus Player #645

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
The Chromecast implementation of the Nexus Player devices crashes if you cast 
streams or videos which are protected with widevine DRM.

Steps to reproduce:
- Cast a Widevine DRM protected stream, for example use the chromecast demo 
application from https://github.com/googlecast/CastMediaPlayerStreamingDRM 
(Cars.mdp)
- The stream starts playing for a couple of seconds
- the chromecast application crashes
- after a couple of times the nexus player no longer identifies itself as a a 
chromecast and needs to be rebooted 

Android Version: 5.1.1
Build: LMY48J

Expected behaviour: Streams should run as on a chromecast stick

Original issue reported on code.google.com by dominik....@gmail.com on 16 Sep 2015 at 7:39

GoogleCodeExporter commented 8 years ago
Can you reproduce the issue (including the issue where the Nexus Player no 
longer identifies itself as a Chromecast), enable and capture receiver logs, 
and provide them here as a text file? Also, please provide any stream(s) where 
you saw this issue occurring and make sure they're available for us to test.

Original comment by jonathan...@google.com on 18 Sep 2015 at 5:14

GoogleCodeExporter commented 8 years ago
Same issue here.  Debug log attached.

This is with the Cars.mpd stream from the SDK example 
(CastMediaPlayerStreamingDRM)
http://storage.googleapis.com/gtv-videos-bucket/dash/CarWidevine/car.mpd
Unmodified example app

from logcat:
D/CastCrashUploader( 2005): Checking for crash dumps
D/CastCrashUploader( 2005): Uploading dump crash log: 
5e29bf0d-e3aa-b976-115a2756-4bea2ce8.dmp4370
E/CastCrashUploader( 2005): File I/O error trying to upload crash dump
D/CastCrashUploader( 3295): Checking for crash dumps
D/CastCrashUploader( 3295): Uploading dump crash log: 
5e29bf0d-e3aa-b976-115a2756-4bea2ce8.dmp4370
D/CastCrashUploader( 3295): Successfully uploaded to 
http://clients2.google.com/cr/report, report ID: ed72a1bc25a6840c
D/CastCrashUploader( 3295): Uploading dump crash log: 
648846d0-e3b1-0671-36bf7035-47168ddb.dmp2005
D/CastCrashUploader( 3295): Successfully uploaded to 
http://clients2.google.com/cr/report, report ID: a6f9ac3cda2b4913

Trying again: Same result, after that, the device is no longer in the list

E/OMXNodeInstance(  164): !!! Observer died. Quickly, do something, ... 
anything...
I/Zygote  (  169): Process 3295 exited due to signal (11)
I/WindowState(  445): WIN DEATH: Window{1ad1af32 u0 SurfaceView}
I/OMXVideoDecoder(  164): Flushing port# 4294967295.
W/OMXVideoDecoder(  164): Flushing video pipeline.
I/ActivityManager(  445): Process com.google.android.apps.mediashell (pid 3295) 
has died
W/ActivityManager(  445): Service crashed 2 times, stopping: 
ServiceRecord{3888a57a u0 
com.google.android.apps.mediashell/.MediaShellCastReceiverService}
I/ActivityManager(  445): Killing 
5765:com.google.android.apps.mediashell:sandboxed_process0/u0a0i1 (adj 0): 
isolated not needed

Original comment by jo.deise...@gmail.com on 19 Sep 2015 at 3:47

Attachments:

GoogleCodeExporter commented 8 years ago
We're able to reproduce and are investigating fixes. Thanks for the extra 
information.

Original comment by gun...@google.com on 22 Sep 2015 at 7:48

GoogleCodeExporter commented 8 years ago

Original comment by jonathan...@google.com on 22 Sep 2015 at 3:48

GoogleCodeExporter commented 8 years ago
Are you still seeing the issue with the latest Cast SDK version and Googlecast 
receiver?

Original comment by jonathan...@google.com on 28 Oct 2015 at 10:19

GoogleCodeExporter commented 8 years ago
The CastMediaPlayerStreamingDRM is no longer in the SDK. The new example apps 
do not have an option to stream DRM secured streams. 

Retesting with the old CastMediaPlayerStreamingDRM app:
Nexus Player was updated to Android M, Build MRA58K

Example DASH+Widevine streams OK
Example Smooth Streaming with PlayReady crashes the box

A different Widevine protected stream also crashes chromium

Chromecast 1 and 2 work fine.
After the second crash, nexus player is no longer discoverable

10-29 17:47:23.017  2888  2888 W System.err: java.lang.NullPointerException: 
Attempt to invoke virtual method 'java.util.Iterator 
java.util.ArrayDeque.iterator()' on a null object reference
10-29 17:47:23.017  2888  2888 W System.err:    at 
org.chromium.media.MediaDrmBridge.release(MediaDrmBridge.java:380)
10-29 17:47:23.017  2888  2888 W System.err:    at 
org.chromium.media.MediaDrmBridge.destroy(MediaDrmBridge.java:370)
10-29 17:47:23.017  2888  2888 W System.err:    at 
org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
10-29 17:47:23.017  2888  2888 W System.err:    at 
org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:5
5)
10-29 17:47:23.017  2888  2888 W System.err:    at 
android.os.Handler.dispatchMessage(Handler.java:102)
10-29 17:47:23.017  2888  2888 W System.err:    at 
android.os.Looper.loop(Looper.java:148)
10-29 17:47:23.017  2888  2888 W System.err:    at 
android.app.ActivityThread.main(ActivityThread.java:5417)
10-29 17:47:23.017  2888  2888 W System.err:    at 
java.lang.reflect.Method.invoke(Native Method)
10-29 17:47:23.017  2888  2888 W System.err:    at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
10-29 17:47:23.017  2888  2888 W System.err:    at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
10-29 17:47:23.018  2888  2888 E chromium: 
[2888:2888:ERROR:jni_android.cc(289)] Java exception: 
java.lang.NullPointerException: Attempt to invoke virtual method 
'java.util.Iterator java.util.ArrayDeque.iterator()' on a null object reference
10-29 17:47:23.018  2888  2888 E chromium:  at 
org.chromium.media.MediaDrmBridge.release(MediaDrmBridge.java:380)
10-29 17:47:23.018  2888  2888 E chromium:  at 
org.chromium.media.MediaDrmBridge.destroy(MediaDrmBridge.java:370)
10-29 17:47:23.018  2888  2888 E chromium:  at 
org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
10-29 17:47:23.018  2888  2888 E chromium:  at 
org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:5
5)
10-29 17:47:23.018  2888  2888 E chromium:  at 
android.os.Handler.dispatchMessage(Handler.java:102)
10-29 17:47:23.018  2888  2888 E chromium:  at 
android.os.Looper.loop(Looper.java:148)
10-29 17:47:23.018  2888  2888 E chromium:  at 
android.app.ActivityThread.main(ActivityThread.java:5417)
10-29 17:47:23.018  2888  2888 E chromium:  at 
java.lang.reflect.Method.invoke(Native Method)
10-29 17:47:23.018  2888  2888 E chromium:  at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
10-29 17:47:23.018  2888  2888 E chromium:  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
10-29 17:47:23.018  2888  2888 E chromium: 
10-29 17:47:23.019  2888  2888 F chromium: 
[2888:2888:FATAL:jni_android.cc(300)] Check failed: false. Please include Java 
exception stack in crash report
10-29 17:47:23.309  2888  2888 W google-breakpad: Output crash dump file:
10-29 17:47:23.309  2888  2888 W google-breakpad: 
/data/user/0/com.google.android.apps.mediashell/app_cast_shell/crashes/2aeccc5a-
483c-2ad6-2cee206d-1f73727c.dmp
10-29 17:47:23.309  2888  2888 W google-breakpad: ### ### ### ### ### ### ### 
### ### ### ### ### ###
10-29 17:47:23.309  2888  2888 W google-breakpad: Chrome build fingerprint:
10-29 17:47:23.309  2888  2888 W google-breakpad: 1.16.45911
10-29 17:47:23.309  2888  2888 W google-breakpad: 459112
10-29 17:47:23.309  2888  2888 W google-breakpad: ### ### ### ### ### ### ### 
### ### ### ### ### ###

Original comment by j...@exaring.de on 29 Oct 2015 at 5:04