[Nexus 10 Android Development] craigacgomez:
When I start a video with the H/W decoder (I'm using the Gallery2 app to play an mp4 video, no DRM).... this is what I get in the logcat

D/OpenGLRenderer( 7316): Enabling debug mode 0
I/ActivityManager( 397): Displayed com.google.android.gallery3d/com.android.gallery3d.app.MovieActivity: +433ms
D/dalvikvm( 7316): GC_CONCURRENT freed 133K, 6% free 10531K/11160K, paused 4ms+4ms, total 21ms
D/AwesomePlayer( 131): HDCP debug enabled. HDCP protection bit is disabled.
I/OMXCodec( 131): [OMX.Exynos.AVC.Decoder] AVC profile = 100 (High), level = 40
I/OMXCodec( 131): [OMX.Exynos.AVC.Decoder] video dimensions are 1920 x 1080
D/libexynosv4l2( 131): try node: /dev/video6, minor: 6
I/libexynosv4l2( 131): node found for device s5p-mfc-dec: /dev/video6
I/libexynosv4l2( 131): open video device /dev/video6
D/MediaPlayer( 7316): getMetadata
I/OMXCodec( 131): [OMX.Exynos.AVC.Decoder] video dimensions are 1920 x 1088
I/OMXCodec( 131): [OMX.Exynos.AVC.Decoder] Crop rect is 1920 x 1080 @ (0, 0)
I/OMXCodec( 131): [OMX.Exynos.AVC.Decoder] video dimensions are 1920 x 1088
I/OMXCodec( 131): [OMX.Exynos.AVC.Decoder] Crop rect is 1920 x 1080 @ (0, 0)
I/SoftAAC2( 131): Reconfiguring decoder: 44100 Hz, 2 channels
W/MediaPlayer( 7316): info/warning (3, 0)
I/MediaPlayer( 7316): Info (3,0)

As you can see, the debug line shows "D/AwesomePlayer( 131): HDCP debug enabled. HDCP protection bit is disabled."

And BTW, my display only support HDCP thru DVI, not thru HDMI... I cannot play DRM videos thru HDMI

In any case, here what i got from EXTERNAL, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS... they are properties of the display device...

FLAG_SUPPORTS_PROTECTED_BUFFERS

Display flag: Indicates that the display supports compositing content that is stored in protected graphics buffers. If this flag is set then the display device supports compositing protected buffers. If this flag is not set then the display device may not support compositing protected buffers; the user may see a blank region on the screen instead of the protected content.
Secure (DRM) video decoders may allocate protected graphics buffers to request that a hardware-protected path be provided between the video decoder and the external display sink. If a hardware-protected path is not available, then content stored in protected graphics buffers may not be composited.
An application can use the absence of this flag as a hint that it should not use protected buffers for this display because the content may not be visible. For example, if the flag is not set then the application may choose not to show content on this display, show an informative error message, select an alternate content stream or adopt a different strategy for decoding content that does not rely on protected buffers.

EXTERNAL, FLAG_SECURE

Display flag: Indicates that the display has a secure video output and supports compositing secure surfaces. If this flag is set then the display device has a secure video output and is capable of showing secure surfaces. It may also be capable of protected buffers. If this flag is not set then the display device may not have a secure video output; the user may see a blank region on the screen instead of the contents of secure surfaces or protected buffers.
Secure surfaces are used to prevent content rendered into those surfaces by applications from appearing in screenshots or from being viewed on non-secure displays. Protected buffers are used by secure video decoders for a similar purpose.
An application creates a window with a secure surface by specifying the FLAG_SECURE} window flag. Likewise, an application creates a SurfaceView with a secure surface by calling SurfaceView#setSecure before attaching the secure view to its containing window.
An application can use the absence of this flag as a hint that it should not create secure surfaces or protected buffers on this display because the content may not be visible. For example, if the flag is not set then the application may choose not to show content on this display, show an informative error message, select an alternate content stream or adopt a different strategy for decoding content that does not rely on secure surfaces or protected buffers.