Shaka Packager SDK
Loading...
Searching...
No Matches
mock_mpd_builder.h
1// Copyright 2015 Google LLC. All rights reserved.
2//
3// Use of this source code is governed by a BSD-style
4// license that can be found in the LICENSE file or at
5// https://developers.google.com/open-source/licenses/bsd
6
7#ifndef MPD_BASE_MOCK_MPD_BUILDER_H_
8#define MPD_BASE_MOCK_MPD_BUILDER_H_
9
10#include <cstdint>
11
12#include <absl/synchronization/mutex.h>
13#include <gmock/gmock.h>
14
15#include <packager/macros/classes.h>
16#include <packager/mpd/base/adaptation_set.h>
17#include <packager/mpd/base/content_protection_element.h>
18#include <packager/mpd/base/mpd_builder.h>
19#include <packager/mpd/base/period.h>
20#include <packager/mpd/base/representation.h>
21
22namespace shaka {
23
24class MockMpdBuilder : public MpdBuilder {
25 public:
27 ~MockMpdBuilder() override;
28
29 MOCK_METHOD1(GetOrCreatePeriod, Period*(double start_time_in_seconds));
30 MOCK_METHOD1(ToString, bool(std::string* output));
31};
32
33class MockPeriod : public Period {
34 public:
35 MockPeriod(uint32_t period_id, double start_time_in_seconds);
36
37 MOCK_METHOD2(GetOrCreateAdaptationSet,
38 AdaptationSet*(const MediaInfo& media_info,
39 bool content_protection_in_adaptation_set));
40
41 private:
42 // Only for constructing the super class. Not used for testing.
43 uint32_t sequence_counter_ = 0;
44};
45
47 public:
49 ~MockAdaptationSet() override;
50
51 MOCK_METHOD1(AddRepresentation, Representation*(const MediaInfo& media_info));
52 MOCK_METHOD1(CopyRepresentation,
53 Representation*(const Representation& representation));
54 MOCK_METHOD1(AddContentProtectionElement,
55 void(const ContentProtectionElement& element));
56 MOCK_METHOD2(UpdateContentProtectionPssh,
57 void(const std::string& drm_uuid, const std::string& pssh));
58 MOCK_METHOD1(AddRole, void(AdaptationSet::Role role));
59 MOCK_METHOD1(ForceSetSegmentAlignment, void(bool segment_alignment));
60 MOCK_METHOD1(AddAdaptationSetSwitching,
61 void(const AdaptationSet* adaptation_set));
62 MOCK_METHOD1(AddTrickPlayReference,
63 void(const AdaptationSet* adaptation_set));
64 MOCK_METHOD2(AddAccessibility,
65 void(const std::string& scheme, const std::string& value));
66
67 private:
68 // Only for constructing the super class. Not used for testing.
69 uint32_t sequence_counter_ = 0;
70};
71
73 public:
74 // |representation_id| is the numeric ID for the <Representation>.
75 explicit MockRepresentation(uint32_t representation_id);
76 ~MockRepresentation() override;
77
78 MOCK_METHOD1(AddContentProtectionElement,
79 void(const ContentProtectionElement& element));
80 MOCK_METHOD2(UpdateContentProtectionPssh,
81 void(const std::string& drm_uuid, const std::string& pssh));
82 MOCK_METHOD4(AddNewSegment,
83 void(int64_t start_time,
84 int64_t duration,
85 uint64_t size,
86 int64_t segment_number));
87 MOCK_METHOD0(SetSegmentDuration, void());
88 MOCK_METHOD0(SetAvailabilityTimeOffset, void());
89 MOCK_METHOD1(SetSampleDuration, void(int32_t sample_duration));
90 MOCK_CONST_METHOD0(GetMediaInfo, const MediaInfo&());
91};
92
93} // namespace shaka
94
95#endif // MPD_BASE_MOCK_MPD_BUILDER_H_
virtual Representation * AddRepresentation(const MediaInfo &media_info)
virtual void AddAccessibility(const std::string &scheme, const std::string &value)
virtual void AddContentProtectionElement(const ContentProtectionElement &element)
virtual void ForceSetSegmentAlignment(bool segment_alignment)
virtual Representation * CopyRepresentation(const Representation &representation)
virtual void AddTrickPlayReference(const AdaptationSet *adaptation_set)
virtual void AddAdaptationSetSwitching(const AdaptationSet *adaptation_set)
virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
virtual void AddRole(Role role)
This class generates DASH MPDs (Media Presentation Descriptions).
Definition mpd_builder.h:38
virtual Period * GetOrCreatePeriod(double start_time_in_seconds)
virtual bool ToString(std::string *output)
virtual AdaptationSet * GetOrCreateAdaptationSet(const MediaInfo &media_info, bool content_protection_in_adaptation_set)
Definition period.cc:76
double start_time_in_seconds() const
Definition period.h:56
virtual void AddContentProtectionElement(const ContentProtectionElement &element)
virtual void AddNewSegment(int64_t start_time, int64_t duration, uint64_t size, int64_t segment_number)
virtual void UpdateContentProtectionPssh(const std::string &drm_uuid, const std::string &pssh)
virtual const MediaInfo & GetMediaInfo() const
virtual void SetSampleDuration(int32_t sample_duration)
All the methods that are virtual are virtual for mocking.