Shaka Packager SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
packager.h
1 // Copyright 2017 Google Inc. 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 PACKAGER_PACKAGER_H_
8 #define PACKAGER_PACKAGER_H_
9 
10 #include <memory>
11 #include <string>
12 #include <vector>
13 
14 #include "packager/file/public/buffer_callback_params.h"
15 #include "packager/hls/public/hls_params.h"
16 #include "packager/media/public/ad_cue_generator_params.h"
17 #include "packager/media/public/chunking_params.h"
18 #include "packager/media/public/crypto_params.h"
19 #include "packager/media/public/mp4_output_params.h"
20 #include "packager/mpd/public/mpd_params.h"
21 #include "packager/status.h"
22 
23 namespace shaka {
24 
26 struct TestParams {
28  bool dump_stream_info = false;
31  bool inject_fake_clock = false;
35 };
36 
40  std::string temp_dir;
45 
48 
51  bool output_media_info = false;
56 
59  DecryptionParams decryption_params;
60 
63 
64  // Parameters for testing. Do not use in production.
65  TestParams test_params;
66 };
67 
71  std::string input;
72 
75  std::string stream_selector;
76 
79  std::string output;
81  std::string segment_template;
82 
85  std::string output_format;
88  bool skip_encryption = false;
93  std::string drm_label;
97  uint32_t trick_play_factor = 0;
101  uint32_t bandwidth = 0;
104  std::string language;
108  std::string hls_name;
111  std::string hls_group_id;
114  std::string hls_playlist_name;
115 };
116 
117 class SHAKA_EXPORT Packager {
118  public:
119  Packager();
120  ~Packager();
121 
126  Status Initialize(
127  const PackagingParams& packaging_params,
128  const std::vector<StreamDescriptor>& stream_descriptors);
129 
133  Status Run();
134 
136  void Cancel();
137 
139  static std::string GetLibraryVersion();
140 
160  static std::string DefaultStreamLabelFunction(
161  int max_sd_pixels,
162  int max_hd_pixels,
163  int max_uhd1_pixels,
164  const EncryptionParams::EncryptedStreamAttributes& stream_attributes);
165 
166  private:
167  Packager(const Packager&) = delete;
168  Packager& operator=(const Packager&) = delete;
169 
170  struct PackagerInternal;
171  std::unique_ptr<PackagerInternal> internal_;
172 };
173 
174 } // namespace shaka
175 
176 #endif // PACKAGER_PACKAGER_H_
std::string stream_selector
Definition: packager.h:75
BufferCallbackParams buffer_callback_params
Buffer callback params.
Definition: packager.h:62
DASH MPD related parameters.
Definition: mpd_params.h:16
Defines a single input/output stream.
Definition: packager.h:69
std::string input
Input/source media file path or network stream URL. Required.
Definition: packager.h:71
HlsParams hls_params
HLS related parameters.
Definition: packager.h:55
ChunkingParams chunking_params
Chunking (segmentation) related parameters.
Definition: packager.h:44
std::string hls_playlist_name
Definition: packager.h:114
HLS related parameters.
Definition: hls_params.h:23
std::string hls_name
Definition: packager.h:108
std::string segment_template
Specifies segment template. Can be empty.
Definition: packager.h:81
bool inject_fake_clock
Definition: packager.h:31
Parameters used for testing.
Definition: packager.h:26
std::string output_format
Definition: packager.h:85
bool dump_stream_info
Whether to dump input stream info.
Definition: packager.h:28
std::string injected_library_version
Definition: packager.h:34
MpdParams mpd_params
DASH MPD related parameters.
Definition: packager.h:53
std::string drm_label
Definition: packager.h:93
MP4 (ISO-BMFF) output related parameters.
AdCueGeneratorParams ad_cue_generator_params
Out of band cuepoint parameters.
Definition: packager.h:47
std::string temp_dir
Specify temporary directory for intermediate temporary files.
Definition: packager.h:40
Cuepoint generator related parameters.
Mp4OutputParams mp4_output_params
MP4 (ISO-BMFF) output related parameters.
Definition: packager.h:42
EncryptionParams encryption_params
Encryption and Decryption Parameters.
Definition: packager.h:58
uint32_t trick_play_factor
Definition: packager.h:97
Chunking (segmentation) related parameters.
std::string output
Definition: packager.h:79
Decryption parameters.
Encryption parameters.
Encrypted stream information that is used to determine stream label.
Packaging parameters.
Definition: packager.h:38
Buffer callback params.
std::string language
Definition: packager.h:104
std::string hls_group_id
Definition: packager.h:111