[Chromecast] Per frame encryption pattern

Change chromecast public header to support per-frame encryption pattern.

1. EncryptionScheme is now an enum, which defines the algorithm and the
cipher mode used for the frame (this is the old CipherMode).
2. EncryptionPattern is the pattern used in CBCS mode.
3. EncryptionScheme is carried by Audio/VideoConfig.
4. EncryptionPattern is carried by CastDecryptConfig. Each frame has its
own own CastDecryptConfig.

With this patch, decoder gets EncryptionScheme from config update,
before playing the stream. Decoder will get EncryptionPattern when
pushing the frame.

Bug: 825041
Bug: internal b/120427757
Test: GPM, HLS CBC content
Change-Id: Iead6647fa747bd249e0d6acdc607ac90bfda21ea
Merge-With: eureka-internal/248744
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1504146
Commit-Queue: Yuchen Liu <yucliu@chromium.org>
Reviewed-by: Luke Halliwell <halliwell@chromium.org>
Reviewed-by: Kenneth MacKay <kmackay@chromium.org>
Cr-Commit-Position: refs/heads/master@{#639090}
22 files changed