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
65 private:
66 // Only for constructing the super class. Not used for testing.
67 uint32_t sequence_counter_ = 0;
68};
69
71 public:
72 // |representation_id| is the numeric ID for the <Representation>.
73 explicit MockRepresentation(uint32_t representation_id);
74 ~MockRepresentation() override;
75
76 MOCK_METHOD1(AddContentProtectionElement,
77 void(const ContentProtectionElement& element));
78 MOCK_METHOD2(UpdateContentProtectionPssh,
79 void(const std::string& drm_uuid, const std::string& pssh));
80 MOCK_METHOD4(AddNewSegment,
81 void(int64_t start_time,
82 int64_t duration,
83 uint64_t size,
84 int64_t segment_number));
85 MOCK_METHOD0(SetSegmentDuration, void());
86 MOCK_METHOD0(SetAvailabilityTimeOffset, void());
87 MOCK_METHOD1(SetSampleDuration, void(int32_t sample_duration));
88 MOCK_CONST_METHOD0(GetMediaInfo, const MediaInfo&());
89};
90
91} // namespace shaka
92
93#endif // MPD_BASE_MOCK_MPD_BUILDER_H_
virtual Representation * AddRepresentation(const MediaInfo &media_info)
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:75
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.