Skip to content

Shaka-based Chromecast player does not emit TIMED_METADATA_CHANGED events for HLS #8706

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
turbidwater opened this issue Jun 5, 2025 · 5 comments
Labels
type: bug Something isn't working correctly
Milestone

Comments

@turbidwater
Copy link

Have you read the FAQ and checked for duplicate open issues?
Yes

If the problem is related to FairPlay, have you read the tutorial?

Not related to Fairplay.

What version of Shaka Player are you using?

4.9.2-caf2 through 4.14.16

Can you reproduce the issue with our latest release version?
Yes (4.14.16 is the last one I can currently load on Chromecast)

Can you reproduce the issue with the latest code from main?
Haven't been able to try.

Are you using the demo app or your own custom app?
Custom app.

If custom app, can you reproduce the issue using our demo app?
Shaka receiver demo does not listen for TIMED_METADATA_CHANGED

What browser and OS are you using?
Chromecast 3rd gen running CAST SDK CAF Version: 3.0.0137

For embedded devices (smart TVs, etc.), what model and firmware version are you using?
Chromecast 3rd gen running CAST SDK CAF Version: 3.0.0137

What are the manifest and license server URIs?

https://demo.unified-streaming.com/k8s/live/scte35.isml/.m3u8

What configuration are you using? What is the output of player.getNonDefaultConfiguration()?

No custom configuration other than setting the CastReceiverOptions.useShakaForHls = true. In order to try newer Shaka versions, I used CastReceiverOptions.shakaVersion = "4.14.16".

What did you do?

  1. Listen for TimedMetadataEvent events in the receiver app. This includes TIMED_METADATA_CHANGED, TIMED_METADATA_ENTER, and TIMED_METADATA_EXIT.
  2. Configure Shaka off, by passing in CastReceiverOptions with useShakaForHls set to false.
  3. Play https://demo.unified-streaming.com/k8s/live/scte35.isml/.m3u8 for more than 2 minutes.
  4. You will see the TIMED_METADATA_CHANGED event fire when the DATERANGE tag appears in the manifest.
  5. End your cast session and set the useShakaForHls option to true. Recompile the app and start a new cast session.
  6. Play https://demo.unified-streaming.com/k8s/live/scte35.isml/.m3u8 for more than 2 minutes.

What did you expect to happen?
The TIMED_METADATA_CHANGED event should fire when a new DATERANGE tag appears in the HLS manifest when using Shaka for HLS. It should fire the events the same way MPL does.

What actually happened?

No TimedMetadataEvents fired. This happened on the default Shaka version 4.9.2-caf2. I switched the Shaka version all the way up to 4.14.16 and did not see any change in behavior, except that between 4.11.21 and 4.12.0, the test asset stopped playing. I continued testing up to 4.14.16 with a test stream I cannot share and continued to see no timed metadata events.

Are you planning to send a PR to fix it?
No.

@turbidwater turbidwater added the type: bug Something isn't working correctly label Jun 5, 2025
@avelad
Copy link
Member

avelad commented Jun 5, 2025

@joeyparrish can you review it? Thanks!

@shaka-bot shaka-bot added this to the v4.16 milestone Jun 5, 2025
@turbidwater
Copy link
Author

For what it's worth, I tested this with the DASH counterpart to the HLS stream (https://demo.unified-streaming.com/k8s/live/scte35.isml/.mpd) and the Shaka-based Chromecast player dispatches the TimedMetadataEvents as expected.

@turbidwater turbidwater changed the title Shaka-based Chromecast player does not emit TIMED_METADATA_CHANGED events Shaka-based Chromecast player does not emit TIMED_METADATA_CHANGED events for HLS Jun 5, 2025
@joeyparrish
Copy link
Member

Are the TIMED_METADATA_CHANGED events dispatched in the Shaka Player demo?

@avelad avelad added the status: waiting on response Waiting on a response from the reporter(s) of the issue label Jun 6, 2025
@turbidwater
Copy link
Author

I must be looking in the wrong place. I set up the receiver app in the demo/cast_receiver folder in the Shaka player codebase, but it is a v2 Chromecast app, rather than v3 CAF. I can cast the asset from the Shaka Demo Player, but I have no way of viewing the debug output from the receiver app, since it is not my own.

Is there another place I should be looking?

@shaka-bot shaka-bot removed the status: waiting on response Waiting on a response from the reporter(s) of the issue label Jun 6, 2025
@turbidwater
Copy link
Author

@joeyparrish Is there a different demo app that you're referring to than the v2 one in demo/cast_receiver?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Something isn't working correctly
Projects
None yet
Development

No branches or pull requests

4 participants