Migration from Native Client to WebAssembly
This section provides an extension to https://developer.chrome.com/docs/native-client/migration/ article, which describes interface mapping from Google PPAPI interfaces to WebAssembly.
Emscripten SDK, modified by Samsung, provides additional functionalities that were available in Native Client - Player, Sockets and Video Decoder APIs.
Samsung Specific PPAPIs migration to WASM
PPAPI | WASM (Emscripten) | |
---|---|---|
Player | NaCl Player | WASM Player |
Sockets | POSIX API (through nacl_io) https://developer.chrome.com/docs/native-client/devguide/coding/nacl_io/ |
POSIX API |
Video Decoder | pp::VideoDecoder | Part of WASM Player functionality. WASM Player needs to be initialized with RenderingMode::kVideoTexture parameter, which indicates that you want to return decoded frames to application as GL Texture instead of presenting them on a screen. |
NaCl Player -> WASM Player
Samsung::NaClPlayer::ESDataSource
PPAPI | WASM (Emscripten) |
---|---|
Samsung::NaClPlayer::ESDataSource::AddStream | samsung::wasm::ElementaryMediaStreamSource::AddTrack |
Samsung::NaClPlayer::ESDataSource::SetDuration | samsung::wasm::ElementaryMediaStreamSource::SetDuration |
Samsung::NaClPlayer::ESDataSource::SetEndOfStream | samsung::wasm::ElementaryMediaTrack::AppendEndOfTrack |
Samsung::NaClPlayer::ElementaryStream
PPAPI | WASM (Emscripten) |
---|---|
Samsung::NaClPlayer::ElementaryStream::GetStreamType | samsung::wasm::ElementaryMediaTrack::GetType |
Samsung::NaClPlayer::ElementaryStream::InitializeDone | samsung::wasm::ElementaryMediaStreamSource::AddTrack |
Samsung::NaClPlayer::ElementaryStream::AppendPacket | samsung::wasm::ElementaryMediaTrack::AppendPacketAsync |
Samsung::NaClPlayer::ElementaryStream::AppendPacket | samsung::wasm::ElementaryMediaTrack::AppendPacketAsync |
Samsung::NaClPlayer::ElementaryStream::AppendEncryptedPacket | samsung::wasm::ElementaryMediaTrack::AppendEncryptedPacketAsync |
Samsung::NaClPlayer::ElementaryStream::AppendTrustZonePacket | - |
Samsung::NaClPlayer::ElementaryStream::Flush | samsung::wasm::ElementaryMediaStreamSource::Flush |
Samsung::NaClPlayer::ElementaryStream::SetDRMInitData | samsung::wasm::MediaKey::SetupEncryption |
Samsung::NaClPlayer::AudioElementaryStream
PPAPI | WASM (Emscripten) |
---|---|
Samsung::NaClPlayer::AudioElementaryStream::GetAudioCodecType | samsung::wasm::ElementaryMediaTrackConfig::mime_type |
Samsung::NaClPlayer::AudioElementaryStream::SetAudioCodecType | samsung::wasm::ElementaryMediaTrackConfig::mime_type |
Samsung::NaClPlayer::AudioElementaryStream::GetAudioCodecProfile | samsung::wasm::ElementaryMediaTrackConfig::mime_type |
Samsung::NaClPlayer::AudioElementaryStream::SetAudioCodecProfile | samsung::wasm::ElementaryMediaTrackConfig::mime_type |
Samsung::NaClPlayer::AudioElementaryStream::GetSampleFormat | samsung::wasm::ElementaryAudioTrackConfig::sample_format |
Samsung::NaClPlayer::AudioElementaryStream::SetSampleFormat | samsung::wasm::ElementaryAudioTrackConfig::sample_format |
Samsung::NaClPlayer::AudioElementaryStream::SetBitsPerChannel | - |
Samsung::NaClPlayer::AudioElementaryStream::GetBitsPerChannel | - |
Samsung::NaClPlayer::AudioElementaryStream::GetSamplesPerSecond | samsung::wasm::ElementaryAudioTrackConfig::samples_per_second |
Samsung::NaClPlayer::AudioElementaryStream::GetBitsPerChannel | samsung::wasm::ElementaryAudioTrackConfig::samples_per_second |
Samsung::NaClPlayer::AudioElementaryStream::SetCodecExtraData | samsung::wasm::ElementaryMediaTrackConfig::extradata |
Samsung::NaClPlayer::VideoElementaryStream
PPAPI | WASM (Emscripten) |
---|---|
Samsung::NaClPlayer::VideoElementaryStream::GetVideoCodecType | samsung::wasm::ElementaryMediaTrackConfig::mime_type |
Samsung::NaClPlayer::VideoElementaryStream::SetVideoCodecType | samsung::wasm::ElementaryMediaTrackConfig::mime_type |
Samsung::NaClPlayer::VideoElementaryStream::GetVideoCodecProfile | samsung::wasm::ElementaryMediaTrackConfig::mime_type |
Samsung::NaClPlayer::VideoElementaryStream::SetVideoCodecProfile | samsung::wasm::ElementaryMediaTrackConfig::mime_type |
Samsung::NaClPlayer::VideoElementaryStream::GetVideoFrameFormat | - |
Samsung::NaClPlayer::VideoElementaryStream::SetVideoFrameFormat | - |
Samsung::NaClPlayer::VideoElementaryStream::GetVideoFrameSize | samsung::wasm::ElementaryVideoTrackConfig::width samsung::wasm::ElementaryVideoTrackConfig::height |
Samsung::NaClPlayer::VideoElementaryStream::SetVideoFrameSize | samsung::wasm::ElementaryVideoTrackConfig::width samsung::wasm::ElementaryVideoTrackConfig::height |
Samsung::NaClPlayer::VideoElementaryStream::GetFrameRate | samsung::wasm::ElementaryVideoTrackConfig::framerate_num samsung::wasm::ElementaryVideoTrackConfig::framerate_den |
Samsung::NaClPlayer::VideoElementaryStream::SetFrameRate | samsung::wasm::ElementaryVideoTrackConfig::framerate_num samsung::wasm::ElementaryVideoTrackConfig::framerate_den |
Samsung::NaClPlayer::VideoElementaryStream::SetCodecExtraData | samsung::wasm::ElementaryMediaTrackConfig::extradata |
Samsung::NaClPlayer::MediaPlayer
PPAPI | WASM (Emscripten) |
---|---|
Samsung::NaClPlayer::MediaPlayer::MediaPlayer | samsung::wasm::HtmlMediaElement |
Samsung::NaClPlayer::MediaPlayer::SetMediaEventsListener | samsung::html::HtmlMediaElement::SetListener |
Samsung::NaClPlayer::MediaPlayer::SetSubtitleListener | - |
Samsung::NaClPlayer::MediaPlayer::SetBufferingListener | samsung::html::HtmlMediaElement::SetListener |
Samsung::NaClPlayer::MediaPlayer::SetDRMListener | - |
Samsung::NaClPlayer::MediaPlayer::BindToDisplay | - |
Samsung::NaClPlayer::MediaPlayer::AttachDataSource | samsung::html::HTMLMediaElement::SetSrc |
Samsung::NaClPlayer::MediaPlayer::Play | samsung::html::HTMLMediaElement::Play |
Samsung::NaClPlayer::MediaPlayer::Pause | samsung::html::HTMLMediaElement::Pause |
Samsung::NaClPlayer::MediaPlayer::Stop | samsung::html::HTMLMediaElement::~HTMLMediaElement |
Samsung::NaClPlayer::MediaPlayer::Seek | samsung::html::HTMLMediaElement::SetCurrentTime |
Samsung::NaClPlayer::MediaPlayer::SetPlaybackRate | - |
Samsung::NaClPlayer::MediaPlayer::GetDuration | samsung::html::HTMLMediaElement::GetDuration |
Samsung::NaClPlayer::MediaPlayer::GetCurrentTime | samsung::html::HTMLMediaElement::GetCurrentTime |
Samsung::NaClPlayer::MediaPlayer::GetPlayerState | - |
Samsung::NaClPlayer::MediaPlayer::GetCurrentVideoTrackInfo | - |
Samsung::NaClPlayer::MediaPlayer::GetVideoTracksList | - |
Samsung::NaClPlayer::MediaPlayer::GetCurrentAudioTrackInfo | - |
Samsung::NaClPlayer::MediaPlayer::GetAudioTracksList | - |
Samsung::NaClPlayer::MediaPlayer::GetCurrentTextTrackInfo | - |
Samsung::NaClPlayer::MediaPlayer::GetTextTracksList | - |
Samsung::NaClPlayer::MediaPlayer::SelectTrack | - |
Samsung::NaClPlayer::MediaPlayer::AddExternalSubtitles | - |
Samsung::NaClPlayer::MediaPlayer::SetSubtitlesDelay | - |
Samsung::NaClPlayer::MediaPlayer::SetDisplayRect | * Customized with video-tag parameters in JavaScript |
Samsung::NaClPlayer::MediaPlayer::SetDisplayMode | * Customized with video-tag parameters in JavaScript |
Samsung::NaClPlayer::MediaPlayer::SetVr360Mode | - |
Samsung::NaClPlayer::MediaPlayer::SetVr360Rotation | - |
Samsung::NaClPlayer::MediaPlayer::SetDRMSpecificData | samsung::wasm::MediaKey::SetupEncryption |
Samsung::NaClPlayer::URLDataSource
PPAPI | WASM (Emscripten) |
---|---|
Samsung::NaClPlayer::URLDataSource | Available using video tag with url src element.
|
VideoDecoder -> WASM Player
PPAPI | WASM (Emscripten) |
---|---|
pp::VideoDecoder::Create | samsung::wasm::ElementaryMediaStreamSource::AddTrack |
pp::VideoDecoder::Initialize | samsung::wasm::ElementaryMediaStreamSource::AddTrack |
pp::VideoDecoder::Decode | samsung::html::HtmlMediaElement::Play |
pp::VideoDecoder::GetPicture | samsung::wasm::ElementaryMediaTrack::FillTextureWithNextFrame |
pp::VideoDecoder::RecyclePicture | samsung::wasm::ElementaryMediaTrack::RecycleTexture |
pp::VideoDecoder::Flush | samsung::wasm::ElementaryMediaStreamSource::Flush |
pp::VideoDecoder::Reset | samsung::wasm::ElementaryMediaStreamSource::RemoveTrack samsung::wasm::ElementaryMediaStreamSource::AddTrack |