#include <simple_mpd_notifier.h>
Public Member Functions | |
SimpleMpdNotifier (DashProfile dash_profile, const MpdOptions &mpd_options, const std::vector< std::string > &base_urls, const std::string &output_path) | |
MpdNotifier implemetation overrides. | |
virtual bool | Init () OVERRIDE |
virtual bool | NotifyNewContainer (const MediaInfo &media_info, uint32_t *id) OVERRIDE |
virtual bool | NotifySampleDuration (uint32_t container_id, uint32_t sample_duration) OVERRIDE |
virtual bool | NotifyNewSegment (uint32_t id, uint64_t start_time, uint64_t duration, uint64_t size) OVERRIDE |
virtual bool | NotifyEncryptionUpdate (uint32_t container_id, const std::string &drm_uuid, const std::vector< uint8_t > &new_key_id, const std::vector< uint8_t > &new_pssh) OVERRIDE |
virtual bool | AddContentProtectionElement (uint32_t id, const ContentProtectionElement &content_protection_element) OVERRIDE |
virtual bool | Flush () OVERRIDE |
Public Member Functions inherited from edash_packager::MpdNotifier | |
MpdNotifier (DashProfile dash_profile) | |
DashProfile | dash_profile () const |
Friends | |
class | SimpleMpdNotifierTest |
A simple MpdNotifier implementation which receives muxer listener event and generates an Mpd file.
Definition at line 31 of file simple_mpd_notifier.h.
|
virtual |
Adds content protection information to the MPD.
container_id | is the nummeric container ID obtained from calling NotifyNewContainer(). |
content_protection_element | New ContentProtection element specification. |
Implements edash_packager::MpdNotifier.
Definition at line 116 of file simple_mpd_notifier.cc.
|
virtual |
Call this method to force a flush. Implementations might not write out the MPD to a stream (file, stdout, etc.) when the MPD is updated, this forces a flush.
Implements edash_packager::MpdNotifier.
Definition at line 129 of file simple_mpd_notifier.cc.
|
virtual |
Initializes the notifier. For example, if this notifier uses a network for notification, then this would set up the connection with the remote host.
Implements edash_packager::MpdNotifier.
Definition at line 34 of file simple_mpd_notifier.cc.
|
virtual |
Notifiers MpdBuilder that there is a new PSSH for the container. This may be called whenever the key has to change, e.g. key rotation.
container_id | Container ID obtained from calling NotifyNewContainer(). |
drm_uuid | is the UUID of the DRM for encryption. |
new_key_id | is the new key ID for the key. |
new_pssh | is the new pssh box (including the header). |
Implements edash_packager::MpdNotifier.
Definition at line 100 of file simple_mpd_notifier.cc.
|
virtual |
Notifies the MpdBuilder that there is a new container along with media_info. Live may have multiple files (segments) but those should be notified via NotifyNewSegment().
media_info | is the MediaInfo that will be passed to MpdBuilder. | |
[out] | container_id | is the numeric ID of the container, possibly for NotifyNewSegment() and AddContentProtectionElement(). Only populated on success. |
Implements edash_packager::MpdNotifier.
Definition at line 38 of file simple_mpd_notifier.cc.
|
virtual |
Notifies MpdBuilder that there is a new segment ready. For live, this is usually a new segment, for VOD this is usually a subsegment.
container_id | Container ID obtained from calling NotifyNewContainer(). |
start_time | is the start time of the new segment, in units of the stream's time scale. |
duration | is the duration of the new segment, in units of the stream's time scale. |
size | is the new segment size in bytes. |
Implements edash_packager::MpdNotifier.
Definition at line 86 of file simple_mpd_notifier.cc.
|
virtual |
Change the sample duration of container with container_id.
container_id | Container ID obtained from calling NotifyNewContainer(). |
sample_duration | is the duration of a sample in timescale of the media. |
Implements edash_packager::MpdNotifier.
Definition at line 74 of file simple_mpd_notifier.cc.