Skip to content

Support new Periods adding new encryption info #1360

@TheJohnBowers

Description

@TheJohnBowers

Have you read the FAQ and checked for duplicate open issues?:
Yes, I didn't see anything that looked like a duplicate issue

What version of Shaka Player are you using?:
2.3 built from master

Can you reproduce the issue with our latest release version?:
It also occurs when building 2.3 from the v2.3.x branch

Can you reproduce the issue with the latest code from master?:
Yes

Are you using the demo app or your own custom app?:
Demo App

If custom app, can you reproduce the issue using our demo app?:
NA

What browser and OS are you using?:
Chrome 64 on Mac OS -- Also Firefox Quantum 58.02 on MacOS

What are the manifest and license server URIs?:

{
  name: 'Downlynk Dash Live with Ad Breaks - duseqa1',
  manifestUri: 'https://content-duseqa1.downlynk.com/channel/29e9c85c070f413fb71a3b2a39eed208.mpd?ad=dashad', // eslint-disable-line max-len
  encoder: shakaAssets.Encoder.UPLYNK,
  source: shakaAssets.Source.UPLYNK,
  drm: [
    shakaAssets.KeySystem.WIDEVINE,
    shakaAssets.KeySystem.PLAYREADY
  ],
  features: [
    shakaAssets.Feature.MP4,
    shakaAssets.Feature.PSSH,
    shakaAssets.Feature.MULTIKEY,
    shakaAssets.Feature.HIGH_DEFINITION
  ],
  licenseServers: {
    'com.microsoft.playready': 'https://content-duseqa1.downlynk.com/pr',
    'com.widevine.alpha': 'https://content-duseqa1.downlynk.com/wv'
  },
  requestFilter: shakaAssets.UplynkRequestFilter,
  responseFilter: shakaAssets.UplynkResponseFilter
},

What did you do? / What did you expect to happen? / What actually happened?
The above test stream is running a sample ad that is 116 seconds in length every 5 minutes. If the live stream is joined during the drm protected content portion of the stream, everything works fine. Playback transitions into and out of the unencrypted ad portion perfectly over and over again.

IF however I just happen to join the stream during the ad portion when the manifest contains no drm protected period, playback stalls when a period eventually pops into the live window with widevine content protection. Playback seems to proceed to the end of the unencrypted period, and then hang. A few segments of the new period seem to be downloaded an buffered, but playback doesn't proceed.

Firefox actually gives a nasty decoder error and stops, while chrome just kind of sits there. Here is the firefox error:

Shaka Error MEDIA.VIDEO_ERROR (3,,NS_ERROR_DOM_MEDIA_DECODE_ERR (0x806e0004) - mozilla::MediaResult mozilla::AppleATDecoder::DecodeSample(mozilla::MediaRawData *): Error decoding audio sample: 1852797029 @ 117269001)

The network pane doesn't show any attempt to request the widevine license when the protected content shows up in the live window, or at any other time during playback in this scenario. If I reload the stream once the live window again advertises protected content, playback works fine.

This is an important scenario to work if someone wants to use unencrypted/unprotected content for ads as you cannot be sure when viewers will join a live event.

I am not seeing this issue with ExoPlayer

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions