shaka-project / shaka-player-embedded

Shaka Player in a C++ Framework
Apache License 2.0
239 stars 62 forks source link

Update Shaka Player to get CC support #232

Open Rastrelli1 opened 2 years ago

Rastrelli1 commented 2 years ago

Platform: iOS We add to manifest CC information <Accessibility schemeIdUri="urn:scte:dash:cc:cea-608:2015" value="CC1=eng"/>

Parsing worked [Log]: "DashParser.parseAdaptationSet" [Log]: "DashParser.parseAdaptationSet closedCaption urn:scte:dash:cc:cea-608:2015 value CC1=eng" [Log]: "DashParser.parseAdaptationSet closedCaption parsed language eng"

but don't add CC on update media because window.muxjs: undefined [Log]: "MediaSourceEngine.prototype.appendBuffer video time: 1647586338.4780111 1647586343.4780111 hasClosedCaptions: true" [Log]: "MediaSourceEngine hasClosedCaptions true window.muxjs: undefined" [Debug]: "(video:6)" "finished fetch and append"

neither the old method Player.usingEmbeddedTextTrack() Player.selectEmbeddedTextTrack() nor the added to getTextTracks() but it doesn't tell the embedded wrapper that there are closeCaptions

What we can dot it for show CC?

joeyparrish commented 2 years ago

This may require an update to the embedded version of Shaka Player. We have built-in CC parsing now, whereas earlier versions of Shaka Player required an additional library called mux.js for CC parsing.

Rastrelli1 commented 2 years ago

Yes, I see patch with replace muxjs to CC608 decoding on v3.0 of shaka player, but decided to copy shaka-player/node_modules/mux.js/dist/mux.js (v2.5.14) into framework, and loaded after player   JsManagerImpl* manager = JsManagerImpl::Instance();   CHECK(RunScript(manager->GetPathForStaticFile("shaka-player.compiled.js")));   CHECK(RunScript(manager->GetPathForStaticFile("mux.js")));

and this work, showed CC as expected. Thanks, I will closed this issue)

joeyparrish commented 2 years ago

Thank you for the update, but I would like to reopen it until we have updated the embedded build of Shaka Player.

Rastrelli1 commented 2 years ago

Thanks, if this needed of course let's update player We have the same problem with TTML subtitles in #225, @joeyparrish can you answer on description questions, where we need integrate showing subtitles with images, on shaka layer, or on embedded wrapper?

joeyparrish commented 2 years ago

In Shaka Player on the web, image-based subtitles are displayed through the DOM, which is driven by a TextDisplayer plugin (UITextDisplayer). In Embedded, I believe there would have to be a TextDisplayer plugin that is implemented in C++ to pipe the data up to where it can be displayed. Nobody at Google has had time to work on that.