[vlc-devel] Append metadata to block_t

Vladimir Davydov davydov.vladimir at gmail.com
Sat Jul 14 00:28:55 CEST 2018


> Le 13/07/2018 à 14:25, Vladimir Davydov a écrit :
> >> You'll need to configure decryption on es using ES control (decryption
> >> modules will be handled before decoder), and provide per sample
> >> parameters.
> > 
> > Do you mean separate module which decrypts samples and passes it to
> > decoder
> > module?
> 
> You can't do decryption in every module since demuxers are not always
> connected directly to decoders. There can be many layers between
> (adaptive add layers).

Yes, you are right. But I don't understand how will it work in case of Android 
MediaCodec/MediaDrm API.
Let me remind. In case of Android MediaCodec API, we have to pass sample data 
to MediaCodec by using queueInputBuffer() as already implemented in 
mediacodec_jni/ndk.c.
For encrypted samples, we just need to setup keys before and use 
queueSecureInputBuffer() which takes sample buffer and metadata with IV 
(different for each sample). 
So, I don't see any special module to decrypt Widevine protected stream. Also, 
we cannot get decrypted samples in case of Widevine (L1 and L2 security layers 
forbid it). 

> Also, in the adaptive case, most of the decryption parameters can be
> stored in manifest, unavailable to the demuxer.

Yes, that is another clue for me. How to pass decryption parameters from 
adaptive demuxer to another module? Could you please show me any example in 
the current code?

> 
> See vlc_ancillary topics July/June
> https://mailman.videolan.org/pipermail/vlc-devel/

Thanks! I have read it all. I didn't find good solution  for my case. Your 
patch is nice for me and I don't see serious design problems with it. 

Best regards,
Vladimir




More information about the vlc-devel mailing list