7#ifndef MPD_BASE_SIMPLE_MPD_NOTIFIER_H_
8#define MPD_BASE_SIMPLE_MPD_NOTIFIER_H_
17#include <absl/synchronization/mutex.h>
19#include <packager/mpd/base/mpd_builder.h>
20#include <packager/mpd/base/mpd_notifier.h>
44 int32_t sample_duration)
override;
50 int64_t segment_number)
override;
53 uint64_t size)
override;
54 bool NotifyCueEvent(uint32_t container_id, int64_t timestamp)
override;
56 const std::string& drm_uuid,
57 const std::vector<uint8_t>& new_key_id,
58 const std::vector<uint8_t>& new_pssh)
override;
60 const MediaInfo& media_info)
override;
64 bool Flush()
override;
71 friend class SimpleMpdNotifierTest;
74 MpdBuilder* MpdBuilderForTesting()
const {
return mpd_builder_.get(); }
77 void SetMpdBuilderForTesting(std::unique_ptr<MpdBuilder> mpd_builder) {
78 mpd_builder_ = std::move(mpd_builder);
82 std::string output_path_;
83 std::unique_ptr<MpdBuilder> mpd_builder_;
84 bool content_protection_in_adaptation_set_ =
true;
87 uint32_t next_adaptation_set_id_ = 0;
89 std::map<uint32_t, Representation*> representation_map_;
91 std::map<uint32_t, AdaptationSet*> representation_id_to_adaptation_set_;
This class generates DASH MPDs (Media Presentation Descriptions).
bool NotifyNewSegment(uint32_t container_id, int64_t start_time, int64_t duration, uint64_t size, int64_t segment_number) override
bool NotifyCompletedSegment(uint32_t container_id, int64_t duration, uint64_t size) override
bool NotifySampleDuration(uint32_t container_id, int32_t sample_duration) override
bool NotifyNewContainer(const MediaInfo &media_info, uint32_t *id) override
bool NotifyCueEvent(uint32_t container_id, int64_t timestamp) override
bool NotifyMediaInfoUpdate(uint32_t container_id, const MediaInfo &media_info) override
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
bool NotifyEndOfStream() override
bool NotifySegmentDuration(uint32_t container_id) override
bool NotifyAvailabilityTimeOffset(uint32_t container_id) override
All the methods that are virtual are virtual for mocking.