This repository has been archived by the owner on Aug 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7f4da7d
commit dd1ba72
Showing
80 changed files
with
2,313 additions
and
1,851 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Sphinx build info version 1 | ||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. | ||
config: 763d4b7cd9466d1e2ac87367299768d9 | ||
config: a288bbb74e1906ae4fa69bedc6040c49 | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,8 @@ | ||
.. _api_inject_video: | ||
|
||
Video Source Interface | ||
======================== | ||
#include <dolbyio/comms/media/media_engine.h> | ||
|
||
The interface through which raw video frames are provided to the CoreSDK. Application writers who want to implement this source must override the two virtual functions of :cpp:func:`registering <dolbyio::comms::video_source::register_video_frame_rtc_source>` and cpp:func:`deregistering <dolbyio::comms::video_source::deregister_video_frame_rtc_source>` the RTC Video Source on the Injector. When a | ||
VideoTrack is successfully added to an active PeerConnection, these virtual functions are invoked to provide/remove the reference to the RTC Video Source. Attaching the RTC Video source to the | ||
injector establishes the video pipeline so that frames can be passed to Webrtc. | ||
|
||
.. doxygenclass:: dolbyio::comms::video_source | ||
:project: C++ SDK | ||
|
||
|
||
The RTC Video Source is NOT to be implemented by the application. This is the interface through which the injector can view its own Video Sink. After receiving video frames from some media source, the | ||
injector provides the raw video frames to this RTC Video Source. The RTC Video Source then pushes the frame buffers along the video pipeline until they are injected into the conference. The | ||
raw video frame is deleted once it has been encoded. The RTC Video Source expects :cpp:class:`video frames <dolbyio::comms::video_frame>`. | ||
|
||
.. doxygenclass:: dolbyio::comms::rtc_video_source | ||
:project: C++ SDK | ||
Video | ||
===== | ||
For details about Video Injection please refer to :ref:`vid_frame_handle`. The application must create a :cpp:class:`Video Source <dolbyio::comms::video_source>` and then provide it to the SDK using the | ||
:cpp:func:`Local Video Service Start <dolbyio::comms::services::local_video::start>` method. | ||
|
||
See :ref:`injection_example` for an example of child injection class for all possible media. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
.. _media_io_api: | ||
|
||
Media IO API | ||
====================== | ||
The Media IO feature allows for :ref:`injecting <api_injection>` video and audio streams into a conference as well as :ref:`recording <api_recording>` the remote participants' streams. | ||
|
||
The basic usage of the Session Service consists of the following steps: | ||
1) Access the service after :cpp:func:`creating <dolbyio::comms::sdk::create>` and instance of the SDK through the :cpp:func:`sdk::media_io <dolbyio::comms::sdk::media_io>` method. | ||
2) Set an :cpp:func:`Audio Sink <dolbyio::comms::services::media_io::set_audio_sink>`. | ||
3) Set an :cpp:func:`Audio Source <dolbyio::comms::services::media_io::set_audio_source>`. | ||
4) Set an :cpp:func:`Encoded Video Sink <dolbyio::comms::services::media_io::set_encoded_video_sink>`. | ||
|
||
.. doxygenclass:: dolbyio::comms::services::media_io | ||
|
||
.. _api_injection: | ||
|
||
Injection | ||
_________ | ||
.. toctree:: | ||
:maxdepth: 2 | ||
:titlesonly: | ||
:glob: | ||
|
||
injection/audio.rst | ||
injection/video.rst | ||
injection/example.rst | ||
|
||
.. _api_recording: | ||
|
||
Recording | ||
_________ | ||
.. toctree:: | ||
:maxdepth: 2 | ||
:titlesonly: | ||
:glob: | ||
|
||
recording/raw_video.rst | ||
recording/encoded_video.rst | ||
recording/audio.rst | ||
recording/events.rst | ||
recording/example.rst | ||
|
||
.. note:: | ||
The Core SDK API provides methods that are asynchronous in nature and return :ref:`async_result <api_async_result>`. This means that if | ||
the result or the completion of the operation is necessary for subsequent calls, you have to be careful. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
.. _plugins_api: | ||
|
||
Plugins | ||
======= | ||
The Plugins are provided as part of the **dolbyio_multimedia_streaming_addon** library. Applications that would like to use our Default Injector/Recorder modules should link against this library. | ||
|
||
To record conferences, the C++ SDK uses a Media Recorder that allows processing and storing video frames from the incoming WebRTC media streams. The library provides a default media recorder plugin. The default media recorder plugin is | ||
a ready-to-use library that can be easily configured and included in an application. The plugin automatically records the incoming media streams for conference participants and stores the recorded streams in either raw or encoded format. | ||
|
||
The library also provides two flavors of Media Injectors as plugins. One of the default plugins is the Pacing Injector. The injector exposes an interface for an application and allows passing decoded audio and video. Then, the injector provides these frames to WebRTC at specified intervals. This version of the plugin is suitable for injecting media files. The second default injection plugin is the Passthrough Injector, which exposes the application the same interface | ||
for injecting frames, but this plugin directly relays the frames it receives to WebRTC without any internal pacing. The media injection plugins do not provide capturing of audio or video; instead, they serve in constructing the respective media injection pipelines. The application is responsible for performing the audio and video capture and providing the decoded frames to the injector plugin. | ||
|
||
.. toctree:: | ||
:maxdepth: 2 | ||
:titlesonly: | ||
:glob: | ||
|
||
sdk/recorder.rst | ||
sdk/injector.rst |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,18 @@ | ||
.. _api_record_encoded: | ||
|
||
Encoded Video Sink Interface | ||
============================ | ||
#include <dolbyio/comms/media/media_engine.h> | ||
Encoded Video | ||
============= | ||
#include <dolbyio/comms/media_engine/media_engine.h> | ||
|
||
The interface for handling encoded video frames. Application must set listeners which override both of the virtual functions. The | ||
:cpp:func:`handle_frame_encoded <dolbyio::comms::video_sink_encoded::handle_frame_encoded>` function is called after the RTP data is depacktized and an encoded frame | ||
is constructed. This function will be executed on the Webrtc DecodingQueue thread created for the track to which the encoded frames belong. | ||
is constructed. This function will be executed on the Webrtc DecodingQueue thread created for the track to which the encoded frames belong. The Encoded Video Sink must be provided to the SDK using the | ||
:cpp:func:`Set Encoded Sink <dolbyio::comms::services::media_io::set_encoded_sink>` function. | ||
|
||
.. doxygenclass:: dolbyio::comms::video_sink_encoded | ||
:project: C++ SDK | ||
|
||
.. doxygenclass:: dolbyio::comms::encoded_video_frame | ||
:project: C++ SDK | ||
|
||
See :ref:`recording_example` for a template for child recording class for all possible media. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,9 @@ | ||
.. _api_record_raw: | ||
|
||
Raw Video Sink Interface | ||
======================== | ||
#include <dolbyio/comms/media/media_engine.h> | ||
Raw Video | ||
========= | ||
#include <dolbyio/comms/media_engine/media_engine.h> | ||
|
||
The interface for handling decoded video frames. Application must set listener which overrides the virtual function. The | ||
:cpp:func:`handle_frame <dolbyio::comms::video_sink_yuv::handle_frame>` function is called after the Webrtc Decoder has decoded the frame and will provide the | ||
decoded data wrapped in the :cpp:class:`frame <dolbyio::comms::frame>` object. The frame class wraps the decoded video frame and essentailly just provides interface | ||
to extract the underlying YUV data. | ||
|
||
.. doxygenclass:: dolbyio::comms::video_sink_yuv | ||
:project: C++ SDK | ||
|
||
.. doxygenclass:: dolbyio::comms::video_frame | ||
:project: C++ SDK | ||
For details about Raw Video Recording an application must implement a :cpp:class:`Video Sink <dolbyio::comms::video_sink>` to receive the frames and provide this Video Sink to the SDK using the :cpp:class:`Remote Video Service <dolbyio::comms::services::remote_video>`. | ||
|
||
See :ref:`recording_example` for a template for child recording class for all possible media. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.