AnsweredAssumed Answered

VP9 support on DRM on android 9 on iMX8MQ?

Question asked by Kevin Cheng on Apr 28, 2020
Latest reply on May 14, 2020 by Kevin Cheng

Hi,

 

We download widevine L1 software from "Software & Support" page, and use pre-build image and test on iMX8MQ evk. The exoPlayer is work fine, but when we run Netflix app and play video and video broken. Check log, we found player use vp9 codec, even video can play but video is broken. Before we apply widevine L3, it work fine, does there anything we need to apply?

 

[Enviroment,]

Hardware : iMX8MQ evb

OS version : Android imx-p9.0.0_2.3.0_8mq_drm-wv-2.2.0

 

 

 

Regards,

Kevin

 

 

--------- beginning of system
04-28 01:13:52.888 W/ViewRootImpl[Launcher]( 3889): Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=535.77155, y[0]=455.60022, toolType[0]=TOOL_TYPE_MOUSE, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=209997, downTime=189377, deviceId=2, source=0x2002 }
--------- beginning of main
1024, address , mode 0
13:55.214 I/audio_hw_primary( 3161): select_output_device(), headphone 0 ,headset 0 ,speaker 2, earpiece 0,
04-28 01:13:55.223 W/audio_hw_primary( 3161): card 0, port 0 device 0x400
04-28 01:13:55.223 W/audio_hw_primary( 3161): rate 48000, channel 2 period_size 0xc0
04-28 01:13:52.888 I/chatty ( 3889): uid=10015(com.android.launcher3) identical 2 lines
04-28 01:13:52.888 W/ViewRootImpl[Launcher]( 3889): Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=535.77155, y[0]=455.60022, toolType[0]=TOOL_TYPE_MOUSE, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=209997, downTime=189377, deviceId=2, source=0x2002 }
04-28 01:13:55.226 I/ActivityManager( 3316): START u0 {flg=0x10020000 cmp=com.netflix.mediaclient/o.Qd (has extras)} from uid 10067
04-28 01:13:55.266 W/ActivityThread( 4322): handleWindowVisibility: no activity for token android.os.BinderProxy@469d4e5
04-28 01:13:55.280 W/GooglePlayServicesUtil( 4322): Google Play Store is missing.
04-28 01:13:55.280 W/DynamiteModule( 4322): Local module descriptor class for com.google.android.gms.cast.framework.dynamite not found.
04-28 01:13:55.280 I/DynamiteModule( 4322): Considering local module com.google.android.gms.cast.framework.dynamite:0 and remote module com.google.android.gms.cast.framework.dynamite:0
04-28 01:13:55.313 W/MediaSessionCompat( 4322): Couldn't find a unique registered media button receiver in the given context.
04-28 01:13:55.678 W/AudioManager( 4322): Use of stream types is deprecated for operations other than volume control
04-28 01:13:55.678 W/AudioManager( 4322): See the documentation of requestAudioFocus() for what to use instead with android.media.AudioAttributes to qualify your playback use case
04-28 01:13:55.682 I/MediaFocusControl( 3316): requestAudioFocus() from uid/pid 10067/4322 clientId=android.media.AudioManager@c57ccb4com.netflix.mediaclient.ui.player.videoview.NetflixVideoViewBase$1@8f930dd callingPack=com.netflix.mediaclient req=1 flags=0x0 sdk=28
04-28 01:13:55.731 W/ServiceManager( 3181): Permission failure: android.permission.ACCESS_SURFACE_FLINGER from uid=10067 pid=4322
04-28 01:13:55.731 D/PermissionCache( 3181): checking android.permission.ACCESS_SURFACE_FLINGER for uid=10067 => denied (536 us)
04-28 01:13:56.003 V/Binder ( 3316): BinderProxy map growth! bucket size = 20 total = 2318
04-28 01:13:56.263 I/WVCdm ( 3170): [cdm_engine.cpp(111):OpenSession] CdmEngine::OpenSession
04-28 01:13:56.263 D/WVCdm ( 3170): [crypto_session.cpp(668):Open] CryptoSession::Open: Lock: requested_security_level: L3
04-28 01:13:56.271 I/WVCdm ( 3170): [device_files.cpp(166):ExtractDeviceInfo] ExtractDeviceInfo Entry
04-28 01:13:56.274 I/WVCdm ( 3170): [cdm_engine.cpp(148):OpenSession] CdmEngine::OpenSession: sid8
04-28 01:13:56.274 I/WVCdm ( 3170): [cdm_engine.cpp(751):QueryOemCryptoSessionId] CdmEngine::QueryOemCryptoSessionId
04-28 01:13:56.277 D/CryptoHal( 3187): found drm@1.0 ICryptoFactory clearkey
04-28 01:13:56.278 D/CryptoHal( 3187): found drm@1.0 ICryptoFactory default
04-28 01:13:56.279 D/CryptoHal( 3187): found drm@1.0 ICryptoFactory widevine
04-28 01:13:56.280 D/CryptoHal( 3187): found drm@1.1 ICryptoFactory clearkey
04-28 01:13:56.286 D/CryptoHal( 3187): found drm@1.1 ICryptoFactory widevine
04-28 01:13:56.288 D/WVCdm ( 3166): Instantiating CDM.
04-28 01:13:56.290 I/WVCdm ( 3170): [cdm_engine.cpp(234):GenerateKeyRequest] CdmEngine::GenerateKeyRequest
04-28 01:13:56.291 D/WVCdm ( 3170): [license.cpp(355):PrepareKeyRequest] PrepareKeyRequest: nonce=2972728959
04-28 01:13:56.626 I/WVCdm ( 3170): [cdm_engine.cpp(649):QuerySessionStatus] CdmEngine::QuerySessionStatus
04-28 01:13:56.636 I/OMXClient( 4322): IOmx service obtained
04-28 01:13:56.637 I/OMXMaster( 3212): makeComponentInstance(OMX.Freescale.std.video_decoder.vp9.hw-based) in omx@1.0-service process
04-28 01:13:56.641 I/WVCdm ( 3170): [cdm_engine.cpp(649):QuerySessionStatus] CdmEngine::QuerySessionStatus
04-28 01:13:56.642 D/SurfaceUtils( 4322): connecting to surface 0xb6439808, reason connectToSurface
04-28 01:13:56.643 I/MediaCodec( 4322): [OMX.Freescale.std.video_decoder.vp9.hw-based] setting surface generation to 4425729
04-28 01:13:56.643 D/SurfaceUtils( 4322): disconnecting from surface 0xb6439808, reason connectToSurface(reconnect)
04-28 01:13:56.644 D/SurfaceUtils( 4322): connecting to surface 0xb6439808, reason connectToSurface(reconnect)
04-28 01:13:56.644 I/ACodec ( 4322): Send reorder config(0) to VPU
04-28 01:13:56.644 E/OMXNodeInstance( 3212): setParameter(0xebc11684:Freescale.std._decoder.vp9.hw-based, OMX.google.android.index.allocateNativeHandle(0x7f00004b): Output:1 en=0) ERROR: UnsupportedIndex(0x8000101a)
04-28 01:13:56.644 W/OMXNodeInstance( 3212): [0xebc11684:Freescale.std._decoder.vp9.hw-based] component does not support metadata mode; using fallback
04-28 01:13:56.644 E/ACodec ( 4322): [OMX.Freescale.std.video_decoder.vp9.hw-based] setPortMode on output to DynamicANWBuffer failed w/ err -1010
04-28 01:13:56.645 E/OMXNodeInstance( 3212): getExtensionIndex(0xebc11684:Freescale.std._decoder.vp9.hw-based, OMX.google.android.index.prepareForAdaptivePlayback) ERROR: NotImplemented(0x80001006)
04-28 01:13:56.645 W/ACodec ( 4322): [OMX.Freescale.std.video_decoder.vp9.hw-based] prepareForAdaptivePlayback failed w/ err -2147483648
04-28 01:13:56.645 E/OMXNodeInstance( 3212): setParameter(0xebc11684:Freescale.std._decoder.vp9.hw-based, OMX.google.android.index.allocateNativeHandle(0x7f00004b): Output:1 en=0) ERROR: UnsupportedIndex(0x8000101a)
04-28 01:13:56.645 W/OMXNodeInstance( 3212): [0xebc11684:Freescale.std._decoder.vp9.hw-based] component does not support metadata mode; using fallback
04-28 01:13:56.646 I/OMXPlayer( 3212): LEVEL: 1 FUNCTION: GetParameter LINE: 2535
04-28 01:13:56.646 I/OMXPlayer( 3212): GetParameter: failure: unsupported index: 0x6F600007
04-28 01:13:56.646 E/OMXNodeInstance( 3212): getParameter(0xebc11684:Freescale.std._decoder.vp9.hw-based, ParamVideoAndroidVp8Encoder(0x6f600007)) ERROR: UnsupportedIndex(0x8000101a)
04-28 01:13:56.646 E/OMXNodeInstance( 3212): getConfig(0xebc11684:Freescale.std._decoder.vp9.hw-based, ConfigAndroidVendorExtension(0x6f100004)) ERROR: IncorrectStateTransition(0x80001017)
04-28 01:13:56.646 E/OMXNodeInstance( 3212): getConfig(0xebc11684:Freescale.std._decoder.vp9.hw-based, ConfigCommonOutputCrop(0x700000f)) ERROR: IncorrectStateTransition(0x80001017)
04-28 01:13:56.647 I/chatty ( 3212): uid=1046(mediacodec) HwBinder:3212_5 identical 1 line
04-28 01:13:56.657 W/AshmemAllocator( 3156): ashmem_create_region(1048576) returning hidl_memory(0xf058cea2c100, 1048576)
04-28 01:13:56.668 I/chatty ( 3156): uid=1000(system) allocator@1.0-s identical 1 line
04-28 01:13:56.669 W/AshmemAllocator( 3156): ashmem_create_region(1048576) returning hidl_memory(0xf058cea2c100, 1048576)
04-28 01:13:56.675 D/SurfaceUtils( 4322): disconnecting from surface 0xb6439808, reason setNativeWindowSizeFormatAndUsage
04-28 01:13:56.676 D/SurfaceUtils( 4322): connecting to surface 0xb6439808, reason setNativeWindowSizeFormatAndUsage
04-28 01:13:56.680 D/SurfaceUtils( 4322): set up nativeWindow 0xb6439808 for 960x540, color 0x103, rotation 0, usage 0x40006900
04-28 01:13:56.682 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:56.694 I/display ( 3212): open gpu gralloc module!
04-28 01:13:56.697 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:56.700 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:56.704 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:56.707 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:56.709 I/chatty ( 3181): uid=1000(system) Binder:3181_4 identical 1 line
04-28 01:13:56.711 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:56.720 I/OMXClient( 4322): IOmx service obtained
04-28 01:13:56.720 I/OMXMaster( 3212): makeComponentInstance(OMX.google.aac.decoder) in omx@1.0-service process
04-28 01:13:56.731 E/OMXNodeInstance( 3212): getConfig(0xec211780:google.aac.decoder, ConfigAndroidVendorExtension(0x6f100004)) ERROR: Undefined(0x80001001)
04-28 01:13:56.733 W/AshmemAllocator( 3156): ashmem_create_region(8192) returning hidl_memory(0xf058cea2c100, 8192)
04-28 01:13:56.734 I/chatty ( 3156): uid=1000(system) allocator@1.0-s identical 2 lines
04-28 01:13:56.735 W/AshmemAllocator( 3156): ashmem_create_region(8192) returning hidl_memory(0xf058cea2c100, 8192)
04-28 01:13:56.736 W/AshmemAllocator( 3156): ashmem_create_region(32768) returning hidl_memory(0xf058cea2c100, 32768)
04-28 01:13:56.737 I/chatty ( 3156): uid=1000(system) allocator@1.0-s identical 2 lines
04-28 01:13:56.737 W/AshmemAllocator( 3156): ashmem_create_region(32768) returning hidl_memory(0xf058cea2c100, 32768)
04-28 01:13:56.742 I/SoftAAC2( 3212): Reconfiguring decoder: 0->48000 Hz, 0->2 channels
04-28 01:13:56.752 W/AshmemAllocator( 3156): ashmem_create_region(32768) returning hidl_memory(0xf058cea2c100, 32768)
04-28 01:13:56.753 I/chatty ( 3156): uid=1000(system) allocator@1.0-s identical 2 lines
04-28 01:13:56.754 W/AshmemAllocator( 3156): ashmem_create_region(32768) returning hidl_memory(0xf058cea2c100, 32768)
04-28 01:13:56.785 I/lix.mediaclien( 4322): Background concurrent copying GC freed 55887(3MB) AllocSpace objects, 66(2MB) LOS objects, 50% free, 10MB/21MB, paused 682us total 250.327ms
04-28 01:13:56.861 W/AudioFlinger( 3185): createTrack_l(): mismatch between requested flags (00000008) and output flags (00000006)
04-28 01:13:56.861 D/AudioFlinger( 3185): Client defaulted notificationFrames to 6000 for frameCount 12000
04-28 01:13:57.020 I/WVCdm ( 3170): [cdm_engine.cpp(313):AddKey] CdmEngine::AddKey
04-28 01:13:57.277 I/OMXPlayer( 3212): Vpu InitInfo hasHdr10Meta no, hasColorDesc no, nBitDepth 8, eColorFormat 0x15, minBufferCnt 9, nFrameSize 783360
04-28 01:13:57.278 W/ACodec ( 4322): ACodec map vpu crop info: output crop: 540, frameH 544
04-28 01:13:57.293 D/SurfaceUtils( 4322): disconnecting from surface 0xb6439808, reason setNativeWindowSizeFormatAndUsage
04-28 01:13:57.294 D/SurfaceUtils( 4322): connecting to surface 0xb6439808, reason setNativeWindowSizeFormatAndUsage
04-28 01:13:57.295 D/SurfaceUtils( 4322): set up nativeWindow 0xb6439808 for 960x544, color 0x103, rotation 0, usage 0x40006900
04-28 01:13:57.296 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.310 I/chatty ( 3181): uid=1000(system) Binder:3181_4 identical 4 lines
04-28 01:13:57.315 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.318 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.320 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.321 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.323 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.343 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.347 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.351 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.353 W/MapperHal( 3181): buffer descriptor with invalid usage bits 0x2000
04-28 01:13:57.364 I/OMXFSLPlugin( 3212): OnFillBufferDone bNeedWriteColorInfo 2,1,3,1
04-28 01:13:57.364 I/OMXFSLPlugin( 3212): OnFillBufferDone write HDR mR=0,0,mG=0,0,mB=0,0,mW=0,0 mMaxDisplayLuminance=0,0,mMaxContentLightLevel=0,mMaxFrameAverageLightLevel=0
04-28 01:13:57.412 D/MediaSessionService( 3316): Media button session is changed to com.netflix.mediaclient/Netflix media session (userId=0)
04-28 01:13:57.421 V/MediaRouter( 4322): onRestoreRoute() : route=RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
04-28 01:13:57.421 V/MediaRouter( 4322): Selecting route: RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
04-28 01:13:57.452 W/AudioManager( 4322): Use of stream types is deprecated for operations other than volume control
04-28 01:13:57.452 W/AudioManager( 4322): See the documentation of requestAudioFocus() for what to use instead with android.media.AudioAttributes to qualify your playback use case
04-28 01:13:57.452 I/MediaFocusControl( 3316): requestAudioFocus() from uid/pid 10067/4322 clientId=android.media.AudioManager@c57ccb4com.netflix.mediaclient.ui.player.videoview.NetflixVideoViewBase$1@8f930dd callingPack=com.netflix.mediaclient req=1 flags=0x0 sdk=28
04-28 01:13:57.478 D/MediaSessionService( 3316): Media button session is changed to com.netflix.mediaclient/NetflixMediaSession (userId=0)
04-28 01:13:57.596 V/MediaRouter( 4322): onRestoreRoute() : route=RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
04-28 01:13:57.596 V/MediaRouter( 4322): Selecting route: RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
04-28 01:13:57.596 W/AudioManager( 4322): Use of stream types is deprecated for operations other than volume control
04-28 01:13:57.596 W/AudioManager( 4322): See the documentation of requestAudioFocus() for what to use instead with android.media.AudioAttributes to qualify your playback use case
04-28 01:13:57.597 I/MediaFocusControl( 3316): requestAudioFocus() from uid/pid 10067/4322 clientId=android.media.AudioManager@c57ccb4com.netflix.mediaclient.ui.player.videoview.NetflixVideoViewBase$1@8f930dd callingPack=com.netflix.mediaclient req=1 flags=0x0 sdk=28
04-28 01:13:57.660 V/MediaRouter( 4322): onRestoreRoute() : route=RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
04-28 01:13:57.660 V/MediaRouter( 4322): Selecting route: RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
04-28 01:13:57.661 W/AudioManager( 4322): Use of stream types is deprecated for operations other than volume control
04-28 01:13:57.661 W/AudioManager( 4322): See the documentation of requestAudioFocus() for what to use instead with android.media.AudioAttributes to qualify your playback use case
04-28 01:13:57.661 I/MediaFocusControl( 3316): requestAudioFocus() from uid/pid 10067/4322 clientId=android.media.AudioManager@c57ccb4com.netflix.mediaclient.ui.player.videoview.NetflixVideoViewBase$1@8f930dd callingPack=com.netflix.mediaclient req=1 flags=0x0 sdk=28
04-28 01:13:58.042 I/lix.mediaclien( 4322): Background concurrent copying GC freed 122151(5MB) AllocSpace objects, 42(1828KB) LOS objects, 50% free, 16MB/32MB, paused 282us total 287.238ms
04-28 01:13:58.300 I/display ( 3174): Failed to commit pset ret=-2
04-28 01:13:58.829 E/TaskPersister( 3316): File error accessing recents directory (directory doesn't exist?).
04-28 01:13:59.279 I/lix.mediaclien( 4322): Background concurrent copying GC freed 152105(7MB) AllocSpace objects, 73(3MB) LOS objects, 49% free, 24MB/48MB, paused 576us total 176.700ms
0

Outcomes