[Android One (First-Generation) Cross-Device Genera] aureljared:
I have two sprout8 devices, one on unrooted stock and another running the latest CyanogenMod 12.1 build.

I am a student and sometimes I give presentations, so I use Miracast a lot as it is tedious to bring a laptop.

It works just fine on stock, as seen here (I'm using Mirror to cast my screen to Google Chrome on my laptop):

[IMG="Screencast demo"]http://i.imgur.com/eNuBI3d.png[/IMG]

However, it does not work on non-stock ROMs (I've tried ResurrectionRemix and CyanogenMod).

I took logs for both devices: stock and CyanogenMod

I noticed that on custom ROM (broken screencast), this happens when I disconnect from a wireless display:

W/MediaProjectionManagerService( 596): Failed to notify media projection has stopped
W/MediaProjectionManagerService( 596): android.os.DeadObjectException
W/MediaProjectionManagerService( 596):	at android.os.BinderProxy.transactNative(Native Method)
W/MediaProjectionManagerService( 596):	at android.os.BinderProxy.transact(Binder.java:496)
W/MediaProjectionManagerService( 596):	at android.media.projection.IMediaProjectionCallback$Stub$Proxy.onStop(IMediaProjectionCallback.java:75)
W/MediaProjectionManagerService( 596):	at com.android.server.media.projection.MediaProjectionManagerService$ClientStopCallback.run(MediaProjectionManagerService.java:614)
W/MediaProjectionManagerService( 596):	at android.os.Handler.handleCallback(Handler.java:739)
W/MediaProjectionManagerService( 596):	at android.os.Handler.dispatchMessage(Handler.java:95)
W/MediaProjectionManagerService( 596):	at android.os.Looper.loop(Looper.java:135)
W/MediaProjectionManagerService( 596):	at com.android.server.SystemServer.run(SystemServer.java:298)
W/MediaProjectionManagerService( 596):	at com.android.server.SystemServer.main(SystemServer.java:186)
W/MediaProjectionManagerService( 596):	at java.lang.reflect.Method.invoke(Native Method)
W/MediaProjectionManagerService( 596):	at java.lang.reflect.Method.invoke(Method.java:372)
W/MediaProjectionManagerService( 596):	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
W/MediaProjectionManagerService( 596):	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
W/MediaProjectionManagerService( 596): Failed to notify media projection has stopped
W/MediaProjectionManagerService( 596): android.os.DeadObjectException
W/MediaProjectionManagerService( 596):	at android.os.BinderProxy.transactNative(Native Method)
W/MediaProjectionManagerService( 596):	at android.os.BinderProxy.transact(Binder.java:496)
W/MediaProjectionManagerService( 596):	at android.media.projection.IMediaProjectionCallback$Stub$Proxy.onStop(IMediaProjectionCallback.java:75)
W/MediaProjectionManagerService( 596):	at com.android.server.media.projection.MediaProjectionManagerService$ClientStopCallback.run(MediaProjectionManagerService.java:614)
W/MediaProjectionManagerService( 596):	at android.os.Handler.handleCallback(Handler.java:739)
W/MediaProjectionManagerService( 596):	at android.os.Handler.dispatchMessage(Handler.java:95)
W/MediaProjectionManagerService( 596):	at android.os.Looper.loop(Looper.java:135)
W/MediaProjectionManagerService( 596):	at com.android.server.SystemServer.run(SystemServer.java:298)
W/MediaProjectionManagerService( 596):	at com.android.server.SystemServer.main(SystemServer.java:186)
W/MediaProjectionManagerService( 596):	at java.lang.reflect.Method.invoke(Native Method)
W/MediaProjectionManagerService( 596):	at java.lang.reflect.Method.invoke(Method.java:372)
W/MediaProjectionManagerService( 596):	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
W/MediaProjectionManagerService( 596):	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
W/MediaProjectionManagerService( 596): Failed to notify media projection has stopped
W/MediaProjectionManagerService( 596): android.os.DeadObjectException
W/MediaProjectionManagerService( 596):	at android.os.BinderProxy.transactNative(Native Method)
W/MediaProjectionManagerService( 596):	at android.os.BinderProxy.transact(Binder.java:496)
W/MediaProjectionManagerService( 596):	at android.media.projection.IMediaProjectionCallback$Stub$Proxy.onStop(IMediaProjectionCallback.java:75)
W/MediaProjectionManagerService( 596):	at com.android.server.media.projection.MediaProjectionManagerService$ClientStopCallback.run(MediaProjectionManagerService.java:614)
W/MediaProjectionManagerService( 596):	at android.os.Handler.handleCallback(Handler.java:739)
W/MediaProjectionManagerService( 596):	at android.os.Handler.dispatchMessage(Handler.java:95)
W/MediaProjectionManagerService( 596):	at android.os.Looper.loop(Looper.java:135)
W/MediaProjectionManagerService( 596):	at com.android.server.SystemServer.run(SystemServer.java:298)
W/MediaProjectionManagerService( 596):	at com.android.server.SystemServer.main(SystemServer.java:186)
W/MediaProjectionManagerService( 596):	at java.lang.reflect.Method.invoke(Native Method)
W/MediaProjectionManagerService( 596):	at java.lang.reflect.Method.invoke(Method.java:372)
W/MediaProjectionManagerService( 596):	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
W/MediaProjectionManagerService( 596):	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
W/MediaProjectionManagerService( 596): Failed to notify media projection has stopped
W/MediaProjectionManagerService( 596): android.os.DeadObjectException
W/MediaProjectionManagerService( 596):	at android.os.BinderProxy.transactNative(Native Method)
W/MediaProjectionManagerService( 596):	at android.os.BinderProxy.transact(Binder.java:496)
W/MediaProjectionManagerService( 596):	at android.media.projection.IMediaProjectionCallback$Stub$Proxy.onStop(IMediaProjectionCallback.java:75)
W/MediaProjectionManagerService( 596):	at com.android.server.media.projection.MediaProjectionManagerService$ClientStopCallback.run(MediaProjectionManagerService.java:614)
W/MediaProjectionManagerService( 596):	at android.os.Handler.handleCallback(Handler.java:739)
W/MediaProjectionManagerService( 596):	at android.os.Handler.dispatchMessage(Handler.java:95)
W/MediaProjectionManagerService( 596):	at android.os.Looper.loop(Looper.java:135)
W/MediaProjectionManagerService( 596):	at com.android.server.SystemServer.run(SystemServer.java:298)
W/MediaProjectionManagerService( 596):	at com.android.server.SystemServer.main(SystemServer.java:186)
W/MediaProjectionManagerService( 596):	at java.lang.reflect.Method.invoke(Native Method)
W/MediaProjectionManagerService( 596):	at java.lang.reflect.Method.invoke(Method.java:372)
W/MediaProjectionManagerService( 596):	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
W/MediaProjectionManagerService( 596):	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

These do not appear on stock, where everything else works perfectly fine.

I'm using the Zeus Kernel with CyanogenMod, but I don't think that's the problem because

I rooted the stock phone and installed said kernel - everything still worked fine.

I can go back to stock if it is really needed, but I also use features such as a blue-light blocker and custom themes

which are built into CyanogenMod (as LiveDisplay and Theme Engine, respectively) but require third-party apps on stock, most

likely through the Xposed Framework - which I'd rather avoid, due to its instability on Lollipop.

Any ideas?