diff --git a/docs/annotated.html b/docs/annotated.html index 27fdbe1b9c..6d88cf0c6f 100644 --- a/docs/annotated.html +++ b/docs/annotated.html @@ -359,7 +359,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/classes.html b/docs/classes.html index e78bf7a151..6495f4e951 100644 --- a/docs/classes.html +++ b/docs/classes.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/d0/d03/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter.html b/docs/d0/d03/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter.html index dcefc23e6a..596a5f1205 100644 --- a/docs/d0/d03/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter.html +++ b/docs/d0/d03/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter.html @@ -290,7 +290,7 @@ double cluster_length_sec< diff --git a/docs/d0/d06/mpd__flags_8cc_source.html b/docs/d0/d06/mpd__flags_8cc_source.html index 19cace3746..13e92ade66 100644 --- a/docs/d0/d06/mpd__flags_8cc_source.html +++ b/docs/d0/d06/mpd__flags_8cc_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html b/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html index fda86e43ce..d9135d2151 100644 --- a/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html +++ b/docs/d0/d08/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d0e/muxer__options_8h_source.html b/docs/d0/d0e/muxer__options_8h_source.html index 9211a520ec..55aafa569b 100644 --- a/docs/d0/d0e/muxer__options_8h_source.html +++ b/docs/d0/d0e/muxer__options_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html b/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html index 0f75a01cc2..e37e99c51c 100644 --- a/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html +++ b/docs/d0/d0e/structedash__packager_1_1media_1_1StreamDescriptor-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html b/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html index f6fb163180..e41282d56a 100644 --- a/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html +++ b/docs/d0/d1a/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html b/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html index 83f6a61225..e7a583fcda 100644 --- a/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html +++ b/docs/d0/d24/structedash__packager_1_1media_1_1H264DecRefPicMarking-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html b/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html index 6e10e05228..64c9bdc65b 100644 --- a/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html +++ b/docs/d0/d28/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); GetIndexRange(size_t *offset, size_t *size) overrideedash_packager::media::mp4::MultiSegmentSegmentervirtual GetInitRange(size_t *offset, size_t *size) overrideedash_packager::media::mp4::MultiSegmentSegmentervirtual GetReferenceTimeScale() const (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenter - Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)edash_packager::media::mp4::Segmenter + Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)edash_packager::media::mp4::Segmenter moov() (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenterinlineprotected MultiSegmentSegmenter(const MuxerOptions &options, scoped_ptr< FileType > ftyp, scoped_ptr< Movie > moov) (defined in edash_packager::media::mp4::MultiSegmentSegmenter)edash_packager::media::mp4::MultiSegmentSegmenter muxer_listener() (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenterinlineprotected @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d30/mock__mpd__notifier_8h_source.html b/docs/d0/d30/mock__mpd__notifier_8h_source.html index 67e5edb3d6..649501425a 100644 --- a/docs/d0/d30/mock__mpd__notifier_8h_source.html +++ b/docs/d0/d30/mock__mpd__notifier_8h_source.html @@ -148,7 +148,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d32/mp2t__common_8h_source.html b/docs/d0/d32/mp2t__common_8h_source.html index a6761ccc73..7ca3c99ecc 100644 --- a/docs/d0/d32/mp2t__common_8h_source.html +++ b/docs/d0/d32/mp2t__common_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d35/es__descriptor_8cc_source.html b/docs/d0/d35/es__descriptor_8cc_source.html index 015d9f68a0..66b3a7799b 100644 --- a/docs/d0/d35/es__descriptor_8cc_source.html +++ b/docs/d0/d35/es__descriptor_8cc_source.html @@ -286,7 +286,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/classedash__packager_1_1media_1_1SeekHead-members.html b/docs/d0/d3a/classedash__packager_1_1media_1_1SeekHead-members.html index c49a050efb..bb7151407e 100644 --- a/docs/d0/d3a/classedash__packager_1_1media_1_1SeekHead-members.html +++ b/docs/d0/d3a/classedash__packager_1_1media_1_1SeekHead-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html b/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html index bc2047b9d3..c8dfc62d44 100644 --- a/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html +++ b/docs/d0/d3a/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d3a/webm__constants_8h_source.html b/docs/d0/d3a/webm__constants_8h_source.html index dcab75f828..ebf774520f 100644 --- a/docs/d0/d3a/webm__constants_8h_source.html +++ b/docs/d0/d3a/webm__constants_8h_source.html @@ -313,7 +313,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d42/aes__cryptor_8h_source.html b/docs/d0/d42/aes__cryptor_8h_source.html index bc8b45d3fa..e685c7bab0 100644 --- a/docs/d0/d42/aes__cryptor_8h_source.html +++ b/docs/d0/d42/aes__cryptor_8h_source.html @@ -101,87 +101,92 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
12 
13 #include "packager/base/macros.h"
14 #include "packager/base/memory/scoped_ptr.h"
-
15 
-
16 struct aes_key_st;
-
17 typedef struct aes_key_st AES_KEY;
-
18 
-
19 namespace edash_packager {
-
20 namespace media {
-
21 
-
22 // AES cryptor interface. Inherited by various AES encryptor and decryptor
-
23 // implementations.
-
24 class AesCryptor {
-
25  public:
-
26  AesCryptor();
-
27  virtual ~AesCryptor();
-
28 
-
31  virtual bool InitializeWithIv(const std::vector<uint8_t>& key,
-
32  const std::vector<uint8_t>& iv) = 0;
-
33 
-
39  bool Crypt(const std::vector<uint8_t>& text,
-
40  std::vector<uint8_t>* crypt_text);
-
41  bool Crypt(const std::string& text, std::string* crypt_text);
-
43  bool Crypt(const uint8_t* text, size_t text_size, uint8_t* crypt_text) {
-
44  size_t crypt_text_size = text_size;
-
45  return CryptInternal(text, text_size, crypt_text, &crypt_text_size);
-
46  }
-
48 
-
51  virtual bool SetIv(const std::vector<uint8_t>& iv) = 0;
-
52 
-
56  virtual void UpdateIv() = 0;
-
57 
-
59  const std::vector<uint8_t>& iv() const { return iv_; }
-
60 
-
61  protected:
-
62  void set_iv(const std::vector<uint8_t>& iv) { iv_ = iv; }
-
63  const AES_KEY* aes_key() const { return aes_key_.get(); }
-
64  AES_KEY* mutable_aes_key() { return aes_key_.get(); }
-
65 
-
66  private:
-
67  // Internal implementation of crypt function.
-
68  // |text| points to the input text.
-
69  // |text_size| is the size of input text.
-
70  // |crypt_text| points to the output encrypted or decrypted text, depends on
-
71  // whether it is an encryption or decryption. |text| and |crypt_text| can
-
72  // point to the same address for in place encryption/decryption.
-
73  // |crypt_text_size| contains the size of |crypt_text| and it will be updated
-
74  // to contain the actual encrypted/decrypted size for |crypt_text| on success.
-
75  // Return false if the input |crypt_text_size| is not large enough to hold the
-
76  // output |crypt_text| or if there is any error in encryption/decryption.
-
77  virtual bool CryptInternal(const uint8_t* text,
-
78  size_t text_size,
-
79  uint8_t* crypt_text,
-
80  size_t* crypt_text_size) = 0;
-
81 
-
82  // |size| specifies the input text size.
-
83  // Return the number of padding bytes needed.
-
84  // Note: No paddings should be needed except for pkcs5-cbc encryptor.
-
85  virtual size_t NumPaddingBytes(size_t size) const;
-
86 
-
87  // Initialization vector, with size 8 or 16.
-
88  std::vector<uint8_t> iv_;
-
89  // Openssl AES_KEY.
-
90  scoped_ptr<AES_KEY> aes_key_;
-
91 
-
92  DISALLOW_COPY_AND_ASSIGN(AesCryptor);
-
93 };
+
15 #include "packager/media/base/fourccs.h"
+
16 
+
17 struct aes_key_st;
+
18 typedef struct aes_key_st AES_KEY;
+
19 
+
20 namespace edash_packager {
+
21 namespace media {
+
22 
+
23 // AES cryptor interface. Inherited by various AES encryptor and decryptor
+
24 // implementations.
+
25 class AesCryptor {
+
26  public:
+
27  AesCryptor();
+
28  virtual ~AesCryptor();
+
29 
+
32  virtual bool InitializeWithIv(const std::vector<uint8_t>& key,
+
33  const std::vector<uint8_t>& iv) = 0;
+
34 
+
40  bool Crypt(const std::vector<uint8_t>& text,
+
41  std::vector<uint8_t>* crypt_text);
+
42  bool Crypt(const std::string& text, std::string* crypt_text);
+
44  bool Crypt(const uint8_t* text, size_t text_size, uint8_t* crypt_text) {
+
45  size_t crypt_text_size = text_size;
+
46  return CryptInternal(text, text_size, crypt_text, &crypt_text_size);
+
47  }
+
49 
+
52  virtual bool SetIv(const std::vector<uint8_t>& iv) = 0;
+
53 
+
57  virtual void UpdateIv() = 0;
+
58 
+
60  const std::vector<uint8_t>& iv() const { return iv_; }
+
61 
+
66  static bool GenerateRandomIv(FourCC protection_scheme,
+
67  std::vector<uint8_t>* iv);
+
68 
+
69  protected:
+
70  void set_iv(const std::vector<uint8_t>& iv) { iv_ = iv; }
+
71  const AES_KEY* aes_key() const { return aes_key_.get(); }
+
72  AES_KEY* mutable_aes_key() { return aes_key_.get(); }
+
73 
+
74  private:
+
75  // Internal implementation of crypt function.
+
76  // |text| points to the input text.
+
77  // |text_size| is the size of input text.
+
78  // |crypt_text| points to the output encrypted or decrypted text, depends on
+
79  // whether it is an encryption or decryption. |text| and |crypt_text| can
+
80  // point to the same address for in place encryption/decryption.
+
81  // |crypt_text_size| contains the size of |crypt_text| and it will be updated
+
82  // to contain the actual encrypted/decrypted size for |crypt_text| on success.
+
83  // Return false if the input |crypt_text_size| is not large enough to hold the
+
84  // output |crypt_text| or if there is any error in encryption/decryption.
+
85  virtual bool CryptInternal(const uint8_t* text,
+
86  size_t text_size,
+
87  uint8_t* crypt_text,
+
88  size_t* crypt_text_size) = 0;
+
89 
+
90  // |size| specifies the input text size.
+
91  // Return the number of padding bytes needed.
+
92  // Note: No paddings should be needed except for pkcs5-cbc encryptor.
+
93  virtual size_t NumPaddingBytes(size_t size) const;
94 
-
95 } // namespace media
-
96 } // namespace edash_packager
-
97 
-
98 #endif // PACKAGER_MEDIA_BASE_AES_CRYPTOR_H_
-
99 
-
100 
-
Definition: aes_cryptor.h:24
+
95  // Initialization vector, with size 8 or 16.
+
96  std::vector<uint8_t> iv_;
+
97  // Openssl AES_KEY.
+
98  scoped_ptr<AES_KEY> aes_key_;
+
99 
+
100  DISALLOW_COPY_AND_ASSIGN(AesCryptor);
+
101 };
+
102 
+
103 } // namespace media
+
104 } // namespace edash_packager
+
105 
+
106 #endif // PACKAGER_MEDIA_BASE_AES_CRYPTOR_H_
+
107 
+
108 
+
Definition: aes_cryptor.h:25
+
static bool GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)
Definition: aes_cryptor.cc:58
virtual bool SetIv(const std::vector< uint8_t > &iv)=0
virtual bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv)=0
virtual void UpdateIv()=0
-
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:59
-
bool Crypt(const uint8_t *text, size_t text_size, uint8_t *crypt_text)
Definition: aes_cryptor.h:43
+
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:60
+
bool Crypt(const uint8_t *text, size_t text_size, uint8_t *crypt_text)
Definition: aes_cryptor.h:44
diff --git a/docs/d0/d42/widevine__encryption__flags_8cc_source.html b/docs/d0/d42/widevine__encryption__flags_8cc_source.html index 420f8a5a78..e8b1d98b86 100644 --- a/docs/d0/d42/widevine__encryption__flags_8cc_source.html +++ b/docs/d0/d42/widevine__encryption__flags_8cc_source.html @@ -258,7 +258,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d46/fourccs_8h_source.html b/docs/d0/d46/fourccs_8h_source.html index 9e76e5a2b0..4fe2ece7e5 100644 --- a/docs/d0/d46/fourccs_8h_source.html +++ b/docs/d0/d46/fourccs_8h_source.html @@ -110,134 +110,136 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
21  FOURCC_avcC = 0x61766343,
22  FOURCC_bloc = 0x626C6F63,
23  FOURCC_cbc1 = 0x63626331,
-
24  FOURCC_cenc = 0x63656e63,
-
25  FOURCC_co64 = 0x636f3634,
-
26  FOURCC_ctim = 0x6374696d,
-
27  FOURCC_ctts = 0x63747473,
-
28  FOURCC_dac3 = 0x64616333,
-
29  FOURCC_dash = 0x64617368,
-
30  FOURCC_ddts = 0x64647473,
-
31  FOURCC_dec3 = 0x64656333,
-
32  FOURCC_dinf = 0x64696e66,
-
33  FOURCC_dref = 0x64726566,
-
34  FOURCC_dtsc = 0x64747363,
-
35  FOURCC_dtse = 0x64747365,
-
36  FOURCC_dtsh = 0x64747368,
-
37  FOURCC_dtsl = 0x6474736c,
-
38  FOURCC_dtsm = 0x6474732d, // "dts-"
-
39  FOURCC_dtsp = 0x6474732b, // "dts+"
-
40  FOURCC_ec_3 = 0x65632d33, // "ec-3"
-
41  FOURCC_edts = 0x65647473,
-
42  FOURCC_elst = 0x656c7374,
-
43  FOURCC_enca = 0x656e6361,
-
44  FOURCC_encv = 0x656e6376,
-
45  FOURCC_esds = 0x65736473,
-
46  FOURCC_free = 0x66726565,
-
47  FOURCC_frma = 0x66726d61,
-
48  FOURCC_ftyp = 0x66747970,
-
49  FOURCC_hdlr = 0x68646c72,
-
50  FOURCC_hev1 = 0x68657631,
-
51  FOURCC_hint = 0x68696e74,
-
52  FOURCC_hvc1 = 0x68766331,
-
53  FOURCC_hvcC = 0x68766343,
-
54  FOURCC_iden = 0x6964656e,
-
55  FOURCC_iso6 = 0x69736f36,
-
56  FOURCC_iods = 0x696f6473,
-
57  FOURCC_mdat = 0x6d646174,
-
58  FOURCC_mdhd = 0x6d646864,
-
59  FOURCC_mdia = 0x6d646961,
-
60  FOURCC_meco = 0x6d65636f,
-
61  FOURCC_mehd = 0x6d656864,
-
62  FOURCC_meta = 0x6d657461,
-
63  FOURCC_mfhd = 0x6d666864,
-
64  FOURCC_mfra = 0x6d667261,
-
65  FOURCC_minf = 0x6d696e66,
-
66  FOURCC_moof = 0x6d6f6f66,
-
67  FOURCC_moov = 0x6d6f6f76,
-
68  FOURCC_mp41 = 0x6d703431,
-
69  FOURCC_mp4a = 0x6d703461,
-
70  FOURCC_mp4v = 0x6d703476,
-
71  FOURCC_mvex = 0x6d766578,
-
72  FOURCC_mvhd = 0x6d766864,
-
73  FOURCC_pasp = 0x70617370,
-
74  FOURCC_payl = 0x7061796c,
-
75  FOURCC_pdin = 0x7064696e,
-
76  FOURCC_prft = 0x70726674,
-
77  FOURCC_pssh = 0x70737368,
-
78  FOURCC_saio = 0x7361696f,
-
79  FOURCC_saiz = 0x7361697a,
-
80  FOURCC_sbgp = 0x73626770,
-
81  FOURCC_schi = 0x73636869,
-
82  FOURCC_schm = 0x7363686d,
-
83  FOURCC_sdtp = 0x73647470,
-
84  FOURCC_seig = 0x73656967,
-
85  FOURCC_senc = 0x73656e63,
-
86  FOURCC_sgpd = 0x73677064,
-
87  FOURCC_sidx = 0x73696478,
-
88  FOURCC_sinf = 0x73696e66,
-
89  FOURCC_skip = 0x736b6970,
-
90  FOURCC_smhd = 0x736d6864,
-
91  FOURCC_soun = 0x736f756e,
-
92  FOURCC_ssix = 0x73736978,
-
93  FOURCC_stbl = 0x7374626c,
-
94  FOURCC_stco = 0x7374636f,
-
95  FOURCC_sthd = 0x73746864,
-
96  FOURCC_stsc = 0x73747363,
-
97  FOURCC_stsd = 0x73747364,
-
98  FOURCC_stss = 0x73747373,
-
99  FOURCC_stsz = 0x7374737a,
-
100  FOURCC_sttg = 0x73747467,
-
101  FOURCC_stts = 0x73747473,
-
102  FOURCC_styp = 0x73747970,
-
103  FOURCC_stz2 = 0x73747a32,
-
104  FOURCC_subt = 0x73756274,
-
105  FOURCC_tenc = 0x74656e63,
-
106  FOURCC_text = 0x74657874,
-
107  FOURCC_tfdt = 0x74666474,
-
108  FOURCC_tfhd = 0x74666864,
-
109  FOURCC_tkhd = 0x746b6864,
-
110  FOURCC_traf = 0x74726166,
-
111  FOURCC_trak = 0x7472616b,
-
112  FOURCC_trex = 0x74726578,
-
113  FOURCC_trun = 0x7472756e,
-
114  FOURCC_udta = 0x75647461,
-
115  FOURCC_url = 0x75726c20, // "url "
-
116  FOURCC_urn = 0x75726e20, // "urn "
-
117  FOURCC_uuid = 0x75756964,
-
118  FOURCC_vide = 0x76696465,
-
119  FOURCC_vlab = 0x766c6162,
-
120  FOURCC_vmhd = 0x766d6864,
-
121  FOURCC_vp08 = 0x76703038,
-
122  FOURCC_vp09 = 0x76703039,
-
123  FOURCC_vp10 = 0x76703130,
-
124  FOURCC_vpcC = 0x76706343,
-
125  FOURCC_vsid = 0x76736964,
-
126  FOURCC_vttC = 0x76747443,
-
127  FOURCC_vtta = 0x76747461,
-
128  FOURCC_vttc = 0x76747463,
-
129  FOURCC_vtte = 0x76747465,
-
130  FOURCC_wide = 0x77696465,
-
131  FOURCC_wvtt = 0x77767474,
-
132 };
-
133 
-
134 const inline std::string FourCCToString(FourCC fourcc) {
-
135  char buf[5];
-
136  buf[0] = (fourcc >> 24) & 0xff;
-
137  buf[1] = (fourcc >> 16) & 0xff;
-
138  buf[2] = (fourcc >> 8) & 0xff;
-
139  buf[3] = (fourcc) & 0xff;
-
140  buf[4] = 0;
-
141  return std::string(buf);
-
142 }
-
143 
-
144 } // namespace media
-
145 } // namespace edash_packager
-
146 
-
147 #endif // PACKAGER_MEDIA_BASE_FOURCCS_H_
+
24  FOURCC_cbcs = 0x63626373,
+
25  FOURCC_cenc = 0x63656e63,
+
26  FOURCC_cens = 0x63656e73,
+
27  FOURCC_co64 = 0x636f3634,
+
28  FOURCC_ctim = 0x6374696d,
+
29  FOURCC_ctts = 0x63747473,
+
30  FOURCC_dac3 = 0x64616333,
+
31  FOURCC_dash = 0x64617368,
+
32  FOURCC_ddts = 0x64647473,
+
33  FOURCC_dec3 = 0x64656333,
+
34  FOURCC_dinf = 0x64696e66,
+
35  FOURCC_dref = 0x64726566,
+
36  FOURCC_dtsc = 0x64747363,
+
37  FOURCC_dtse = 0x64747365,
+
38  FOURCC_dtsh = 0x64747368,
+
39  FOURCC_dtsl = 0x6474736c,
+
40  FOURCC_dtsm = 0x6474732d, // "dts-"
+
41  FOURCC_dtsp = 0x6474732b, // "dts+"
+
42  FOURCC_ec_3 = 0x65632d33, // "ec-3"
+
43  FOURCC_edts = 0x65647473,
+
44  FOURCC_elst = 0x656c7374,
+
45  FOURCC_enca = 0x656e6361,
+
46  FOURCC_encv = 0x656e6376,
+
47  FOURCC_esds = 0x65736473,
+
48  FOURCC_free = 0x66726565,
+
49  FOURCC_frma = 0x66726d61,
+
50  FOURCC_ftyp = 0x66747970,
+
51  FOURCC_hdlr = 0x68646c72,
+
52  FOURCC_hev1 = 0x68657631,
+
53  FOURCC_hint = 0x68696e74,
+
54  FOURCC_hvc1 = 0x68766331,
+
55  FOURCC_hvcC = 0x68766343,
+
56  FOURCC_iden = 0x6964656e,
+
57  FOURCC_iso6 = 0x69736f36,
+
58  FOURCC_iods = 0x696f6473,
+
59  FOURCC_mdat = 0x6d646174,
+
60  FOURCC_mdhd = 0x6d646864,
+
61  FOURCC_mdia = 0x6d646961,
+
62  FOURCC_meco = 0x6d65636f,
+
63  FOURCC_mehd = 0x6d656864,
+
64  FOURCC_meta = 0x6d657461,
+
65  FOURCC_mfhd = 0x6d666864,
+
66  FOURCC_mfra = 0x6d667261,
+
67  FOURCC_minf = 0x6d696e66,
+
68  FOURCC_moof = 0x6d6f6f66,
+
69  FOURCC_moov = 0x6d6f6f76,
+
70  FOURCC_mp41 = 0x6d703431,
+
71  FOURCC_mp4a = 0x6d703461,
+
72  FOURCC_mp4v = 0x6d703476,
+
73  FOURCC_mvex = 0x6d766578,
+
74  FOURCC_mvhd = 0x6d766864,
+
75  FOURCC_pasp = 0x70617370,
+
76  FOURCC_payl = 0x7061796c,
+
77  FOURCC_pdin = 0x7064696e,
+
78  FOURCC_prft = 0x70726674,
+
79  FOURCC_pssh = 0x70737368,
+
80  FOURCC_saio = 0x7361696f,
+
81  FOURCC_saiz = 0x7361697a,
+
82  FOURCC_sbgp = 0x73626770,
+
83  FOURCC_schi = 0x73636869,
+
84  FOURCC_schm = 0x7363686d,
+
85  FOURCC_sdtp = 0x73647470,
+
86  FOURCC_seig = 0x73656967,
+
87  FOURCC_senc = 0x73656e63,
+
88  FOURCC_sgpd = 0x73677064,
+
89  FOURCC_sidx = 0x73696478,
+
90  FOURCC_sinf = 0x73696e66,
+
91  FOURCC_skip = 0x736b6970,
+
92  FOURCC_smhd = 0x736d6864,
+
93  FOURCC_soun = 0x736f756e,
+
94  FOURCC_ssix = 0x73736978,
+
95  FOURCC_stbl = 0x7374626c,
+
96  FOURCC_stco = 0x7374636f,
+
97  FOURCC_sthd = 0x73746864,
+
98  FOURCC_stsc = 0x73747363,
+
99  FOURCC_stsd = 0x73747364,
+
100  FOURCC_stss = 0x73747373,
+
101  FOURCC_stsz = 0x7374737a,
+
102  FOURCC_sttg = 0x73747467,
+
103  FOURCC_stts = 0x73747473,
+
104  FOURCC_styp = 0x73747970,
+
105  FOURCC_stz2 = 0x73747a32,
+
106  FOURCC_subt = 0x73756274,
+
107  FOURCC_tenc = 0x74656e63,
+
108  FOURCC_text = 0x74657874,
+
109  FOURCC_tfdt = 0x74666474,
+
110  FOURCC_tfhd = 0x74666864,
+
111  FOURCC_tkhd = 0x746b6864,
+
112  FOURCC_traf = 0x74726166,
+
113  FOURCC_trak = 0x7472616b,
+
114  FOURCC_trex = 0x74726578,
+
115  FOURCC_trun = 0x7472756e,
+
116  FOURCC_udta = 0x75647461,
+
117  FOURCC_url = 0x75726c20, // "url "
+
118  FOURCC_urn = 0x75726e20, // "urn "
+
119  FOURCC_uuid = 0x75756964,
+
120  FOURCC_vide = 0x76696465,
+
121  FOURCC_vlab = 0x766c6162,
+
122  FOURCC_vmhd = 0x766d6864,
+
123  FOURCC_vp08 = 0x76703038,
+
124  FOURCC_vp09 = 0x76703039,
+
125  FOURCC_vp10 = 0x76703130,
+
126  FOURCC_vpcC = 0x76706343,
+
127  FOURCC_vsid = 0x76736964,
+
128  FOURCC_vttC = 0x76747443,
+
129  FOURCC_vtta = 0x76747461,
+
130  FOURCC_vttc = 0x76747463,
+
131  FOURCC_vtte = 0x76747465,
+
132  FOURCC_wide = 0x77696465,
+
133  FOURCC_wvtt = 0x77767474,
+
134 };
+
135 
+
136 const inline std::string FourCCToString(FourCC fourcc) {
+
137  char buf[5];
+
138  buf[0] = (fourcc >> 24) & 0xff;
+
139  buf[1] = (fourcc >> 16) & 0xff;
+
140  buf[2] = (fourcc >> 8) & 0xff;
+
141  buf[3] = (fourcc) & 0xff;
+
142  buf[4] = 0;
+
143  return std::string(buf);
+
144 }
+
145 
+
146 } // namespace media
+
147 } // namespace edash_packager
+
148 
+
149 #endif // PACKAGER_MEDIA_BASE_FOURCCS_H_
diff --git a/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html b/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html index ed80de25d8..a815d250c5 100644 --- a/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html +++ b/docs/d0/d49/vod__media__info__dump__muxer__listener_8cc_source.html @@ -224,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html b/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html index 279b3af255..418d99babb 100644 --- a/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html +++ b/docs/d0/d4a/structedash__packager_1_1media_1_1mp4_1_1SampleSize-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4c/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox-members.html b/docs/d0/d4c/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox-members.html index 7be40c7e7f..80b78210ff 100644 --- a/docs/d0/d4c/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox-members.html +++ b/docs/d0/d4c/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d4e/libcrypto__threading_8cc_source.html b/docs/d0/d4e/libcrypto__threading_8cc_source.html index c2fe9fb91d..8fbcfc5f1c 100644 --- a/docs/d0/d4e/libcrypto__threading_8cc_source.html +++ b/docs/d0/d4e/libcrypto__threading_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d53/classedash__packager_1_1media_1_1AesPatternCryptor-members.html b/docs/d0/d53/classedash__packager_1_1media_1_1AesPatternCryptor-members.html index fb37920a89..e43300d9b3 100644 --- a/docs/d0/d53/classedash__packager_1_1media_1_1AesPatternCryptor-members.html +++ b/docs/d0/d53/classedash__packager_1_1media_1_1AesPatternCryptor-members.html @@ -101,20 +101,21 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Crypt(const std::string &text, std::string *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const uint8_t *text, size_t text_size, uint8_t *crypt_text)edash_packager::media::AesCryptorinline CryptInternal(const uint8_t *text, size_t text_size, uint8_t *crypt_text, size_t *crypt_text_size) override (defined in edash_packager::media::AesPatternCryptor)edash_packager::media::AesPatternCryptorprotectedvirtual - InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesPatternCryptorvirtual - iv() const edash_packager::media::AesCryptorinline - kDontUseConstantIv enum value (defined in edash_packager::media::AesPatternCryptor)edash_packager::media::AesPatternCryptor - kUseConstantIv enum value (defined in edash_packager::media::AesPatternCryptor)edash_packager::media::AesPatternCryptor - mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected - set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected - SetIv(const std::vector< uint8_t > &iv) overrideedash_packager::media::AesPatternCryptorvirtual - UpdateIv() overrideedash_packager::media::AesPatternCryptorvirtual - ~AesCryptor() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorvirtual - ~AesPatternCryptor() override (defined in edash_packager::media::AesPatternCryptor)edash_packager::media::AesPatternCryptor + GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)edash_packager::media::AesCryptorstatic + InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesPatternCryptorvirtual + iv() const edash_packager::media::AesCryptorinline + kDontUseConstantIv enum value (defined in edash_packager::media::AesPatternCryptor)edash_packager::media::AesPatternCryptor + kUseConstantIv enum value (defined in edash_packager::media::AesPatternCryptor)edash_packager::media::AesPatternCryptor + mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected + set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected + SetIv(const std::vector< uint8_t > &iv) overrideedash_packager::media::AesPatternCryptorvirtual + UpdateIv() overrideedash_packager::media::AesPatternCryptorvirtual + ~AesCryptor() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorvirtual + ~AesPatternCryptor() override (defined in edash_packager::media::AesPatternCryptor)edash_packager::media::AesPatternCryptor diff --git a/docs/d0/d5b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html b/docs/d0/d5b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html index 4f415090cf..95284c0955 100644 --- a/docs/d0/d5b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html +++ b/docs/d0/d5b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d65/structedash__packager_1_1media_1_1mp4_1_1AC3Specific.html b/docs/d0/d65/structedash__packager_1_1media_1_1mp4_1_1AC3Specific.html index 0fece2b217..ddc02a4621 100644 --- a/docs/d0/d65/structedash__packager_1_1media_1_1mp4_1_1AC3Specific.html +++ b/docs/d0/d65/structedash__packager_1_1media_1_1mp4_1_1AC3Specific.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html b/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html index 80f66d5cd8..7fb86d704a 100644 --- a/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html +++ b/docs/d0/d7d/classedash__packager_1_1media_1_1H264Parser-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d7d/decryptor__source_8h_source.html b/docs/d0/d7d/decryptor__source_8h_source.html index 3093003918..dcf945b0be 100644 --- a/docs/d0/d7d/decryptor__source_8h_source.html +++ b/docs/d0/d7d/decryptor__source_8h_source.html @@ -126,14 +126,14 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
38 } // namespace edash_packager
39 
40 #endif // MEDIA_BASE_DECRYPTOR_SOURCE_H_
-
Definition: aes_cryptor.h:24
+
Definition: aes_cryptor.h:25
DecryptorSource wraps KeySource and is responsible for decryptor management.
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
diff --git a/docs/d0/d86/classedash__packager_1_1media_1_1FixedKeySource.html b/docs/d0/d86/classedash__packager_1_1media_1_1FixedKeySource.html index b0653df03a..fba3ea105d 100644 --- a/docs/d0/d86/classedash__packager_1_1media_1_1FixedKeySource.html +++ b/docs/d0/d86/classedash__packager_1_1media_1_1FixedKeySource.html @@ -479,7 +479,7 @@ Additional Inherited Members diff --git a/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html b/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html index fb34d9737d..84a1ea59c0 100644 --- a/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html +++ b/docs/d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html @@ -120,7 +120,7 @@ std::vector< uint8_t >  diff --git a/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html b/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html index 7118261ab9..5173615fbc 100644 --- a/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html +++ b/docs/d0/d92/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html b/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html index 070146e2ef..ad38683378 100644 --- a/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html +++ b/docs/d0/d93/structedash__packager_1_1media_1_1mp4_1_1SampleTable-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html b/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html index 2a65a47b99..bd13405479 100644 --- a/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html +++ b/docs/d0/d96/structedash__packager_1_1ContentProtectionElement.html @@ -123,7 +123,7 @@ std::vector< diff --git a/docs/d0/d96/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html b/docs/d0/d96/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html index c9d02411c1..04a4aa8f5d 100644 --- a/docs/d0/d96/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html +++ b/docs/d0/d96/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html b/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html index 3befe24685..ed87839547 100644 --- a/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html +++ b/docs/d0/da4/classedash__packager_1_1media_1_1WebMVideoClient-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da6/stream__descriptor_8cc_source.html b/docs/d0/da6/stream__descriptor_8cc_source.html index 48f35c73b7..2dc295ff97 100644 --- a/docs/d0/da6/stream__descriptor_8cc_source.html +++ b/docs/d0/da6/stream__descriptor_8cc_source.html @@ -243,7 +243,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/da9/classedash__packager_1_1MockRepresentation.html b/docs/d0/da9/classedash__packager_1_1MockRepresentation.html index 6cc2b09e55..cb3847d62f 100644 --- a/docs/d0/da9/classedash__packager_1_1MockRepresentation.html +++ b/docs/d0/da9/classedash__packager_1_1MockRepresentation.html @@ -160,7 +160,7 @@ Additional Inherited Members diff --git a/docs/d0/da9/classedash__packager_1_1media_1_1webm_1_1WebMMuxer-members.html b/docs/d0/da9/classedash__packager_1_1media_1_1webm_1_1WebMMuxer-members.html index 1f0dc41f02..dec782ce83 100644 --- a/docs/d0/da9/classedash__packager_1_1media_1_1webm_1_1WebMMuxer-members.html +++ b/docs/d0/da9/classedash__packager_1_1media_1_1webm_1_1WebMMuxer-members.html @@ -99,15 +99,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); clock() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected crypto_period_duration_in_seconds() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected encryption_key_source() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - encryption_mode() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - max_sd_pixels() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - Muxer(const MuxerOptions &options) (defined in edash_packager::media::Muxer)edash_packager::media::Muxerexplicit - muxer_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - options() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - progress_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + max_sd_pixels() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + Muxer(const MuxerOptions &options) (defined in edash_packager::media::Muxer)edash_packager::media::Muxerexplicit + muxer_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + options() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + progress_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + protection_scheme() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected Run()edash_packager::media::Muxer set_clock(base::Clock *clock)edash_packager::media::Muxerinline - SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)edash_packager::media::Muxer + SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)edash_packager::media::Muxer SetMuxerListener(scoped_ptr< MuxerListener > muxer_listener)edash_packager::media::Muxer SetProgressListener(scoped_ptr< ProgressListener > progress_listener)edash_packager::media::Muxer streams() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinline @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html b/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html index 2caa64773a..e4c7c7c762 100644 --- a/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html +++ b/docs/d0/dae/classedash__packager_1_1media_1_1BufferWriter-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/db7/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific.html b/docs/d0/db7/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific.html index b778f4f232..13cfcb55df 100644 --- a/docs/d0/db7/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific.html +++ b/docs/d0/db7/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html b/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html index f3a8f8b0f1..5a4b34f6f4 100644 --- a/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html +++ b/docs/d0/dd1/classedash__packager_1_1SimpleMpdNotifier-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html b/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html index 18d7b61d7e..f6fcca0376 100644 --- a/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html +++ b/docs/d0/dd4/structedash__packager_1_1media_1_1SubsampleEntry-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html index adf707e0bd..17332412f9 100644 --- a/docs/d0/dd6/webm__crypto__helpers_8cc_source.html +++ b/docs/d0/dd6/webm__crypto__helpers_8cc_source.html @@ -95,70 +95,68 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
6 
7 #include "packager/base/logging.h"
8 #include "packager/base/sys_byteorder.h"
-
9 #include "packager/media/base/encryption_modes.h"
-
10 #include "packager/media/formats/webm/webm_constants.h"
-
11 
-
12 namespace edash_packager {
-
13 namespace media {
-
14 namespace {
-
15 
-
16 // Generates a 16 byte CTR counter block. The CTR counter block format is a
-
17 // CTR IV appended with a CTR block counter. |iv| is an 8 byte CTR IV.
-
18 // |iv_size| is the size of |iv| in btyes. Returns a string of
-
19 // kDecryptionKeySize bytes.
-
20 std::string GenerateWebMCounterBlock(const uint8_t* iv, int iv_size) {
-
21  std::string counter_block(reinterpret_cast<const char*>(iv), iv_size);
-
22  counter_block.append(DecryptConfig::kDecryptionKeySize - iv_size, 0);
-
23  return counter_block;
-
24 }
-
25 
-
26 } // namespace anonymous
-
27 
-
28 bool WebMCreateDecryptConfig(const uint8_t* data,
-
29  int data_size,
-
30  const uint8_t* key_id,
-
31  int key_id_size,
-
32  scoped_ptr<DecryptConfig>* decrypt_config,
-
33  int* data_offset) {
-
34  if (data_size < kWebMSignalByteSize) {
-
35  DVLOG(1) << "Got a block from an encrypted stream with no data.";
-
36  return false;
-
37  }
-
38 
-
39  uint8_t signal_byte = data[0];
-
40  int frame_offset = sizeof(signal_byte);
-
41 
-
42  // Setting the DecryptConfig object of the buffer while leaving the
-
43  // initialization vector empty will tell the decryptor that the frame is
-
44  // unencrypted.
-
45  std::string counter_block;
-
46 
-
47  if (signal_byte & kWebMFlagEncryptedFrame) {
-
48  if (data_size < kWebMSignalByteSize + kWebMIvSize) {
-
49  DVLOG(1) << "Got an encrypted block with not enough data " << data_size;
-
50  return false;
-
51  }
-
52  counter_block = GenerateWebMCounterBlock(data + frame_offset, kWebMIvSize);
-
53  frame_offset += kWebMIvSize;
-
54  }
-
55 
-
56  decrypt_config->reset(new DecryptConfig(
-
57  std::vector<uint8_t>(key_id, key_id + key_id_size),
-
58  std::vector<uint8_t>(counter_block.begin(), counter_block.end()),
-
59  std::vector<SubsampleEntry>(),
-
60  kEncryptionModeAesCtr));
-
61  *data_offset = frame_offset;
-
62 
-
63  return true;
-
64 }
-
65 
-
66 } // namespace media
-
67 } // namespace edash_packager
+
9 #include "packager/media/formats/webm/webm_constants.h"
+
10 
+
11 namespace edash_packager {
+
12 namespace media {
+
13 namespace {
+
14 
+
15 // Generates a 16 byte CTR counter block. The CTR counter block format is a
+
16 // CTR IV appended with a CTR block counter. |iv| is an 8 byte CTR IV.
+
17 // |iv_size| is the size of |iv| in btyes. Returns a string of
+
18 // kDecryptionKeySize bytes.
+
19 std::string GenerateWebMCounterBlock(const uint8_t* iv, int iv_size) {
+
20  std::string counter_block(reinterpret_cast<const char*>(iv), iv_size);
+
21  counter_block.append(DecryptConfig::kDecryptionKeySize - iv_size, 0);
+
22  return counter_block;
+
23 }
+
24 
+
25 } // namespace anonymous
+
26 
+
27 bool WebMCreateDecryptConfig(const uint8_t* data,
+
28  int data_size,
+
29  const uint8_t* key_id,
+
30  int key_id_size,
+
31  scoped_ptr<DecryptConfig>* decrypt_config,
+
32  int* data_offset) {
+
33  if (data_size < kWebMSignalByteSize) {
+
34  DVLOG(1) << "Got a block from an encrypted stream with no data.";
+
35  return false;
+
36  }
+
37 
+
38  uint8_t signal_byte = data[0];
+
39  int frame_offset = sizeof(signal_byte);
+
40 
+
41  // Setting the DecryptConfig object of the buffer while leaving the
+
42  // initialization vector empty will tell the decryptor that the frame is
+
43  // unencrypted.
+
44  std::string counter_block;
+
45 
+
46  if (signal_byte & kWebMFlagEncryptedFrame) {
+
47  if (data_size < kWebMSignalByteSize + kWebMIvSize) {
+
48  DVLOG(1) << "Got an encrypted block with not enough data " << data_size;
+
49  return false;
+
50  }
+
51  counter_block = GenerateWebMCounterBlock(data + frame_offset, kWebMIvSize);
+
52  frame_offset += kWebMIvSize;
+
53  }
+
54 
+
55  decrypt_config->reset(new DecryptConfig(
+
56  std::vector<uint8_t>(key_id, key_id + key_id_size),
+
57  std::vector<uint8_t>(counter_block.begin(), counter_block.end()),
+
58  std::vector<SubsampleEntry>()));
+
59  *data_offset = frame_offset;
+
60 
+
61  return true;
+
62 }
+
63 
+
64 } // namespace media
+
65 } // namespace edash_packager
static const size_t kDecryptionKeySize
Keys are always 128 bits.
diff --git a/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html b/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html index ca696c754b..4414281e99 100644 --- a/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html +++ b/docs/d0/ddc/structedash__packager_1_1media_1_1FileCloser.html @@ -112,7 +112,7 @@ void operator() ( diff --git a/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html b/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html index 0ef79cd4f7..f9810e989d 100644 --- a/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html +++ b/docs/d0/de0/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html b/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html index 9d6c6a97fd..1741d84e9d 100644 --- a/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html +++ b/docs/d0/de4/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html b/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html index 124a91afc7..6467350469 100644 --- a/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html +++ b/docs/d0/de6/classedash__packager_1_1media_1_1TracksBuilder.html @@ -123,7 +123,7 @@ std::vector< uint8_t >  diff --git a/docs/d0/de8/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox-members.html b/docs/d0/de8/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox-members.html index 3776152c84..3d4ec2590c 100644 --- a/docs/d0/de8/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox-members.html +++ b/docs/d0/de8/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html b/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html index f67d0402df..767c26f8a9 100644 --- a/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html +++ b/docs/d0/dea/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dee/segmenter__test__base_8h_source.html b/docs/d0/dee/segmenter__test__base_8h_source.html index d44a115721..a3b4a00be1 100644 --- a/docs/d0/dee/segmenter__test__base_8h_source.html +++ b/docs/d0/dee/segmenter__test__base_8h_source.html @@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/df3/packager__util_8cc_source.html b/docs/d0/df3/packager__util_8cc_source.html index 08101a1570..ab52507f79 100644 --- a/docs/d0/df3/packager__util_8cc_source.html +++ b/docs/d0/df3/packager__util_8cc_source.html @@ -332,7 +332,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html b/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html index f93a732a67..a1b7931fda 100644 --- a/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html +++ b/docs/d0/df6/structedash__packager_1_1media_1_1mp4_1_1MovieExtends-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html b/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html index 9a7323c3c8..387fbdcf19 100644 --- a/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html +++ b/docs/d0/dfa/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample.html @@ -116,7 +116,7 @@ scoped_refptr< diff --git a/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html b/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html index 085cf76229..177720fbef 100644 --- a/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html +++ b/docs/d1/d02/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d13/status_8h_source.html b/docs/d1/d13/status_8h_source.html index 81a9a7b02b..eebc8a8ba6 100644 --- a/docs/d1/d13/status_8h_source.html +++ b/docs/d1/d13/status_8h_source.html @@ -239,7 +239,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html b/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html index 956efd05be..671ea5f779 100644 --- a/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html +++ b/docs/d1/d16/structedash__packager_1_1xml_1_1XmlDeleter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html b/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html index 0ba0192cb4..2ac20d8c02 100644 --- a/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html +++ b/docs/d1/d1c/two__pass__single__segment__segmenter_8cc_source.html @@ -275,7 +275,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d1d/muxer__flags_8cc_source.html b/docs/d1/d1d/muxer__flags_8cc_source.html index 49848c7528..ffaee8db57 100644 --- a/docs/d1/d1d/muxer__flags_8cc_source.html +++ b/docs/d1/d1d/muxer__flags_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d27/key__fetcher_8h_source.html b/docs/d1/d27/key__fetcher_8h_source.html index 59f4c5e318..a92b9ddf9c 100644 --- a/docs/d1/d27/key__fetcher_8h_source.html +++ b/docs/d1/d27/key__fetcher_8h_source.html @@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html b/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html index 9e358538f0..2a93d186c4 100644 --- a/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html +++ b/docs/d1/d28/classedash__packager_1_1media_1_1WebMTracksParser-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html b/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html index bdf4a06e8a..2070a08e04 100644 --- a/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html +++ b/docs/d1/d28/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2a/decryptor__source_8cc_source.html b/docs/d1/d2a/decryptor__source_8cc_source.html index 0376cf5bbf..6c8a7f8060 100644 --- a/docs/d1/d2a/decryptor__source_8cc_source.html +++ b/docs/d1/d2a/decryptor__source_8cc_source.html @@ -97,100 +97,101 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
8 
9 #include "packager/base/logging.h"
10 #include "packager/base/stl_util.h"
-
11 
-
12 namespace edash_packager {
-
13 namespace media {
-
14 
-
15 DecryptorSource::DecryptorSource(KeySource* key_source)
-
16  : key_source_(key_source) {
-
17  CHECK(key_source);
-
18 }
-
19 DecryptorSource::~DecryptorSource() {
-
20  STLDeleteValues(&decryptor_map_);
-
21 }
-
22 
-
23 bool DecryptorSource::DecryptSampleBuffer(const DecryptConfig* decrypt_config,
-
24  uint8_t* buffer,
-
25  size_t buffer_size) {
-
26  DCHECK(decrypt_config);
-
27  DCHECK(buffer);
-
28 
-
29  // Get the decryptor object.
-
30  AesCryptor* decryptor;
-
31  auto found = decryptor_map_.find(decrypt_config->key_id());
-
32  if (found == decryptor_map_.end()) {
-
33  // Create new AesDecryptor based on decryption mode.
-
34  EncryptionKey key;
-
35  Status status(key_source_->GetKey(decrypt_config->key_id(), &key));
-
36  if (!status.ok()) {
-
37  LOG(ERROR) << "Error retrieving decryption key: " << status;
-
38  return false;
-
39  }
-
40 
-
41  scoped_ptr<AesCryptor> aes_decryptor;
-
42  switch (decrypt_config->decryption_mode()) {
-
43  case kEncryptionModeAesCtr:
-
44  aes_decryptor.reset(new AesCtrDecryptor);
-
45  break;
-
46  case kEncryptionModeAesCbc:
-
47  aes_decryptor.reset(new AesCbcDecryptor(kNoPadding, kChainAcrossCalls));
-
48  break;
-
49  default:
-
50  LOG(ERROR) << "Unsupported Decryption Mode: "
-
51  << decrypt_config->decryption_mode();
-
52  return false;
-
53  }
-
54 
-
55  if (!aes_decryptor->InitializeWithIv(key.key, decrypt_config->iv())) {
-
56  LOG(ERROR) << "Failed to initialize AesDecryptor for decryption.";
-
57  return false;
-
58  }
-
59  decryptor = aes_decryptor.release();
-
60  decryptor_map_[decrypt_config->key_id()] = decryptor;
-
61  } else {
-
62  decryptor = found->second;
-
63  }
-
64  if (!decryptor->SetIv(decrypt_config->iv())) {
-
65  LOG(ERROR) << "Invalid initialization vector.";
-
66  return false;
-
67  }
-
68 
-
69  if (decrypt_config->subsamples().empty()) {
-
70  // Sample not encrypted using subsample encryption. Decrypt whole.
-
71  if (!decryptor->Crypt(buffer, buffer_size, buffer)) {
-
72  LOG(ERROR) << "Error during bulk sample decryption.";
-
73  return false;
-
74  }
-
75  return true;
-
76  }
-
77 
-
78  // Subsample decryption.
-
79  const std::vector<SubsampleEntry>& subsamples = decrypt_config->subsamples();
-
80  uint8_t* current_ptr = buffer;
-
81  const uint8_t* const buffer_end = buffer + buffer_size;
-
82  for (const auto& subsample : subsamples) {
-
83  if ((current_ptr + subsample.clear_bytes + subsample.cipher_bytes) >
-
84  buffer_end) {
-
85  LOG(ERROR) << "Subsamples overflow sample buffer.";
-
86  return false;
-
87  }
-
88  current_ptr += subsample.clear_bytes;
-
89  if (!decryptor->Crypt(current_ptr, subsample.cipher_bytes, current_ptr)) {
-
90  LOG(ERROR) << "Error decrypting subsample buffer.";
-
91  return false;
-
92  }
-
93  current_ptr += subsample.cipher_bytes;
-
94  }
-
95  return true;
-
96 }
-
97 
-
98 } // namespace media
-
99 } // namespace edash_packager
+
11 #include "packager/media/base/aes_decryptor.h"
+
12 
+
13 namespace edash_packager {
+
14 namespace media {
+
15 
+
16 DecryptorSource::DecryptorSource(KeySource* key_source)
+
17  : key_source_(key_source) {
+
18  CHECK(key_source);
+
19 }
+
20 DecryptorSource::~DecryptorSource() {
+
21  STLDeleteValues(&decryptor_map_);
+
22 }
+
23 
+
24 bool DecryptorSource::DecryptSampleBuffer(const DecryptConfig* decrypt_config,
+
25  uint8_t* buffer,
+
26  size_t buffer_size) {
+
27  DCHECK(decrypt_config);
+
28  DCHECK(buffer);
+
29 
+
30  // Get the decryptor object.
+
31  AesCryptor* decryptor;
+
32  auto found = decryptor_map_.find(decrypt_config->key_id());
+
33  if (found == decryptor_map_.end()) {
+
34  // Create new AesDecryptor based on decryption mode.
+
35  EncryptionKey key;
+
36  Status status(key_source_->GetKey(decrypt_config->key_id(), &key));
+
37  if (!status.ok()) {
+
38  LOG(ERROR) << "Error retrieving decryption key: " << status;
+
39  return false;
+
40  }
+
41 
+
42  scoped_ptr<AesCryptor> aes_decryptor;
+
43  switch (decrypt_config->protection_scheme()) {
+
44  case FOURCC_cenc:
+
45  aes_decryptor.reset(new AesCtrDecryptor);
+
46  break;
+
47  case FOURCC_cbc1:
+
48  aes_decryptor.reset(new AesCbcDecryptor(kNoPadding, kChainAcrossCalls));
+
49  break;
+
50  default:
+
51  LOG(ERROR) << "Unsupported protection scheme: "
+
52  << decrypt_config->protection_scheme();
+
53  return false;
+
54  }
+
55 
+
56  if (!aes_decryptor->InitializeWithIv(key.key, decrypt_config->iv())) {
+
57  LOG(ERROR) << "Failed to initialize AesDecryptor for decryption.";
+
58  return false;
+
59  }
+
60  decryptor = aes_decryptor.release();
+
61  decryptor_map_[decrypt_config->key_id()] = decryptor;
+
62  } else {
+
63  decryptor = found->second;
+
64  }
+
65  if (!decryptor->SetIv(decrypt_config->iv())) {
+
66  LOG(ERROR) << "Invalid initialization vector.";
+
67  return false;
+
68  }
+
69 
+
70  if (decrypt_config->subsamples().empty()) {
+
71  // Sample not encrypted using subsample encryption. Decrypt whole.
+
72  if (!decryptor->Crypt(buffer, buffer_size, buffer)) {
+
73  LOG(ERROR) << "Error during bulk sample decryption.";
+
74  return false;
+
75  }
+
76  return true;
+
77  }
+
78 
+
79  // Subsample decryption.
+
80  const std::vector<SubsampleEntry>& subsamples = decrypt_config->subsamples();
+
81  uint8_t* current_ptr = buffer;
+
82  const uint8_t* const buffer_end = buffer + buffer_size;
+
83  for (const auto& subsample : subsamples) {
+
84  if ((current_ptr + subsample.clear_bytes + subsample.cipher_bytes) >
+
85  buffer_end) {
+
86  LOG(ERROR) << "Subsamples overflow sample buffer.";
+
87  return false;
+
88  }
+
89  current_ptr += subsample.clear_bytes;
+
90  if (!decryptor->Crypt(current_ptr, subsample.cipher_bytes, current_ptr)) {
+
91  LOG(ERROR) << "Error decrypting subsample buffer.";
+
92  return false;
+
93  }
+
94  current_ptr += subsample.cipher_bytes;
+
95  }
+
96  return true;
+
97 }
+
98 
+
99 } // namespace media
+
100 } // namespace edash_packager
virtual Status GetKey(TrackType track_type, EncryptionKey *key)=0
diff --git a/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html b/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html index b68e0d062e..e503cdf084 100644 --- a/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html +++ b/docs/d1/d2a/structedash__packager_1_1media_1_1mp4_1_1TrackExtends-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d2f/webvtt__media__parser_8cc_source.html b/docs/d1/d2f/webvtt__media__parser_8cc_source.html index 29401a4b9d..2d337e426c 100644 --- a/docs/d1/d2f/webvtt__media__parser_8cc_source.html +++ b/docs/d1/d2f/webvtt__media__parser_8cc_source.html @@ -491,7 +491,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html b/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html index fae71c147f..6ec08c5d43 100644 --- a/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html +++ b/docs/d1/d31/structedash__packager_1_1media_1_1mp4_1_1CodecConfigurationRecord.html @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/d1/d37/es__parser__h264_8h_source.html b/docs/d1/d37/es__parser__h264_8h_source.html index 8ab3837293..867c7a7014 100644 --- a/docs/d1/d37/es__parser__h264_8h_source.html +++ b/docs/d1/d37/es__parser__h264_8h_source.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html b/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html index 56ab1771d5..c56aed4638 100644 --- a/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html +++ b/docs/d1/d38/classedash__packager_1_1MockRepresentation-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d3b/mpd__generator__flags_8h_source.html b/docs/d1/d3b/mpd__generator__flags_8h_source.html index 28ede4898f..0c90d422fd 100644 --- a/docs/d1/d3b/mpd__generator__flags_8h_source.html +++ b/docs/d1/d3b/mpd__generator__flags_8h_source.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d45/decoding__time__iterator_8cc_source.html b/docs/d1/d45/decoding__time__iterator_8cc_source.html index aa717cda83..db98d339fe 100644 --- a/docs/d1/d45/decoding__time__iterator_8cc_source.html +++ b/docs/d1/d45/decoding__time__iterator_8cc_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d48/text__track__config_8h_source.html b/docs/d1/d48/text__track__config_8h_source.html index 21d598550d..0acf464ba2 100644 --- a/docs/d1/d48/text__track__config_8h_source.html +++ b/docs/d1/d48/text__track__config_8h_source.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html b/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html index 6f93a5bb99..3b8ea55fda 100644 --- a/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html +++ b/docs/d1/d4b/classedash__packager_1_1media_1_1mp2t_1_1TsPacket.html @@ -145,7 +145,7 @@ static const int kPacketSi diff --git a/docs/d1/d5d/structedash__packager_1_1MpdOptions.html b/docs/d1/d5d/structedash__packager_1_1MpdOptions.html index 5c0a0bf19c..7d5b607bce 100644 --- a/docs/d1/d5d/structedash__packager_1_1MpdOptions.html +++ b/docs/d1/d5d/structedash__packager_1_1MpdOptions.html @@ -130,7 +130,7 @@ std::string packager_versi diff --git a/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html b/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html index 22d4792454..5db1a64047 100644 --- a/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html +++ b/docs/d1/d65/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d1/d70/vp8__parser_8cc_source.html b/docs/d1/d70/vp8__parser_8cc_source.html index 1c555362ef..5dfdc667c8 100644 --- a/docs/d1/d70/vp8__parser_8cc_source.html +++ b/docs/d1/d70/vp8__parser_8cc_source.html @@ -293,7 +293,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d72/language__utils_8cc_source.html b/docs/d1/d72/language__utils_8cc_source.html index 2062f14ec3..06c9957e7c 100644 --- a/docs/d1/d72/language__utils_8cc_source.html +++ b/docs/d1/d72/language__utils_8cc_source.html @@ -226,7 +226,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html index 065652806a..c6c882443e 100644 --- a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html +++ b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio-members.html b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio-members.html index 1ae02b425e..b040d5fb42 100644 --- a/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio-members.html +++ b/docs/d1/d72/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d74/mp2t__media__parser_8cc_source.html b/docs/d1/d74/mp2t__media__parser_8cc_source.html index dc8cb83e88..9e6c598265 100644 --- a/docs/d1/d74/mp2t__media__parser_8cc_source.html +++ b/docs/d1/d74/mp2t__media__parser_8cc_source.html @@ -529,7 +529,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html b/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html index 7b0f9ea977..ddcc596bb2 100644 --- a/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html +++ b/docs/d1/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html b/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html index 35e797e7de..01d1310c91 100644 --- a/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html +++ b/docs/d1/d78/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer.html @@ -115,8 +115,8 @@ Public Member Functions  Muxer (const MuxerOptions &options)   -void SetKeySource (KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode) -  +void SetKeySource (KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme) +  void AddStream (MediaStream *stream)  Add video/audio stream.
@@ -164,9 +164,9 @@ double crypto_period_durat base::Clock * clock ()   - -EncryptionMode encryption_mode () const -  + +FourCC protection_scheme () const + 

Detailed Description

Implements MP4 Muxer for ISO-BMFF. Please refer to ISO/IEC 14496-12: ISO base media file format for details.

@@ -179,7 +179,7 @@ EncryptionMode encryption_
diff --git a/docs/d1/d7d/webm__video__client_8cc_source.html b/docs/d1/d7d/webm__video__client_8cc_source.html index 025f5e07ed..fc9360f6a8 100644 --- a/docs/d1/d7d/webm__video__client_8cc_source.html +++ b/docs/d1/d7d/webm__video__client_8cc_source.html @@ -266,7 +266,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html b/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html index 7f56c99085..258cd823d1 100644 --- a/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html +++ b/docs/d1/d7f/classedash__packager_1_1media_1_1BitReader-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html b/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html index 5d40515337..df1fca2fa5 100644 --- a/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html +++ b/docs/d1/d81/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d1/d82/adts__constants_8h_source.html b/docs/d1/d82/adts__constants_8h_source.html index 1b65b5cafe..76c1e31e38 100644 --- a/docs/d1/d82/adts__constants_8h_source.html +++ b/docs/d1/d82/adts__constants_8h_source.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html b/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html index 66b8bc4236..530d3ed213 100644 --- a/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html +++ b/docs/d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html @@ -218,7 +218,7 @@ Static Public Member Functions diff --git a/docs/d1/d86/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader.html b/docs/d1/d86/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader.html index 44ed32e039..b84624f13f 100644 --- a/docs/d1/d86/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader.html +++ b/docs/d1/d86/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader.html @@ -175,7 +175,7 @@ uint32_t flags diff --git a/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html b/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html index 0d1b36f80b..b3dd6edeb8 100644 --- a/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html +++ b/docs/d1/d8e/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d8e/webm__audio__client_8cc_source.html b/docs/d1/d8e/webm__audio__client_8cc_source.html index cf8c5775b5..b9cbc47256 100644 --- a/docs/d1/d8e/webm__audio__client_8cc_source.html +++ b/docs/d1/d8e/webm__audio__client_8cc_source.html @@ -211,7 +211,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d91/structedash__packager_1_1media_1_1H265SliceHeader-members.html b/docs/d1/d91/structedash__packager_1_1media_1_1H265SliceHeader-members.html index 478599ae26..e0ff8b7477 100644 --- a/docs/d1/d91/structedash__packager_1_1media_1_1H265SliceHeader-members.html +++ b/docs/d1/d91/structedash__packager_1_1media_1_1H265SliceHeader-members.html @@ -139,7 +139,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html b/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html index b39035cdba..b84b24ce1f 100644 --- a/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html +++ b/docs/d1/d92/classedash__packager_1_1media_1_1OffsetByteQueue.html @@ -242,7 +242,7 @@ false if max_offset > diff --git a/docs/d1/d9d/tracks__builder_8h_source.html b/docs/d1/d9d/tracks__builder_8h_source.html index f325c1582d..abbf6367b5 100644 --- a/docs/d1/d9d/tracks__builder_8h_source.html +++ b/docs/d1/d9d/tracks__builder_8h_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dc2/h26x__bit__reader_8h_source.html b/docs/d1/dc2/h26x__bit__reader_8h_source.html index 92244f6b23..4ce9490892 100644 --- a/docs/d1/dc2/h26x__bit__reader_8h_source.html +++ b/docs/d1/dc2/h26x__bit__reader_8h_source.html @@ -192,7 +192,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html b/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html index 7c72272f41..3c3b47b45c 100644 --- a/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html +++ b/docs/d1/dc3/classedash__packager_1_1media_1_1LocalFile-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dc4/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser-members.html b/docs/d1/dc4/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser-members.html index 336294d027..c237f37230 100644 --- a/docs/d1/dc4/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser-members.html +++ b/docs/d1/dc4/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dcb/encrypting__fragmenter_8h_source.html b/docs/d1/dcb/encrypting__fragmenter_8h_source.html index 5ca3a4eb2f..2ba5bec102 100644 --- a/docs/d1/dcb/encrypting__fragmenter_8h_source.html +++ b/docs/d1/dcb/encrypting__fragmenter_8h_source.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
9 
10 #include "packager/base/memory/ref_counted.h"
11 #include "packager/base/memory/scoped_ptr.h"
-
12 #include "packager/media/base/encryption_modes.h"
+
12 #include "packager/media/base/fourccs.h"
13 #include "packager/media/filters/vpx_parser.h"
14 #include "packager/media/formats/mp4/fragmenter.h"
15 #include "packager/media/formats/mp4/video_slice_header_parser.h"
@@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
17 namespace edash_packager {
18 namespace media {
19 
-
20 class AesEncryptor;
+
20 class AesCryptor;
21 class StreamInfo;
22 struct EncryptionKey;
23 
@@ -114,77 +114,78 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
25 
28  public:
-
33  EncryptingFragmenter(scoped_refptr<StreamInfo> info,
-
34  TrackFragment* traf,
-
35  scoped_ptr<EncryptionKey> encryption_key,
-
36  int64_t clear_time,
-
37  EncryptionMode encryption_mode);
-
38 
-
39  ~EncryptingFragmenter() override;
+
35  EncryptingFragmenter(scoped_refptr<StreamInfo> info,
+
36  TrackFragment* traf,
+
37  scoped_ptr<EncryptionKey> encryption_key,
+
38  int64_t clear_time,
+
39  FourCC protection_scheme);
40 
-
43  Status AddSample(scoped_refptr<MediaSample> sample) override;
-
44  Status InitializeFragment(int64_t first_sample_dts) override;
-
45  void FinalizeFragment() override;
-
47 
-
48  protected:
-
51  virtual Status PrepareFragmentForEncryption(bool enable_encryption);
-
53  virtual void FinalizeFragmentForEncryption();
-
54 
- -
59 
-
60  EncryptionKey* encryption_key() { return encryption_key_.get(); }
-
61  AesEncryptor* encryptor() { return encryptor_.get(); }
-
62 
-
63  void set_encryption_key(scoped_ptr<EncryptionKey> encryption_key) {
-
64  encryption_key_ = encryption_key.Pass();
-
65  }
-
66 
-
67  private:
-
68  void EncryptBytes(uint8_t* data, uint32_t size);
-
69  Status EncryptSample(scoped_refptr<MediaSample> sample);
-
70 
-
71  // Should we enable subsample encryption?
-
72  bool IsSubsampleEncryptionRequired();
+
41  ~EncryptingFragmenter() override;
+
42 
+
45  Status AddSample(scoped_refptr<MediaSample> sample) override;
+
46  Status InitializeFragment(int64_t first_sample_dts) override;
+
47  void FinalizeFragment() override;
+
49 
+
50  protected:
+
53  virtual Status PrepareFragmentForEncryption(bool enable_encryption);
+
55  virtual void FinalizeFragmentForEncryption();
+
56 
+ +
61 
+
62  const EncryptionKey* encryption_key() const { return encryption_key_.get(); }
+
63  AesCryptor* encryptor() { return encryptor_.get(); }
+
64  FourCC protection_scheme() const { return protection_scheme_; }
+
65 
+
66  void set_encryption_key(scoped_ptr<EncryptionKey> encryption_key) {
+
67  encryption_key_ = encryption_key.Pass();
+
68  }
+
69 
+
70  private:
+
71  void EncryptBytes(uint8_t* data, uint32_t size);
+
72  Status EncryptSample(scoped_refptr<MediaSample> sample);
73 
-
74  scoped_refptr<StreamInfo> info_;
-
75  scoped_ptr<EncryptionKey> encryption_key_;
-
76  scoped_ptr<AesEncryptor> encryptor_;
-
77  // If this stream contains AVC, subsample encryption specifies that the size
-
78  // and type of NAL units remain unencrypted. This function returns the size of
-
79  // the size field in bytes. Can be 1, 2 or 4 bytes.
-
80  const uint8_t nalu_length_size_;
-
81  const VideoCodec video_codec_;
-
82  int64_t clear_time_;
-
83  EncryptionMode encryption_mode_;
-
84 
-
85  scoped_ptr<VPxParser> vpx_parser_;
-
86  scoped_ptr<VideoSliceHeaderParser> header_parser_;
+
74  // Should we enable subsample encryption?
+
75  bool IsSubsampleEncryptionRequired();
+
76 
+
77  scoped_refptr<StreamInfo> info_;
+
78  scoped_ptr<EncryptionKey> encryption_key_;
+
79  scoped_ptr<AesCryptor> encryptor_;
+
80  // If this stream contains AVC, subsample encryption specifies that the size
+
81  // and type of NAL units remain unencrypted. This function returns the size of
+
82  // the size field in bytes. Can be 1, 2 or 4 bytes.
+
83  const uint8_t nalu_length_size_;
+
84  const VideoCodec video_codec_;
+
85  int64_t clear_time_;
+
86  FourCC protection_scheme_;
87 
-
88  DISALLOW_COPY_AND_ASSIGN(EncryptingFragmenter);
-
89 };
+
88  scoped_ptr<VPxParser> vpx_parser_;
+
89  scoped_ptr<VideoSliceHeaderParser> header_parser_;
90 
-
91 } // namespace mp4
-
92 } // namespace media
-
93 } // namespace edash_packager
-
94 
-
95 #endif // MEDIA_FORMATS_MP4_ENCRYPTING_FRAGMENTER_H_
+
91  DISALLOW_COPY_AND_ASSIGN(EncryptingFragmenter);
+
92 };
+
93 
+
94 } // namespace mp4
+
95 } // namespace media
+
96 } // namespace edash_packager
+
97 
+
98 #endif // MEDIA_FORMATS_MP4_ENCRYPTING_FRAGMENTER_H_
+ - - -
EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, EncryptionMode encryption_mode)
+
EncryptingFragmenter generates MP4 fragments with sample encrypted.
-
Status InitializeFragment(int64_t first_sample_dts) override
-
Status AddSample(scoped_refptr< MediaSample > sample) override
-
void FinalizeFragment() override
Finalize and optimize the fragment.
+
Status InitializeFragment(int64_t first_sample_dts) override
+
EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, FourCC protection_scheme)
+
Status AddSample(scoped_refptr< MediaSample > sample) override
+
void FinalizeFragment() override
Finalize and optimize the fragment.
-
virtual Status PrepareFragmentForEncryption(bool enable_encryption)
-
virtual void FinalizeFragmentForEncryption()
Finalize current fragment for encryption.
+
virtual Status PrepareFragmentForEncryption(bool enable_encryption)
+
virtual void FinalizeFragmentForEncryption()
Finalize current fragment for encryption.
diff --git a/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html b/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html index 69e7e0e08f..3714d52bdd 100644 --- a/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html +++ b/docs/d1/dcd/structedash__packager_1_1media_1_1mp4_1_1FileType.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html b/docs/d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html index 1d3a77a351..edaff773bc 100644 --- a/docs/d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html +++ b/docs/d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html @@ -150,7 +150,7 @@ virtual int64_t  diff --git a/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html b/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html index 869b03294e..a1c2614ac0 100644 --- a/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html +++ b/docs/d1/dd0/structedash__packager_1_1media_1_1mp4_1_1SampleToGroup-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html b/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html index e6e091dc79..0f85711210 100644 --- a/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html +++ b/docs/d1/dd5/classedash__packager_1_1xml_1_1RepresentationBaseXmlNode.html @@ -156,7 +156,7 @@ Protected Member Functions diff --git a/docs/d1/ddb/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry-members.html b/docs/d1/ddb/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry-members.html index 99141f82f0..3e0f6119b5 100644 --- a/docs/d1/ddb/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry-members.html +++ b/docs/d1/ddb/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html b/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html index f0483bc274..7374eb4f21 100644 --- a/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html +++ b/docs/d1/ddc/classedash__packager_1_1media_1_1VP9Parser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/de2/composition__offset__iterator_8cc_source.html b/docs/d1/de2/composition__offset__iterator_8cc_source.html index 70e50251e6..4cf46c7aca 100644 --- a/docs/d1/de2/composition__offset__iterator_8cc_source.html +++ b/docs/d1/de2/composition__offset__iterator_8cc_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/df0/aes__encryptor_8h_source.html b/docs/d1/df0/aes__encryptor_8h_source.html index a0a0ad16a9..98830c8f5f 100644 --- a/docs/d1/df0/aes__encryptor_8h_source.html +++ b/docs/d1/df0/aes__encryptor_8h_source.html @@ -113,96 +113,93 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
24  AesEncryptor();
25  ~AesEncryptor() override;
26 
-
30  bool InitializeWithRandomIv(const std::vector<uint8_t>& key, uint8_t iv_size);
+
29  bool InitializeWithIv(const std::vector<uint8_t>& key,
+
30  const std::vector<uint8_t>& iv) override;
31 
-
34  bool InitializeWithIv(const std::vector<uint8_t>& key,
-
35  const std::vector<uint8_t>& iv) override;
-
36 
-
37  private:
-
38  DISALLOW_COPY_AND_ASSIGN(AesEncryptor);
-
39 };
-
40 
-
41 // Class which implements AES-CTR counter-mode encryption.
-
42 class AesCtrEncryptor : public AesEncryptor {
-
43  public:
- -
45  ~AesCtrEncryptor() override;
-
46 
-
53  void UpdateIv() override;
+
32  private:
+
33  DISALLOW_COPY_AND_ASSIGN(AesEncryptor);
+
34 };
+
35 
+
36 // Class which implements AES-CTR counter-mode encryption.
+
37 class AesCtrEncryptor : public AesEncryptor {
+
38  public:
+ +
40  ~AesCtrEncryptor() override;
+
41 
+
48  void UpdateIv() override;
+
49 
+
50  bool SetIv(const std::vector<uint8_t>& iv) override;
+
52 
+
53  uint32_t block_offset() const { return block_offset_; }
54 
-
55  bool SetIv(const std::vector<uint8_t>& iv) override;
-
57 
-
58  uint32_t block_offset() const { return block_offset_; }
-
59 
-
60  private:
-
61  bool CryptInternal(const uint8_t* plaintext,
-
62  size_t plaintext_size,
-
63  uint8_t* ciphertext,
-
64  size_t* ciphertext_size) override;
-
65 
-
66  // Current block offset.
-
67  uint32_t block_offset_;
-
68  // Current AES-CTR counter.
-
69  std::vector<uint8_t> counter_;
-
70  // Encrypted counter.
-
71  std::vector<uint8_t> encrypted_counter_;
-
72  // Keep track of whether the counter has overflowed.
-
73  bool counter_overflow_;
-
74 
-
75  DISALLOW_COPY_AND_ASSIGN(AesCtrEncryptor);
-
76 };
-
77 
-
78 enum CbcPaddingScheme {
-
79  kNoPadding,
-
80  kPkcs5Padding,
-
81  kCtsPadding,
-
82 };
-
83 
-
84 const bool kChainAcrossCalls = true;
-
85 
-
86 // Class which implements AES-CBC (Cipher block chaining) encryption.
-
87 class AesCbcEncryptor : public AesEncryptor {
-
88  public:
-
94  AesCbcEncryptor(CbcPaddingScheme padding_scheme, bool chain_across_calls);
-
95  ~AesCbcEncryptor() override;
-
96 
-
99  void UpdateIv() override;
-
100 
-
101  bool SetIv(const std::vector<uint8_t>& iv) override;
-
103 
-
104  private:
-
105  bool CryptInternal(const uint8_t* plaintext,
-
106  size_t plaintext_size,
-
107  uint8_t* ciphertext,
-
108  size_t* ciphertext_size) override;
-
109  size_t NumPaddingBytes(size_t size) const override;
-
110 
-
111  const CbcPaddingScheme padding_scheme_;
-
112  const bool chain_across_calls_;
-
113 
-
114  DISALLOW_COPY_AND_ASSIGN(AesCbcEncryptor);
-
115 };
-
116 
-
117 } // namespace media
-
118 } // namespace edash_packager
-
119 
-
120 #endif // MEDIA_BASE_AES_ENCRYPTOR_H_
- - -
bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
- -
bool SetIv(const std::vector< uint8_t > &iv) override
+
55  private:
+
56  bool CryptInternal(const uint8_t* plaintext,
+
57  size_t plaintext_size,
+
58  uint8_t* ciphertext,
+
59  size_t* ciphertext_size) override;
+
60 
+
61  // Current block offset.
+
62  uint32_t block_offset_;
+
63  // Current AES-CTR counter.
+
64  std::vector<uint8_t> counter_;
+
65  // Encrypted counter.
+
66  std::vector<uint8_t> encrypted_counter_;
+
67  // Keep track of whether the counter has overflowed.
+
68  bool counter_overflow_;
+
69 
+
70  DISALLOW_COPY_AND_ASSIGN(AesCtrEncryptor);
+
71 };
+
72 
+
73 enum CbcPaddingScheme {
+
74  kNoPadding,
+
75  kPkcs5Padding,
+
76  kCtsPadding,
+
77 };
+
78 
+
79 const bool kChainAcrossCalls = true;
+
80 
+
81 // Class which implements AES-CBC (Cipher block chaining) encryption.
+
82 class AesCbcEncryptor : public AesEncryptor {
+
83  public:
+
89  AesCbcEncryptor(CbcPaddingScheme padding_scheme, bool chain_across_calls);
+
90  ~AesCbcEncryptor() override;
+
91 
+
94  void UpdateIv() override;
+
95 
+
96  bool SetIv(const std::vector<uint8_t>& iv) override;
+
98 
+
99  private:
+
100  bool CryptInternal(const uint8_t* plaintext,
+
101  size_t plaintext_size,
+
102  uint8_t* ciphertext,
+
103  size_t* ciphertext_size) override;
+
104  size_t NumPaddingBytes(size_t size) const override;
+
105 
+
106  const CbcPaddingScheme padding_scheme_;
+
107  const bool chain_across_calls_;
+
108 
+
109  DISALLOW_COPY_AND_ASSIGN(AesCbcEncryptor);
+
110 };
+
111 
+
112 } // namespace media
+
113 } // namespace edash_packager
+
114 
+
115 #endif // MEDIA_BASE_AES_ENCRYPTOR_H_
+ + +
bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
+ +
bool SetIv(const std::vector< uint8_t > &iv) override
- -
bool SetIv(const std::vector< uint8_t > &iv) override
-
AesCbcEncryptor(CbcPaddingScheme padding_scheme, bool chain_across_calls)
-
bool InitializeWithRandomIv(const std::vector< uint8_t > &key, uint8_t iv_size)
-
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:59
- + +
bool SetIv(const std::vector< uint8_t > &iv) override
+
AesCbcEncryptor(CbcPaddingScheme padding_scheme, bool chain_across_calls)
+
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:60
+ diff --git a/docs/d1/df2/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox.html b/docs/d1/df2/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox.html index 21199af7bc..9b763831bd 100644 --- a/docs/d1/df2/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox.html +++ b/docs/d1/df2/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d1/df5/nalu__reader_8cc_source.html b/docs/d1/df5/nalu__reader_8cc_source.html index 8ccc34b0fb..ad167a8c25 100644 --- a/docs/d1/df5/nalu__reader_8cc_source.html +++ b/docs/d1/df5/nalu__reader_8cc_source.html @@ -417,7 +417,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html b/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html index 91ce8bef53..db3ca5ceef 100644 --- a/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html +++ b/docs/d1/dfc/structedash__packager_1_1media_1_1wvm_1_1DemuxStreamIdMediaSample-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d02/timestamp_8h_source.html b/docs/d2/d02/timestamp_8h_source.html index 610b75decc..0c452f8808 100644 --- a/docs/d2/d02/timestamp_8h_source.html +++ b/docs/d2/d02/timestamp_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d06/structedash__packager_1_1media_1_1mp4_1_1Metadata.html b/docs/d2/d06/structedash__packager_1_1media_1_1mp4_1_1Metadata.html index ebb98492fe..e3538bfef2 100644 --- a/docs/d2/d06/structedash__packager_1_1media_1_1mp4_1_1Metadata.html +++ b/docs/d2/d06/structedash__packager_1_1media_1_1mp4_1_1Metadata.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d2/d09/decoder__configuration_8h_source.html b/docs/d2/d09/decoder__configuration_8h_source.html index 82d0ac0552..c3e5734112 100644 --- a/docs/d2/d09/decoder__configuration_8h_source.html +++ b/docs/d2/d09/decoder__configuration_8h_source.html @@ -166,7 +166,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html b/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html index fef66d6ca3..24c7670b3f 100644 --- a/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html +++ b/docs/d2/d0f/structedash__packager_1_1media_1_1mp4_1_1MediaInformation-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d17/ts__section__pat_8cc_source.html b/docs/d2/d17/ts__section__pat_8cc_source.html index 775c68a4a7..4185430978 100644 --- a/docs/d2/d17/ts__section__pat_8cc_source.html +++ b/docs/d2/d17/ts__section__pat_8cc_source.html @@ -214,7 +214,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d23/threaded__io__file_8cc_source.html b/docs/d2/d23/threaded__io__file_8cc_source.html index 52e0828a61..f58016291c 100644 --- a/docs/d2/d23/threaded__io__file_8cc_source.html +++ b/docs/d2/d23/threaded__io__file_8cc_source.html @@ -315,7 +315,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d24/packager__util_8h_source.html b/docs/d2/d24/packager__util_8h_source.html index d2e28ecaec..1df0593bdd 100644 --- a/docs/d2/d24/packager__util_8h_source.html +++ b/docs/d2/d24/packager__util_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html b/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html index 580b0a4c0d..5c9beda343 100644 --- a/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html +++ b/docs/d2/d26/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription.html @@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/d2/d28/classedash__packager_1_1media_1_1SegmentTestBase.html b/docs/d2/d28/classedash__packager_1_1media_1_1SegmentTestBase.html index 2333b8dc5c..c321cb7fb0 100644 --- a/docs/d2/d28/classedash__packager_1_1media_1_1SegmentTestBase.html +++ b/docs/d2/d28/classedash__packager_1_1media_1_1SegmentTestBase.html @@ -180,7 +180,7 @@ bool single_segment_ diff --git a/docs/d2/d2d/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter-members.html b/docs/d2/d2d/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter-members.html index 4fddb5ec24..867d884797 100644 --- a/docs/d2/d2d/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter-members.html +++ b/docs/d2/d2d/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html b/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html index 2ce9200123..b27ebd9c9d 100644 --- a/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html +++ b/docs/d2/d2d/structedash__packager_1_1media_1_1mp4_1_1MediaHeader-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d30/tracks__builder_8cc_source.html b/docs/d2/d30/tracks__builder_8cc_source.html index a4e0666fde..f817771bea 100644 --- a/docs/d2/d30/tracks__builder_8cc_source.html +++ b/docs/d2/d30/tracks__builder_8cc_source.html @@ -487,7 +487,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d33/video__slice__header__parser_8h_source.html b/docs/d2/d33/video__slice__header__parser_8h_source.html index 7e7d78be5a..66a840c267 100644 --- a/docs/d2/d33/video__slice__header__parser_8h_source.html +++ b/docs/d2/d33/video__slice__header__parser_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html b/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html index 9cf8eaa1df..7b4aa9365b 100644 --- a/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html +++ b/docs/d2/d48/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html b/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html index 205cff58c0..f711af9957 100644 --- a/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html +++ b/docs/d2/d4b/structedash__packager_1_1media_1_1FileCloser-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d4c/nal__unit__to__byte__stream__converter_8cc_source.html b/docs/d2/d4c/nal__unit__to__byte__stream__converter_8cc_source.html index f53cbb6734..f42c746705 100644 --- a/docs/d2/d4c/nal__unit__to__byte__stream__converter_8cc_source.html +++ b/docs/d2/d4c/nal__unit__to__byte__stream__converter_8cc_source.html @@ -291,7 +291,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d4d/file_8h_source.html b/docs/d2/d4d/file_8h_source.html index 9da9b405cd..06dece5024 100644 --- a/docs/d2/d4d/file_8h_source.html +++ b/docs/d2/d4d/file_8h_source.html @@ -190,7 +190,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html b/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html index 4153d183dd..ead8fe5276 100644 --- a/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html +++ b/docs/d2/d50/structedash__packager_1_1media_1_1H264DecRefPicMarking.html @@ -121,7 +121,7 @@ int max_long_term_frame_id diff --git a/docs/d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html b/docs/d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html index 7069153a4f..929a903c95 100644 --- a/docs/d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html +++ b/docs/d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html b/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html index 4bb1fe195f..4bdfc6726d 100644 --- a/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html +++ b/docs/d2/d51/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html b/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html index 4a6975b554..d582bbd321 100644 --- a/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html +++ b/docs/d2/d5b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt.html @@ -155,7 +155,7 @@ void Reset () override diff --git a/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html b/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html index e867686184..3656ef8dd2 100644 --- a/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html +++ b/docs/d2/d5d/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d62/simple__mpd__notifier_8h_source.html b/docs/d2/d62/simple__mpd__notifier_8h_source.html index f4f9bee980..03793e4c86 100644 --- a/docs/d2/d62/simple__mpd__notifier_8h_source.html +++ b/docs/d2/d62/simple__mpd__notifier_8h_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d6f/classBandwidthEstimator.html b/docs/d2/d6f/classBandwidthEstimator.html index c1a10a36fb..bd2e324c3e 100644 --- a/docs/d2/d6f/classBandwidthEstimator.html +++ b/docs/d2/d6f/classBandwidthEstimator.html @@ -151,7 +151,7 @@ static const int kUseAllBl diff --git a/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html b/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html index f727e538a5..ee56d99dd0 100644 --- a/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html +++ b/docs/d2/d6f/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d2/d72/classedash__packager_1_1media_1_1Nalu.html b/docs/d2/d72/classedash__packager_1_1media_1_1Nalu.html index 74e2f4542a..f9cd51e11f 100644 --- a/docs/d2/d72/classedash__packager_1_1media_1_1Nalu.html +++ b/docs/d2/d72/classedash__packager_1_1media_1_1Nalu.html @@ -197,7 +197,7 @@ bool is_video_slice () diff --git a/docs/d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html b/docs/d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html index accb9058f0..2fb495016a 100644 --- a/docs/d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html +++ b/docs/d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html @@ -126,7 +126,7 @@ Public Member Functions

Adds the encryption info to the given track. Initialize must be called first.

Returns
OK on success, an error status otherwise.
-

Definition at line 64 of file encryptor.cc.

+

Definition at line 62 of file encryptor.cc.

@@ -156,7 +156,7 @@ Public Member Functions

Encrypt the data. This needs to be told whether the current frame will be encrypted (e.g. for a clear lead).

Returns
OK on success, an error status otherwise.
-

Definition at line 69 of file encryptor.cc.

+

Definition at line 67 of file encryptor.cc.

@@ -192,7 +192,7 @@ Public Member Functions

Initializes the encryptor with the given key source.

Returns
OK on success, an error status otherwise.
-

Definition at line 57 of file encryptor.cc.

+

Definition at line 55 of file encryptor.cc.

@@ -203,7 +203,7 @@ Public Member Functions diff --git a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html index 6cb3f20d90..15e1382744 100644 --- a/docs/d2/d7b/simple__mpd__notifier_8cc_source.html +++ b/docs/d2/d7b/simple__mpd__notifier_8cc_source.html @@ -239,7 +239,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d7e/aac__audio__specific__config_8h_source.html b/docs/d2/d7e/aac__audio__specific__config_8h_source.html index 406383fa69..c95d8c0817 100644 --- a/docs/d2/d7e/aac__audio__specific__config_8h_source.html +++ b/docs/d2/d7e/aac__audio__specific__config_8h_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d90/classedash__packager_1_1media_1_1Status.html b/docs/d2/d90/classedash__packager_1_1media_1_1Status.html index d8ec568c79..5d899d4a71 100644 --- a/docs/d2/d90/classedash__packager_1_1media_1_1Status.html +++ b/docs/d2/d90/classedash__packager_1_1media_1_1Status.html @@ -302,7 +302,7 @@ static const diff --git a/docs/d2/d92/box__reader_8h_source.html b/docs/d2/d92/box__reader_8h_source.html index 19008ce436..66d4628d34 100644 --- a/docs/d2/d92/box__reader_8h_source.html +++ b/docs/d2/d92/box__reader_8h_source.html @@ -249,7 +249,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/d98/avc__decoder__configuration_8h_source.html b/docs/d2/d98/avc__decoder__configuration_8h_source.html index 37f6e2b7c7..988cce8726 100644 --- a/docs/d2/d98/avc__decoder__configuration_8h_source.html +++ b/docs/d2/d98/avc__decoder__configuration_8h_source.html @@ -153,7 +153,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/da6/threaded__io__file_8h_source.html b/docs/d2/da6/threaded__io__file_8h_source.html index 11b30b9c7f..b74691819e 100644 --- a/docs/d2/da6/threaded__io__file_8h_source.html +++ b/docs/d2/da6/threaded__io__file_8h_source.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/da8/mp4_2segmenter_8cc_source.html b/docs/d2/da8/mp4_2segmenter_8cc_source.html index f1a4350fdd..04313c5f8a 100644 --- a/docs/d2/da8/mp4_2segmenter_8cc_source.html +++ b/docs/d2/da8/mp4_2segmenter_8cc_source.html @@ -98,428 +98,431 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
9 #include <algorithm>
10 
11 #include "packager/base/stl_util.h"
-
12 #include "packager/media/base/buffer_writer.h"
-
13 #include "packager/media/base/key_source.h"
-
14 #include "packager/media/base/media_sample.h"
-
15 #include "packager/media/base/media_stream.h"
-
16 #include "packager/media/base/muxer_options.h"
-
17 #include "packager/media/base/video_stream_info.h"
-
18 #include "packager/media/event/muxer_listener.h"
-
19 #include "packager/media/event/progress_listener.h"
-
20 #include "packager/media/formats/mp4/box_definitions.h"
-
21 #include "packager/media/formats/mp4/key_rotation_fragmenter.h"
-
22 
-
23 namespace edash_packager {
-
24 namespace media {
-
25 namespace mp4 {
-
26 
-
27 namespace {
-
28 
-
29 // Generate 64bit IV by default.
-
30 const size_t kDefaultIvSize = 8u;
-
31 const size_t kCencKeyIdSize = 16u;
-
32 
-
33 // The version of cenc implemented here. CENC 4.
-
34 const int kCencSchemeVersion = 0x00010000;
-
35 
-
36 // The default KID for key rotation is all 0s.
-
37 const uint8_t kKeyRotationDefaultKeyId[] = {
-
38  0, 0, 0, 0, 0, 0, 0, 0,
-
39  0, 0, 0, 0, 0, 0, 0, 0
-
40 };
-
41 
-
42 COMPILE_ASSERT(arraysize(kKeyRotationDefaultKeyId) == kCencKeyIdSize,
-
43  cenc_key_id_must_be_size_16);
-
44 
-
45 uint64_t Rescale(uint64_t time_in_old_scale,
-
46  uint32_t old_scale,
-
47  uint32_t new_scale) {
-
48  return static_cast<double>(time_in_old_scale) / old_scale * new_scale;
-
49 }
-
50 
-
51 void GenerateSinf(const EncryptionKey& encryption_key,
-
52  FourCC old_type,
-
53  EncryptionMode encryption_mode,
-
54  ProtectionSchemeInfo* sinf) {
-
55  sinf->format.format = old_type;
-
56 
-
57  if (encryption_mode == kEncryptionModeAesCtr){
-
58  sinf->type.type = FOURCC_cenc;
-
59  } else if (encryption_mode == kEncryptionModeAesCbc) {
-
60  sinf->type.type = FOURCC_cbc1;
-
61  }
-
62 
-
63  sinf->type.version = kCencSchemeVersion;
-
64  sinf->info.track_encryption.is_encrypted = true;
-
65  sinf->info.track_encryption.default_iv_size =
-
66  encryption_key.iv.empty() ? kDefaultIvSize : encryption_key.iv.size();
-
67  sinf->info.track_encryption.default_kid = encryption_key.key_id;
-
68 }
-
69 
-
70 void GenerateEncryptedSampleEntry(const EncryptionKey& encryption_key,
-
71  double clear_lead_in_seconds,
-
72  EncryptionMode encryption_mode,
-
73  SampleDescription* description) {
-
74  DCHECK(description);
-
75  if (description->type == kVideo) {
-
76  DCHECK_EQ(1u, description->video_entries.size());
-
77 
-
78  // Add a second entry for clear content if needed.
-
79  if (clear_lead_in_seconds > 0)
-
80  description->video_entries.push_back(description->video_entries[0]);
-
81 
-
82  // Convert the first entry to an encrypted entry.
-
83  VideoSampleEntry& entry = description->video_entries[0];
-
84  GenerateSinf(encryption_key, entry.format, encryption_mode, &entry.sinf);
-
85  entry.format = FOURCC_encv;
-
86  } else {
-
87  DCHECK_EQ(kAudio, description->type);
-
88  DCHECK_EQ(1u, description->audio_entries.size());
-
89 
-
90  // Add a second entry for clear content if needed.
-
91  if (clear_lead_in_seconds > 0)
-
92  description->audio_entries.push_back(description->audio_entries[0]);
-
93 
-
94  // Convert the first entry to an encrypted entry.
-
95  AudioSampleEntry& entry = description->audio_entries[0];
-
96  GenerateSinf(encryption_key, entry.format, encryption_mode, &entry.sinf);
-
97  entry.format = FOURCC_enca;
-
98  }
-
99 }
-
100 
-
101 KeySource::TrackType GetTrackTypeForEncryption(const StreamInfo& stream_info,
-
102  uint32_t max_sd_pixels) {
-
103  if (stream_info.stream_type() == kStreamAudio)
-
104  return KeySource::TRACK_TYPE_AUDIO;
-
105 
-
106  DCHECK_EQ(kStreamVideo, stream_info.stream_type());
-
107  const VideoStreamInfo& video_stream_info =
-
108  static_cast<const VideoStreamInfo&>(stream_info);
-
109  uint32_t pixels = video_stream_info.width() * video_stream_info.height();
-
110  return (pixels > max_sd_pixels) ? KeySource::TRACK_TYPE_HD
-
111  : KeySource::TRACK_TYPE_SD;
-
112 }
-
113 
-
114 } // namespace
-
115 
-
116 Segmenter::Segmenter(const MuxerOptions& options,
-
117  scoped_ptr<FileType> ftyp,
-
118  scoped_ptr<Movie> moov)
-
119  : options_(options),
-
120  ftyp_(ftyp.Pass()),
-
121  moov_(moov.Pass()),
-
122  moof_(new MovieFragment()),
-
123  fragment_buffer_(new BufferWriter()),
-
124  sidx_(new SegmentIndex()),
-
125  muxer_listener_(NULL),
-
126  progress_listener_(NULL),
-
127  progress_target_(0),
-
128  accumulated_progress_(0),
-
129  sample_duration_(0u) {}
-
130 
-
131 Segmenter::~Segmenter() { STLDeleteElements(&fragmenters_); }
-
132 
-
133 Status Segmenter::Initialize(const std::vector<MediaStream*>& streams,
-
134  MuxerListener* muxer_listener,
-
135  ProgressListener* progress_listener,
-
136  KeySource* encryption_key_source,
-
137  uint32_t max_sd_pixels,
-
138  double clear_lead_in_seconds,
-
139  double crypto_period_duration_in_seconds,
-
140  EncryptionMode encryption_mode) {
-
141  DCHECK_LT(0u, streams.size());
-
142  muxer_listener_ = muxer_listener;
-
143  progress_listener_ = progress_listener;
-
144  moof_->header.sequence_number = 0;
-
145 
-
146  moof_->tracks.resize(streams.size());
-
147  segment_durations_.resize(streams.size());
-
148  fragmenters_.resize(streams.size());
-
149  const bool key_rotation_enabled = crypto_period_duration_in_seconds != 0;
-
150  const bool kInitialEncryptionInfo = true;
-
151 
-
152  for (uint32_t i = 0; i < streams.size(); ++i) {
-
153  stream_map_[streams[i]] = i;
-
154  moof_->tracks[i].header.track_id = i + 1;
-
155  if (streams[i]->info()->stream_type() == kStreamVideo) {
-
156  // Use the first video stream as the reference stream (which is 1-based).
-
157  if (sidx_->reference_id == 0)
-
158  sidx_->reference_id = i + 1;
-
159  }
-
160  if (!encryption_key_source) {
-
161  fragmenters_[i] = new Fragmenter(&moof_->tracks[i]);
-
162  continue;
-
163  }
-
164 
-
165  KeySource::TrackType track_type =
-
166  GetTrackTypeForEncryption(*streams[i]->info(), max_sd_pixels);
-
167  SampleDescription& description =
-
168  moov_->tracks[i].media.information.sample_table.description;
-
169 
-
170  if (key_rotation_enabled) {
-
171  // Fill encrypted sample entry with default key.
-
172  EncryptionKey encryption_key;
-
173  encryption_key.key_id.assign(
-
174  kKeyRotationDefaultKeyId,
-
175  kKeyRotationDefaultKeyId + arraysize(kKeyRotationDefaultKeyId));
-
176  GenerateEncryptedSampleEntry(encryption_key, clear_lead_in_seconds,
-
177  encryption_mode, &description);
-
178  if (muxer_listener_) {
-
179  muxer_listener_->OnEncryptionInfoReady(
-
180  kInitialEncryptionInfo, encryption_key.key_id,
-
181  encryption_key.key_system_info);
-
182  }
-
183 
-
184  fragmenters_[i] = new KeyRotationFragmenter(
-
185  moof_.get(), streams[i]->info(), &moof_->tracks[i],
-
186  encryption_key_source, track_type,
-
187  crypto_period_duration_in_seconds * streams[i]->info()->time_scale(),
-
188  clear_lead_in_seconds * streams[i]->info()->time_scale(),
-
189  muxer_listener_, encryption_mode);
-
190  continue;
-
191  }
-
192 
-
193  scoped_ptr<EncryptionKey> encryption_key(new EncryptionKey());
-
194  Status status =
-
195  encryption_key_source->GetKey(track_type, encryption_key.get());
-
196  if (!status.ok())
-
197  return status;
-
198 
-
199  GenerateEncryptedSampleEntry(*encryption_key, clear_lead_in_seconds,
-
200  encryption_mode, &description);
+
12 #include "packager/media/base/aes_cryptor.h"
+
13 #include "packager/media/base/buffer_writer.h"
+
14 #include "packager/media/base/key_source.h"
+
15 #include "packager/media/base/media_sample.h"
+
16 #include "packager/media/base/media_stream.h"
+
17 #include "packager/media/base/muxer_options.h"
+
18 #include "packager/media/base/video_stream_info.h"
+
19 #include "packager/media/event/muxer_listener.h"
+
20 #include "packager/media/event/progress_listener.h"
+
21 #include "packager/media/formats/mp4/box_definitions.h"
+
22 #include "packager/media/formats/mp4/key_rotation_fragmenter.h"
+
23 
+
24 namespace edash_packager {
+
25 namespace media {
+
26 namespace mp4 {
+
27 
+
28 namespace {
+
29 
+
30 const size_t kCencKeyIdSize = 16u;
+
31 
+
32 // The version of cenc implemented here. CENC 4.
+
33 const int kCencSchemeVersion = 0x00010000;
+
34 
+
35 // The default KID for key rotation is all 0s.
+
36 const uint8_t kKeyRotationDefaultKeyId[] = {
+
37  0, 0, 0, 0, 0, 0, 0, 0,
+
38  0, 0, 0, 0, 0, 0, 0, 0
+
39 };
+
40 
+
41 COMPILE_ASSERT(arraysize(kKeyRotationDefaultKeyId) == kCencKeyIdSize,
+
42  cenc_key_id_must_be_size_16);
+
43 
+
44 uint64_t Rescale(uint64_t time_in_old_scale,
+
45  uint32_t old_scale,
+
46  uint32_t new_scale) {
+
47  return static_cast<double>(time_in_old_scale) / old_scale * new_scale;
+
48 }
+
49 
+
50 void GenerateSinf(const EncryptionKey& encryption_key,
+
51  FourCC old_type,
+
52  FourCC protection_scheme,
+
53  ProtectionSchemeInfo* sinf) {
+
54  sinf->format.format = old_type;
+
55 
+
56  DCHECK_NE(protection_scheme, FOURCC_NULL);
+
57  sinf->type.type = protection_scheme;
+
58  sinf->type.version = kCencSchemeVersion;
+
59 
+
60  auto& track_encryption = sinf->info.track_encryption;
+
61  track_encryption.is_encrypted = true;
+
62  DCHECK(!encryption_key.iv.empty());
+
63  track_encryption.default_iv_size = encryption_key.iv.size();
+
64  track_encryption.default_kid = encryption_key.key_id;
+
65 }
+
66 
+
67 void GenerateEncryptedSampleEntry(const EncryptionKey& encryption_key,
+
68  double clear_lead_in_seconds,
+
69  FourCC protection_scheme,
+
70  SampleDescription* description) {
+
71  DCHECK(description);
+
72  if (description->type == kVideo) {
+
73  DCHECK_EQ(1u, description->video_entries.size());
+
74 
+
75  // Add a second entry for clear content if needed.
+
76  if (clear_lead_in_seconds > 0)
+
77  description->video_entries.push_back(description->video_entries[0]);
+
78 
+
79  // Convert the first entry to an encrypted entry.
+
80  VideoSampleEntry& entry = description->video_entries[0];
+
81  GenerateSinf(encryption_key, entry.format, protection_scheme, &entry.sinf);
+
82  entry.format = FOURCC_encv;
+
83  } else {
+
84  DCHECK_EQ(kAudio, description->type);
+
85  DCHECK_EQ(1u, description->audio_entries.size());
+
86 
+
87  // Add a second entry for clear content if needed.
+
88  if (clear_lead_in_seconds > 0)
+
89  description->audio_entries.push_back(description->audio_entries[0]);
+
90 
+
91  // Convert the first entry to an encrypted entry.
+
92  AudioSampleEntry& entry = description->audio_entries[0];
+
93  GenerateSinf(encryption_key, entry.format, protection_scheme, &entry.sinf);
+
94  entry.format = FOURCC_enca;
+
95  }
+
96 }
+
97 
+
98 KeySource::TrackType GetTrackTypeForEncryption(const StreamInfo& stream_info,
+
99  uint32_t max_sd_pixels) {
+
100  if (stream_info.stream_type() == kStreamAudio)
+
101  return KeySource::TRACK_TYPE_AUDIO;
+
102 
+
103  DCHECK_EQ(kStreamVideo, stream_info.stream_type());
+
104  const VideoStreamInfo& video_stream_info =
+
105  static_cast<const VideoStreamInfo&>(stream_info);
+
106  uint32_t pixels = video_stream_info.width() * video_stream_info.height();
+
107  return (pixels > max_sd_pixels) ? KeySource::TRACK_TYPE_HD
+
108  : KeySource::TRACK_TYPE_SD;
+
109 }
+
110 
+
111 } // namespace
+
112 
+
113 Segmenter::Segmenter(const MuxerOptions& options,
+
114  scoped_ptr<FileType> ftyp,
+
115  scoped_ptr<Movie> moov)
+
116  : options_(options),
+
117  ftyp_(ftyp.Pass()),
+
118  moov_(moov.Pass()),
+
119  moof_(new MovieFragment()),
+
120  fragment_buffer_(new BufferWriter()),
+
121  sidx_(new SegmentIndex()),
+
122  muxer_listener_(NULL),
+
123  progress_listener_(NULL),
+
124  progress_target_(0),
+
125  accumulated_progress_(0),
+
126  sample_duration_(0u) {}
+
127 
+
128 Segmenter::~Segmenter() { STLDeleteElements(&fragmenters_); }
+
129 
+
130 Status Segmenter::Initialize(const std::vector<MediaStream*>& streams,
+
131  MuxerListener* muxer_listener,
+
132  ProgressListener* progress_listener,
+
133  KeySource* encryption_key_source,
+
134  uint32_t max_sd_pixels,
+
135  double clear_lead_in_seconds,
+
136  double crypto_period_duration_in_seconds,
+
137  FourCC protection_scheme) {
+
138  DCHECK_LT(0u, streams.size());
+
139  muxer_listener_ = muxer_listener;
+
140  progress_listener_ = progress_listener;
+
141  moof_->header.sequence_number = 0;
+
142 
+
143  moof_->tracks.resize(streams.size());
+
144  segment_durations_.resize(streams.size());
+
145  fragmenters_.resize(streams.size());
+
146  const bool key_rotation_enabled = crypto_period_duration_in_seconds != 0;
+
147  const bool kInitialEncryptionInfo = true;
+
148 
+
149  for (uint32_t i = 0; i < streams.size(); ++i) {
+
150  stream_map_[streams[i]] = i;
+
151  moof_->tracks[i].header.track_id = i + 1;
+
152  if (streams[i]->info()->stream_type() == kStreamVideo) {
+
153  // Use the first video stream as the reference stream (which is 1-based).
+
154  if (sidx_->reference_id == 0)
+
155  sidx_->reference_id = i + 1;
+
156  }
+
157  if (!encryption_key_source) {
+
158  fragmenters_[i] = new Fragmenter(&moof_->tracks[i]);
+
159  continue;
+
160  }
+
161 
+
162  KeySource::TrackType track_type =
+
163  GetTrackTypeForEncryption(*streams[i]->info(), max_sd_pixels);
+
164  SampleDescription& description =
+
165  moov_->tracks[i].media.information.sample_table.description;
+
166 
+
167  if (key_rotation_enabled) {
+
168  // Fill encrypted sample entry with default key.
+
169  EncryptionKey encryption_key;
+
170  encryption_key.key_id.assign(
+
171  kKeyRotationDefaultKeyId,
+
172  kKeyRotationDefaultKeyId + arraysize(kKeyRotationDefaultKeyId));
+
173  if (!AesCryptor::GenerateRandomIv(protection_scheme, &encryption_key.iv))
+
174  return Status(error::INTERNAL_ERROR, "Failed to generate random iv.");
+
175  GenerateEncryptedSampleEntry(encryption_key, clear_lead_in_seconds,
+
176  protection_scheme, &description);
+
177  if (muxer_listener_) {
+
178  muxer_listener_->OnEncryptionInfoReady(
+
179  kInitialEncryptionInfo, encryption_key.key_id,
+
180  encryption_key.key_system_info);
+
181  }
+
182 
+
183  fragmenters_[i] = new KeyRotationFragmenter(
+
184  moof_.get(), streams[i]->info(), &moof_->tracks[i],
+
185  encryption_key_source, track_type,
+
186  crypto_period_duration_in_seconds * streams[i]->info()->time_scale(),
+
187  clear_lead_in_seconds * streams[i]->info()->time_scale(),
+
188  protection_scheme, muxer_listener_);
+
189  continue;
+
190  }
+
191 
+
192  scoped_ptr<EncryptionKey> encryption_key(new EncryptionKey());
+
193  Status status =
+
194  encryption_key_source->GetKey(track_type, encryption_key.get());
+
195  if (!status.ok())
+
196  return status;
+
197  if (encryption_key->iv.empty()) {
+
198  if (!AesCryptor::GenerateRandomIv(protection_scheme, &encryption_key->iv))
+
199  return Status(error::INTERNAL_ERROR, "Failed to generate random iv.");
+
200  }
201 
-
202  if (moov_->pssh.empty()) {
-
203  moov_->pssh.resize(encryption_key->key_system_info.size());
-
204  for (size_t i = 0; i < encryption_key->key_system_info.size(); i++) {
-
205  moov_->pssh[i].raw_box = encryption_key->key_system_info[i].CreateBox();
-
206  }
-
207 
-
208  if (muxer_listener_) {
-
209  muxer_listener_->OnEncryptionInfoReady(kInitialEncryptionInfo,
-
210  encryption_key->key_id,
-
211  encryption_key->key_system_info);
-
212  }
-
213  }
-
214 
-
215  fragmenters_[i] = new EncryptingFragmenter(
-
216  streams[i]->info(), &moof_->tracks[i], encryption_key.Pass(),
-
217  clear_lead_in_seconds * streams[i]->info()->time_scale(),
-
218  encryption_mode);
-
219  }
-
220 
-
221  // Choose the first stream if there is no VIDEO.
-
222  if (sidx_->reference_id == 0)
-
223  sidx_->reference_id = 1;
-
224  sidx_->timescale = streams[GetReferenceStreamId()]->info()->time_scale();
-
225 
-
226  // Use media duration as progress target.
-
227  progress_target_ = streams[GetReferenceStreamId()]->info()->duration();
+
202  GenerateEncryptedSampleEntry(*encryption_key, clear_lead_in_seconds,
+
203  protection_scheme, &description);
+
204 
+
205  if (moov_->pssh.empty()) {
+
206  moov_->pssh.resize(encryption_key->key_system_info.size());
+
207  for (size_t i = 0; i < encryption_key->key_system_info.size(); i++) {
+
208  moov_->pssh[i].raw_box = encryption_key->key_system_info[i].CreateBox();
+
209  }
+
210 
+
211  if (muxer_listener_) {
+
212  muxer_listener_->OnEncryptionInfoReady(kInitialEncryptionInfo,
+
213  encryption_key->key_id,
+
214  encryption_key->key_system_info);
+
215  }
+
216  }
+
217 
+
218  fragmenters_[i] = new EncryptingFragmenter(
+
219  streams[i]->info(), &moof_->tracks[i], encryption_key.Pass(),
+
220  clear_lead_in_seconds * streams[i]->info()->time_scale(),
+
221  protection_scheme);
+
222  }
+
223 
+
224  // Choose the first stream if there is no VIDEO.
+
225  if (sidx_->reference_id == 0)
+
226  sidx_->reference_id = 1;
+
227  sidx_->timescale = streams[GetReferenceStreamId()]->info()->time_scale();
228 
-
229  // Use the reference stream's time scale as movie time scale.
-
230  moov_->header.timescale = sidx_->timescale;
-
231  moof_->header.sequence_number = 1;
-
232 
-
233  // Fill in version information.
-
234  moov_->metadata.handler.handler_type = FOURCC_ID32;
-
235  moov_->metadata.id3v2.language.code = "eng";
-
236  moov_->metadata.id3v2.private_frame.owner =
-
237  "https://github.com/google/edash-packager";
-
238  moov_->metadata.id3v2.private_frame.value = options_.packager_version_string;
-
239  return DoInitialize();
-
240 }
-
241 
- -
243  for (std::vector<Fragmenter*>::iterator it = fragmenters_.begin();
-
244  it != fragmenters_.end();
-
245  ++it) {
-
246  Status status = FinalizeFragment(true, *it);
-
247  if (!status.ok())
-
248  return status;
-
249  }
-
250 
-
251  // Set tracks and moov durations.
-
252  // Note that the updated moov box will be written to output file for VOD case
-
253  // only.
-
254  for (std::vector<Track>::iterator track = moov_->tracks.begin();
-
255  track != moov_->tracks.end();
-
256  ++track) {
-
257  track->header.duration = Rescale(track->media.header.duration,
-
258  track->media.header.timescale,
-
259  moov_->header.timescale);
-
260  if (track->header.duration > moov_->header.duration)
-
261  moov_->header.duration = track->header.duration;
-
262  }
-
263  moov_->extends.header.fragment_duration = moov_->header.duration;
-
264 
-
265  return DoFinalize();
-
266 }
+
229  // Use media duration as progress target.
+
230  progress_target_ = streams[GetReferenceStreamId()]->info()->duration();
+
231 
+
232  // Use the reference stream's time scale as movie time scale.
+
233  moov_->header.timescale = sidx_->timescale;
+
234  moof_->header.sequence_number = 1;
+
235 
+
236  // Fill in version information.
+
237  moov_->metadata.handler.handler_type = FOURCC_ID32;
+
238  moov_->metadata.id3v2.language.code = "eng";
+
239  moov_->metadata.id3v2.private_frame.owner =
+
240  "https://github.com/google/edash-packager";
+
241  moov_->metadata.id3v2.private_frame.value = options_.packager_version_string;
+
242  return DoInitialize();
+
243 }
+
244 
+ +
246  for (std::vector<Fragmenter*>::iterator it = fragmenters_.begin();
+
247  it != fragmenters_.end();
+
248  ++it) {
+
249  Status status = FinalizeFragment(true, *it);
+
250  if (!status.ok())
+
251  return status;
+
252  }
+
253 
+
254  // Set tracks and moov durations.
+
255  // Note that the updated moov box will be written to output file for VOD case
+
256  // only.
+
257  for (std::vector<Track>::iterator track = moov_->tracks.begin();
+
258  track != moov_->tracks.end();
+
259  ++track) {
+
260  track->header.duration = Rescale(track->media.header.duration,
+
261  track->media.header.timescale,
+
262  moov_->header.timescale);
+
263  if (track->header.duration > moov_->header.duration)
+
264  moov_->header.duration = track->header.duration;
+
265  }
+
266  moov_->extends.header.fragment_duration = moov_->header.duration;
267 
- -
269  scoped_refptr<MediaSample> sample) {
-
270  // Find the fragmenter for this stream.
-
271  DCHECK(stream);
-
272  DCHECK(stream_map_.find(stream) != stream_map_.end());
-
273  uint32_t stream_id = stream_map_[stream];
-
274  Fragmenter* fragmenter = fragmenters_[stream_id];
-
275 
-
276  // Set default sample duration if it has not been set yet.
-
277  if (moov_->extends.tracks[stream_id].default_sample_duration == 0) {
-
278  moov_->extends.tracks[stream_id].default_sample_duration =
-
279  sample->duration();
-
280  }
-
281 
-
282  if (fragmenter->fragment_finalized()) {
-
283  return Status(error::FRAGMENT_FINALIZED,
-
284  "Current fragment is finalized already.");
-
285  }
-
286 
-
287  bool finalize_fragment = false;
-
288  if (fragmenter->fragment_duration() >=
-
289  options_.fragment_duration * stream->info()->time_scale()) {
-
290  if (sample->is_key_frame() || !options_.fragment_sap_aligned) {
-
291  finalize_fragment = true;
-
292  }
-
293  }
-
294  bool finalize_segment = false;
-
295  if (segment_durations_[stream_id] >=
-
296  options_.segment_duration * stream->info()->time_scale()) {
-
297  if (sample->is_key_frame() || !options_.segment_sap_aligned) {
-
298  finalize_segment = true;
-
299  finalize_fragment = true;
-
300  }
-
301  }
-
302 
-
303  Status status;
-
304  if (finalize_fragment) {
-
305  status = FinalizeFragment(finalize_segment, fragmenter);
-
306  if (!status.ok())
-
307  return status;
-
308  }
-
309 
-
310  status = fragmenter->AddSample(sample);
-
311  if (!status.ok())
-
312  return status;
-
313 
-
314  if (sample_duration_ == 0)
-
315  sample_duration_ = sample->duration();
-
316  moov_->tracks[stream_id].media.header.duration += sample->duration();
-
317  segment_durations_[stream_id] += sample->duration();
-
318  DCHECK_GE(segment_durations_[stream_id], fragmenter->fragment_duration());
-
319  return Status::OK;
-
320 }
-
321 
-
322 uint32_t Segmenter::GetReferenceTimeScale() const {
-
323  return moov_->header.timescale;
-
324 }
-
325 
-
326 double Segmenter::GetDuration() const {
-
327  if (moov_->header.timescale == 0) {
-
328  // Handling the case where this is not properly initialized.
-
329  return 0.0;
-
330  }
-
331 
-
332  return static_cast<double>(moov_->header.duration) / moov_->header.timescale;
-
333 }
+
268  return DoFinalize();
+
269 }
+
270 
+ +
272  scoped_refptr<MediaSample> sample) {
+
273  // Find the fragmenter for this stream.
+
274  DCHECK(stream);
+
275  DCHECK(stream_map_.find(stream) != stream_map_.end());
+
276  uint32_t stream_id = stream_map_[stream];
+
277  Fragmenter* fragmenter = fragmenters_[stream_id];
+
278 
+
279  // Set default sample duration if it has not been set yet.
+
280  if (moov_->extends.tracks[stream_id].default_sample_duration == 0) {
+
281  moov_->extends.tracks[stream_id].default_sample_duration =
+
282  sample->duration();
+
283  }
+
284 
+
285  if (fragmenter->fragment_finalized()) {
+
286  return Status(error::FRAGMENT_FINALIZED,
+
287  "Current fragment is finalized already.");
+
288  }
+
289 
+
290  bool finalize_fragment = false;
+
291  if (fragmenter->fragment_duration() >=
+
292  options_.fragment_duration * stream->info()->time_scale()) {
+
293  if (sample->is_key_frame() || !options_.fragment_sap_aligned) {
+
294  finalize_fragment = true;
+
295  }
+
296  }
+
297  bool finalize_segment = false;
+
298  if (segment_durations_[stream_id] >=
+
299  options_.segment_duration * stream->info()->time_scale()) {
+
300  if (sample->is_key_frame() || !options_.segment_sap_aligned) {
+
301  finalize_segment = true;
+
302  finalize_fragment = true;
+
303  }
+
304  }
+
305 
+
306  Status status;
+
307  if (finalize_fragment) {
+
308  status = FinalizeFragment(finalize_segment, fragmenter);
+
309  if (!status.ok())
+
310  return status;
+
311  }
+
312 
+
313  status = fragmenter->AddSample(sample);
+
314  if (!status.ok())
+
315  return status;
+
316 
+
317  if (sample_duration_ == 0)
+
318  sample_duration_ = sample->duration();
+
319  moov_->tracks[stream_id].media.header.duration += sample->duration();
+
320  segment_durations_[stream_id] += sample->duration();
+
321  DCHECK_GE(segment_durations_[stream_id], fragmenter->fragment_duration());
+
322  return Status::OK;
+
323 }
+
324 
+
325 uint32_t Segmenter::GetReferenceTimeScale() const {
+
326  return moov_->header.timescale;
+
327 }
+
328 
+
329 double Segmenter::GetDuration() const {
+
330  if (moov_->header.timescale == 0) {
+
331  // Handling the case where this is not properly initialized.
+
332  return 0.0;
+
333  }
334 
-
335 void Segmenter::UpdateProgress(uint64_t progress) {
-
336  accumulated_progress_ += progress;
+
335  return static_cast<double>(moov_->header.duration) / moov_->header.timescale;
+
336 }
337 
-
338  if (!progress_listener_) return;
-
339  if (progress_target_ == 0) return;
-
340  // It might happen that accumulated progress exceeds progress_target due to
-
341  // computation errors, e.g. rounding error. Cap it so it never reports > 100%
-
342  // progress.
-
343  if (accumulated_progress_ >= progress_target_) {
-
344  progress_listener_->OnProgress(1.0);
-
345  } else {
-
346  progress_listener_->OnProgress(static_cast<double>(accumulated_progress_) /
-
347  progress_target_);
-
348  }
-
349 }
-
350 
-
351 void Segmenter::SetComplete() {
-
352  if (!progress_listener_) return;
-
353  progress_listener_->OnProgress(1.0);
-
354 }
-
355 
-
356 Status Segmenter::FinalizeSegment() {
-
357  Status status = DoFinalizeSegment();
+
338 void Segmenter::UpdateProgress(uint64_t progress) {
+
339  accumulated_progress_ += progress;
+
340 
+
341  if (!progress_listener_) return;
+
342  if (progress_target_ == 0) return;
+
343  // It might happen that accumulated progress exceeds progress_target due to
+
344  // computation errors, e.g. rounding error. Cap it so it never reports > 100%
+
345  // progress.
+
346  if (accumulated_progress_ >= progress_target_) {
+
347  progress_listener_->OnProgress(1.0);
+
348  } else {
+
349  progress_listener_->OnProgress(static_cast<double>(accumulated_progress_) /
+
350  progress_target_);
+
351  }
+
352 }
+
353 
+
354 void Segmenter::SetComplete() {
+
355  if (!progress_listener_) return;
+
356  progress_listener_->OnProgress(1.0);
+
357 }
358 
-
359  // Reset segment information to initial state.
-
360  sidx_->references.clear();
-
361  std::vector<uint64_t>::iterator it = segment_durations_.begin();
-
362  for (; it != segment_durations_.end(); ++it)
-
363  *it = 0;
-
364 
-
365  return status;
-
366 }
+
359 Status Segmenter::FinalizeSegment() {
+
360  Status status = DoFinalizeSegment();
+
361 
+
362  // Reset segment information to initial state.
+
363  sidx_->references.clear();
+
364  std::vector<uint64_t>::iterator it = segment_durations_.begin();
+
365  for (; it != segment_durations_.end(); ++it)
+
366  *it = 0;
367 
-
368 uint32_t Segmenter::GetReferenceStreamId() {
-
369  DCHECK(sidx_);
-
370  return sidx_->reference_id - 1;
-
371 }
-
372 
-
373 Status Segmenter::FinalizeFragment(bool finalize_segment,
-
374  Fragmenter* fragmenter) {
-
375  fragmenter->FinalizeFragment();
-
376 
-
377  // Check if all tracks are ready for fragmentation.
-
378  for (std::vector<Fragmenter*>::iterator it = fragmenters_.begin();
-
379  it != fragmenters_.end();
-
380  ++it) {
-
381  if (!(*it)->fragment_finalized())
-
382  return Status::OK;
-
383  }
-
384 
-
385  MediaData mdat;
-
386  // Data offset relative to 'moof': moof size + mdat header size.
-
387  // The code will also update box sizes for moof_ and its child boxes.
-
388  uint64_t data_offset = moof_->ComputeSize() + mdat.HeaderSize();
-
389  // 'traf' should follow 'mfhd' moof header box.
-
390  uint64_t next_traf_position = moof_->HeaderSize() + moof_->header.box_size();
-
391  for (size_t i = 0; i < moof_->tracks.size(); ++i) {
-
392  TrackFragment& traf = moof_->tracks[i];
-
393  if (traf.auxiliary_offset.offsets.size() > 0) {
-
394  DCHECK_EQ(traf.auxiliary_offset.offsets.size(), 1u);
-
395  DCHECK(!traf.sample_encryption.sample_encryption_entries.empty());
-
396 
-
397  next_traf_position += traf.box_size();
-
398  // SampleEncryption 'senc' box should be the last box in 'traf'.
-
399  // |auxiliary_offset| should point to the data of SampleEncryption.
-
400  traf.auxiliary_offset.offsets[0] =
-
401  next_traf_position - traf.sample_encryption.box_size() +
-
402  traf.sample_encryption.HeaderSize() +
-
403  sizeof(uint32_t); // for sample count field in 'senc'
-
404  }
-
405  traf.runs[0].data_offset = data_offset + mdat.data_size;
-
406  mdat.data_size += fragmenters_[i]->data()->Size();
-
407  }
-
408 
-
409  // Generate segment reference.
-
410  sidx_->references.resize(sidx_->references.size() + 1);
-
411  fragmenters_[GetReferenceStreamId()]->GenerateSegmentReference(
-
412  &sidx_->references[sidx_->references.size() - 1]);
-
413  sidx_->references[sidx_->references.size() - 1].referenced_size =
-
414  data_offset + mdat.data_size;
-
415 
-
416  // Write the fragment to buffer.
-
417  moof_->Write(fragment_buffer_.get());
-
418  mdat.WriteHeader(fragment_buffer_.get());
-
419  for (Fragmenter* fragmenter : fragmenters_)
-
420  fragment_buffer_->AppendBuffer(*fragmenter->data());
-
421 
-
422  // Increase sequence_number for next fragment.
-
423  ++moof_->header.sequence_number;
+
368  return status;
+
369 }
+
370 
+
371 uint32_t Segmenter::GetReferenceStreamId() {
+
372  DCHECK(sidx_);
+
373  return sidx_->reference_id - 1;
+
374 }
+
375 
+
376 Status Segmenter::FinalizeFragment(bool finalize_segment,
+
377  Fragmenter* fragmenter) {
+
378  fragmenter->FinalizeFragment();
+
379 
+
380  // Check if all tracks are ready for fragmentation.
+
381  for (std::vector<Fragmenter*>::iterator it = fragmenters_.begin();
+
382  it != fragmenters_.end();
+
383  ++it) {
+
384  if (!(*it)->fragment_finalized())
+
385  return Status::OK;
+
386  }
+
387 
+
388  MediaData mdat;
+
389  // Data offset relative to 'moof': moof size + mdat header size.
+
390  // The code will also update box sizes for moof_ and its child boxes.
+
391  uint64_t data_offset = moof_->ComputeSize() + mdat.HeaderSize();
+
392  // 'traf' should follow 'mfhd' moof header box.
+
393  uint64_t next_traf_position = moof_->HeaderSize() + moof_->header.box_size();
+
394  for (size_t i = 0; i < moof_->tracks.size(); ++i) {
+
395  TrackFragment& traf = moof_->tracks[i];
+
396  if (traf.auxiliary_offset.offsets.size() > 0) {
+
397  DCHECK_EQ(traf.auxiliary_offset.offsets.size(), 1u);
+
398  DCHECK(!traf.sample_encryption.sample_encryption_entries.empty());
+
399 
+
400  next_traf_position += traf.box_size();
+
401  // SampleEncryption 'senc' box should be the last box in 'traf'.
+
402  // |auxiliary_offset| should point to the data of SampleEncryption.
+
403  traf.auxiliary_offset.offsets[0] =
+
404  next_traf_position - traf.sample_encryption.box_size() +
+
405  traf.sample_encryption.HeaderSize() +
+
406  sizeof(uint32_t); // for sample count field in 'senc'
+
407  }
+
408  traf.runs[0].data_offset = data_offset + mdat.data_size;
+
409  mdat.data_size += fragmenters_[i]->data()->Size();
+
410  }
+
411 
+
412  // Generate segment reference.
+
413  sidx_->references.resize(sidx_->references.size() + 1);
+
414  fragmenters_[GetReferenceStreamId()]->GenerateSegmentReference(
+
415  &sidx_->references[sidx_->references.size() - 1]);
+
416  sidx_->references[sidx_->references.size() - 1].referenced_size =
+
417  data_offset + mdat.data_size;
+
418 
+
419  // Write the fragment to buffer.
+
420  moof_->Write(fragment_buffer_.get());
+
421  mdat.WriteHeader(fragment_buffer_.get());
+
422  for (Fragmenter* fragmenter : fragmenters_)
+
423  fragment_buffer_->AppendBuffer(*fragmenter->data());
424 
-
425  if (finalize_segment)
-
426  return FinalizeSegment();
+
425  // Increase sequence_number for next fragment.
+
426  ++moof_->header.sequence_number;
427 
-
428  return Status::OK;
-
429 }
+
428  if (finalize_segment)
+
429  return FinalizeSegment();
430 
-
431 } // namespace mp4
-
432 } // namespace media
-
433 } // namespace edash_packager
+
431  return Status::OK;
+
432 }
+
433 
+
434 } // namespace mp4
+
435 } // namespace media
+
436 } // namespace edash_packager
@@ -531,6 +534,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
std::string packager_version_string
Specify the version string to be embedded in the output files.
Definition: muxer_options.h:71
This class listens to progress updates events.
EncryptingFragmenter generates MP4 fragments with sample encrypted.
+
static bool GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)
Definition: aes_cryptor.cc:58
virtual Status AddSample(scoped_refptr< MediaSample > sample)
Definition: fragmenter.cc:36
@@ -546,7 +550,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dae/webm__muxer_8cc_source.html b/docs/d2/dae/webm__muxer_8cc_source.html index b0edad6b77..37f8325d4a 100644 --- a/docs/d2/dae/webm__muxer_8cc_source.html +++ b/docs/d2/dae/webm__muxer_8cc_source.html @@ -95,36 +95,36 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
6 
7 #include "packager/media/formats/webm/webm_muxer.h"
8 
-
9 #include "packager/media/base/media_sample.h"
-
10 #include "packager/media/base/media_stream.h"
-
11 #include "packager/media/base/stream_info.h"
-
12 #include "packager/media/formats/webm/mkv_writer.h"
-
13 #include "packager/media/formats/webm/multi_segment_segmenter.h"
-
14 #include "packager/media/formats/webm/single_segment_segmenter.h"
-
15 #include "packager/media/formats/webm/two_pass_single_segment_segmenter.h"
-
16 
-
17 namespace edash_packager {
-
18 namespace media {
-
19 namespace webm {
-
20 
-
21 WebMMuxer::WebMMuxer(const MuxerOptions& options) : Muxer(options) {}
-
22 WebMMuxer::~WebMMuxer() {}
-
23 
-
24 Status WebMMuxer::Initialize() {
-
25  CHECK_EQ(streams().size(), 1U);
-
26 
-
27  if (crypto_period_duration_in_seconds() > 0) {
-
28  NOTIMPLEMENTED() << "Key rotation is not implemented for WebM";
-
29  return Status(error::UNIMPLEMENTED,
-
30  "Key rotation is not implemented for WebM");
-
31  }
-
32 
-
33  if (encryption_key_source() && (encryption_mode() != kEncryptionModeAesCtr)) {
-
34  NOTIMPLEMENTED()
-
35  << "WebM muxer does not support encryption mode other than AES-CTR.";
-
36  return Status(
-
37  error::UNIMPLEMENTED,
-
38  "WebM muxer does not support encryption mode other than AES-CTR.");
+
9 #include "packager/media/base/fourccs.h"
+
10 #include "packager/media/base/media_sample.h"
+
11 #include "packager/media/base/media_stream.h"
+
12 #include "packager/media/base/stream_info.h"
+
13 #include "packager/media/formats/webm/mkv_writer.h"
+
14 #include "packager/media/formats/webm/multi_segment_segmenter.h"
+
15 #include "packager/media/formats/webm/single_segment_segmenter.h"
+
16 #include "packager/media/formats/webm/two_pass_single_segment_segmenter.h"
+
17 
+
18 namespace edash_packager {
+
19 namespace media {
+
20 namespace webm {
+
21 
+
22 WebMMuxer::WebMMuxer(const MuxerOptions& options) : Muxer(options) {}
+
23 WebMMuxer::~WebMMuxer() {}
+
24 
+
25 Status WebMMuxer::Initialize() {
+
26  CHECK_EQ(streams().size(), 1U);
+
27 
+
28  if (crypto_period_duration_in_seconds() > 0) {
+
29  NOTIMPLEMENTED() << "Key rotation is not implemented for WebM";
+
30  return Status(error::UNIMPLEMENTED,
+
31  "Key rotation is not implemented for WebM");
+
32  }
+
33 
+
34  if (encryption_key_source() && (protection_scheme() != FOURCC_cenc)) {
+
35  NOTIMPLEMENTED()
+
36  << "WebM does not support protection scheme other than 'cenc'.";
+
37  return Status(error::UNIMPLEMENTED,
+
38  "WebM does not support protection scheme other than 'cenc'.");
39  }
40 
41  scoped_ptr<MkvWriter> writer(new MkvWriter);
@@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
126 } // namespace edash_packager
-
WebMMuxer(const MuxerOptions &options)
Create a WebMMuxer object from MuxerOptions.
Definition: webm_muxer.cc:21
+
WebMMuxer(const MuxerOptions &options)
Create a WebMMuxer object from MuxerOptions.
Definition: webm_muxer.cc:22
This structure contains the list of configuration options for Muxer.
Definition: muxer_options.h:18
@@ -223,7 +223,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/db7/classedash__packager_1_1media_1_1NaluReader-members.html b/docs/d2/db7/classedash__packager_1_1media_1_1NaluReader-members.html index d6f3fd0b87..6b3b3e7e5f 100644 --- a/docs/d2/db7/classedash__packager_1_1media_1_1NaluReader-members.html +++ b/docs/d2/db7/classedash__packager_1_1media_1_1NaluReader-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dc5/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox-members.html b/docs/d2/dc5/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox-members.html index 90501502b5..18b4854991 100644 --- a/docs/d2/dc5/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox-members.html +++ b/docs/d2/dc5/structedash__packager_1_1media_1_1mp4_1_1CueSettingsBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dd6/mkv__writer_8h_source.html b/docs/d2/dd6/mkv__writer_8h_source.html index cbf153e2db..de6a28d034 100644 --- a/docs/d2/dd6/mkv__writer_8h_source.html +++ b/docs/d2/dd6/mkv__writer_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html b/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html index 1937b1cb92..683c1cbe38 100644 --- a/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html +++ b/docs/d2/dd9/structedash__packager_1_1media_1_1VideoStreamInfoParameters.html @@ -146,7 +146,7 @@ bool is_encrypted diff --git a/docs/d2/dda/vp__codec__configuration_8cc_source.html b/docs/d2/dda/vp__codec__configuration_8cc_source.html index f45ba2e9fc..d6e6b6104f 100644 --- a/docs/d2/dda/vp__codec__configuration_8cc_source.html +++ b/docs/d2/dda/vp__codec__configuration_8cc_source.html @@ -217,7 +217,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/de6/packager__main_8cc_source.html b/docs/d2/de6/packager__main_8cc_source.html index 63fc642585..966bbddaec 100644 --- a/docs/d2/de6/packager__main_8cc_source.html +++ b/docs/d2/de6/packager__main_8cc_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
25 #include "packager/base/time/clock.h"
26 #include "packager/media/base/container_names.h"
27 #include "packager/media/base/demuxer.h"
-
28 #include "packager/media/base/encryption_modes.h"
+
28 #include "packager/media/base/fourccs.h"
29 #include "packager/media/base/key_source.h"
30 #include "packager/media/base/muxer_options.h"
31 #include "packager/media/base/muxer_util.h"
@@ -194,390 +194,394 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
105  return "";
106 }
107 
-
108 edash_packager::media::EncryptionMode GetEncryptionMode(
+
108 edash_packager::media::FourCC GetProtectionScheme(
109  const std::string& protection_scheme) {
110  if (protection_scheme == "cenc") {
-
111  return edash_packager::media::kEncryptionModeAesCtr;
-
112  } else if (protection_scheme == "cbc1") {
-
113  return edash_packager::media::kEncryptionModeAesCbc;
-
114  } else {
-
115  LOG(ERROR) << "Unknown protection scheme: " << protection_scheme;
-
116  return edash_packager::media::kEncryptionModeUnknown;
-
117  }
-
118 }
-
119 
-
120 } // namespace
-
121 
-
122 namespace edash_packager {
-
123 namespace media {
-
124 
-
125 // A fake clock that always return time 0 (epoch). Should only be used for
-
126 // testing.
-
127 class FakeClock : public base::Clock {
-
128  public:
-
129  base::Time Now() override { return base::Time(); }
-
130 };
-
131 
-
132 // Demux, Mux(es) and worker thread used to remux a source file/stream.
-
133 class RemuxJob : public base::SimpleThread {
-
134  public:
-
135  RemuxJob(scoped_ptr<Demuxer> demuxer)
-
136  : SimpleThread("RemuxJob"),
-
137  demuxer_(demuxer.Pass()) {}
-
138 
-
139  ~RemuxJob() override {
-
140  STLDeleteElements(&muxers_);
-
141  }
+
111  return edash_packager::media::FOURCC_cenc;
+
112  } else if (protection_scheme == "cens") {
+
113  return edash_packager::media::FOURCC_cens;
+
114  } else if (protection_scheme == "cbc1") {
+
115  return edash_packager::media::FOURCC_cbc1;
+
116  } else if (protection_scheme == "cbcs") {
+
117  return edash_packager::media::FOURCC_cbcs;
+
118  } else {
+
119  LOG(ERROR) << "Unknown protection scheme: " << protection_scheme;
+
120  return edash_packager::media::FOURCC_NULL;
+
121  }
+
122 }
+
123 
+
124 } // namespace
+
125 
+
126 namespace edash_packager {
+
127 namespace media {
+
128 
+
129 // A fake clock that always return time 0 (epoch). Should only be used for
+
130 // testing.
+
131 class FakeClock : public base::Clock {
+
132  public:
+
133  base::Time Now() override { return base::Time(); }
+
134 };
+
135 
+
136 // Demux, Mux(es) and worker thread used to remux a source file/stream.
+
137 class RemuxJob : public base::SimpleThread {
+
138  public:
+
139  RemuxJob(scoped_ptr<Demuxer> demuxer)
+
140  : SimpleThread("RemuxJob"),
+
141  demuxer_(demuxer.Pass()) {}
142 
-
143  void AddMuxer(scoped_ptr<Muxer> mux) {
-
144  muxers_.push_back(mux.release());
+
143  ~RemuxJob() override {
+
144  STLDeleteElements(&muxers_);
145  }
146 
-
147  Demuxer* demuxer() { return demuxer_.get(); }
-
148  Status status() { return status_; }
-
149 
-
150  private:
-
151  void Run() override {
-
152  DCHECK(demuxer_);
-
153  status_ = demuxer_->Run();
-
154  }
-
155 
-
156  scoped_ptr<Demuxer> demuxer_;
-
157  std::vector<Muxer*> muxers_;
-
158  Status status_;
+
147  void AddMuxer(scoped_ptr<Muxer> mux) {
+
148  muxers_.push_back(mux.release());
+
149  }
+
150 
+
151  Demuxer* demuxer() { return demuxer_.get(); }
+
152  Status status() { return status_; }
+
153 
+
154  private:
+
155  void Run() override {
+
156  DCHECK(demuxer_);
+
157  status_ = demuxer_->Run();
+
158  }
159 
-
160  DISALLOW_COPY_AND_ASSIGN(RemuxJob);
-
161 };
-
162 
-
163 bool StreamInfoToTextMediaInfo(const StreamDescriptor& stream_descriptor,
-
164  const MuxerOptions& stream_muxer_options,
-
165  MediaInfo* text_media_info) {
-
166  const std::string& language = stream_descriptor.language;
-
167  std::string format = DetermineTextFileFormat(stream_descriptor.input);
-
168  if (format.empty()) {
-
169  LOG(ERROR) << "Failed to determine the text file format for "
-
170  << stream_descriptor.input;
-
171  return false;
-
172  }
-
173 
-
174  if (!File::Copy(stream_descriptor.input.c_str(),
-
175  stream_muxer_options.output_file_name.c_str())) {
-
176  LOG(ERROR) << "Failed to copy the input file (" << stream_descriptor.input
-
177  << ") to output file (" << stream_muxer_options.output_file_name
-
178  << ").";
-
179  return false;
-
180  }
-
181 
-
182  text_media_info->set_media_file_name(stream_muxer_options.output_file_name);
-
183  text_media_info->set_container_type(MediaInfo::CONTAINER_TEXT);
-
184 
-
185  if (stream_muxer_options.bandwidth != 0) {
-
186  text_media_info->set_bandwidth(stream_muxer_options.bandwidth);
-
187  } else {
-
188  // Text files are usually small and since the input is one file; there's no
-
189  // way for the player to do ranged requests. So set this value to something
-
190  // reasonable.
-
191  text_media_info->set_bandwidth(256);
-
192  }
-
193 
-
194  MediaInfo::TextInfo* text_info = text_media_info->mutable_text_info();
-
195  text_info->set_format(format);
-
196  if (!language.empty())
-
197  text_info->set_language(language);
-
198 
-
199  return true;
-
200 }
-
201 
-
202 scoped_ptr<Muxer> CreateOutputMuxer(const MuxerOptions& options,
-
203  MediaContainerName container) {
-
204  if (container == CONTAINER_WEBM) {
-
205  return scoped_ptr<Muxer>(new webm::WebMMuxer(options));
-
206  } else {
-
207  DCHECK_EQ(container, CONTAINER_MOV);
-
208  return scoped_ptr<Muxer>(new mp4::MP4Muxer(options));
-
209  }
-
210 }
-
211 
-
212 bool CreateRemuxJobs(const StreamDescriptorList& stream_descriptors,
-
213  const MuxerOptions& muxer_options,
-
214  FakeClock* fake_clock,
-
215  KeySource* key_source,
-
216  MpdNotifier* mpd_notifier,
-
217  std::vector<RemuxJob*>* remux_jobs) {
-
218  DCHECK(remux_jobs);
-
219 
-
220  std::string previous_input;
-
221  for (StreamDescriptorList::const_iterator stream_iter =
-
222  stream_descriptors.begin();
-
223  stream_iter != stream_descriptors.end();
-
224  ++stream_iter) {
-
225  // Process stream descriptor.
-
226  MuxerOptions stream_muxer_options(muxer_options);
-
227  stream_muxer_options.output_file_name = stream_iter->output;
-
228  if (!stream_iter->segment_template.empty()) {
-
229  if (!ValidateSegmentTemplate(stream_iter->segment_template)) {
-
230  LOG(ERROR) << "ERROR: segment template with '"
-
231  << stream_iter->segment_template << "' is invalid.";
-
232  return false;
-
233  }
-
234  stream_muxer_options.segment_template = stream_iter->segment_template;
-
235  }
-
236  stream_muxer_options.bandwidth = stream_iter->bandwidth;
-
237 
-
238  // Handle text input.
-
239  if (stream_iter->stream_selector == "text") {
-
240  MediaInfo text_media_info;
-
241  if (!StreamInfoToTextMediaInfo(*stream_iter, stream_muxer_options,
-
242  &text_media_info)) {
-
243  return false;
-
244  }
-
245 
-
246  if (mpd_notifier) {
-
247  uint32 unused;
-
248  if (!mpd_notifier->NotifyNewContainer(text_media_info, &unused)) {
-
249  LOG(ERROR) << "Failed to process text file " << stream_iter->input;
-
250  } else {
-
251  mpd_notifier->Flush();
-
252  }
-
253  } else if (FLAGS_output_media_info) {
- -
255  text_media_info,
-
256  stream_muxer_options.output_file_name + kMediaInfoSuffix);
-
257  } else {
-
258  NOTIMPLEMENTED()
-
259  << "--mpd_output or --output_media_info flags are "
-
260  "required for text output. Skipping manifest related output for "
-
261  << stream_iter->input;
-
262  }
-
263  continue;
-
264  }
-
265 
-
266  if (stream_iter->input != previous_input) {
-
267  // New remux job needed. Create demux and job thread.
-
268  scoped_ptr<Demuxer> demuxer(new Demuxer(stream_iter->input));
-
269  if (FLAGS_enable_widevine_decryption ||
-
270  FLAGS_enable_fixed_key_decryption) {
-
271  scoped_ptr<KeySource> key_source(CreateDecryptionKeySource());
-
272  if (!key_source)
-
273  return false;
-
274  demuxer->SetKeySource(key_source.Pass());
-
275  }
-
276  Status status = demuxer->Initialize();
-
277  if (!status.ok()) {
-
278  LOG(ERROR) << "Demuxer failed to initialize: " << status.ToString();
-
279  return false;
-
280  }
-
281  if (FLAGS_dump_stream_info) {
-
282  printf("\nFile \"%s\":\n", stream_iter->input.c_str());
-
283  DumpStreamInfo(demuxer->streams());
-
284  if (stream_iter->output.empty())
-
285  continue; // just need stream info.
-
286  }
-
287  remux_jobs->push_back(new RemuxJob(demuxer.Pass()));
-
288  previous_input = stream_iter->input;
-
289  }
-
290  DCHECK(!remux_jobs->empty());
-
291 
-
292  MediaContainerName output_format = stream_iter->output_format;
-
293  if (output_format == CONTAINER_UNKNOWN) {
-
294  output_format =
-
295  DetermineContainerFromFileName(stream_muxer_options.output_file_name);
-
296 
-
297  if (output_format == CONTAINER_UNKNOWN) {
-
298  LOG(ERROR) << "Unable to determine output format for file "
-
299  << stream_muxer_options.output_file_name;
-
300  return false;
-
301  }
-
302  }
-
303 
-
304  scoped_ptr<Muxer> muxer(
-
305  CreateOutputMuxer(stream_muxer_options, output_format));
-
306  if (FLAGS_use_fake_clock_for_muxer) muxer->set_clock(fake_clock);
+
160  scoped_ptr<Demuxer> demuxer_;
+
161  std::vector<Muxer*> muxers_;
+
162  Status status_;
+
163 
+
164  DISALLOW_COPY_AND_ASSIGN(RemuxJob);
+
165 };
+
166 
+
167 bool StreamInfoToTextMediaInfo(const StreamDescriptor& stream_descriptor,
+
168  const MuxerOptions& stream_muxer_options,
+
169  MediaInfo* text_media_info) {
+
170  const std::string& language = stream_descriptor.language;
+
171  std::string format = DetermineTextFileFormat(stream_descriptor.input);
+
172  if (format.empty()) {
+
173  LOG(ERROR) << "Failed to determine the text file format for "
+
174  << stream_descriptor.input;
+
175  return false;
+
176  }
+
177 
+
178  if (!File::Copy(stream_descriptor.input.c_str(),
+
179  stream_muxer_options.output_file_name.c_str())) {
+
180  LOG(ERROR) << "Failed to copy the input file (" << stream_descriptor.input
+
181  << ") to output file (" << stream_muxer_options.output_file_name
+
182  << ").";
+
183  return false;
+
184  }
+
185 
+
186  text_media_info->set_media_file_name(stream_muxer_options.output_file_name);
+
187  text_media_info->set_container_type(MediaInfo::CONTAINER_TEXT);
+
188 
+
189  if (stream_muxer_options.bandwidth != 0) {
+
190  text_media_info->set_bandwidth(stream_muxer_options.bandwidth);
+
191  } else {
+
192  // Text files are usually small and since the input is one file; there's no
+
193  // way for the player to do ranged requests. So set this value to something
+
194  // reasonable.
+
195  text_media_info->set_bandwidth(256);
+
196  }
+
197 
+
198  MediaInfo::TextInfo* text_info = text_media_info->mutable_text_info();
+
199  text_info->set_format(format);
+
200  if (!language.empty())
+
201  text_info->set_language(language);
+
202 
+
203  return true;
+
204 }
+
205 
+
206 scoped_ptr<Muxer> CreateOutputMuxer(const MuxerOptions& options,
+
207  MediaContainerName container) {
+
208  if (container == CONTAINER_WEBM) {
+
209  return scoped_ptr<Muxer>(new webm::WebMMuxer(options));
+
210  } else {
+
211  DCHECK_EQ(container, CONTAINER_MOV);
+
212  return scoped_ptr<Muxer>(new mp4::MP4Muxer(options));
+
213  }
+
214 }
+
215 
+
216 bool CreateRemuxJobs(const StreamDescriptorList& stream_descriptors,
+
217  const MuxerOptions& muxer_options,
+
218  FakeClock* fake_clock,
+
219  KeySource* key_source,
+
220  MpdNotifier* mpd_notifier,
+
221  std::vector<RemuxJob*>* remux_jobs) {
+
222  DCHECK(remux_jobs);
+
223 
+
224  std::string previous_input;
+
225  for (StreamDescriptorList::const_iterator stream_iter =
+
226  stream_descriptors.begin();
+
227  stream_iter != stream_descriptors.end();
+
228  ++stream_iter) {
+
229  // Process stream descriptor.
+
230  MuxerOptions stream_muxer_options(muxer_options);
+
231  stream_muxer_options.output_file_name = stream_iter->output;
+
232  if (!stream_iter->segment_template.empty()) {
+
233  if (!ValidateSegmentTemplate(stream_iter->segment_template)) {
+
234  LOG(ERROR) << "ERROR: segment template with '"
+
235  << stream_iter->segment_template << "' is invalid.";
+
236  return false;
+
237  }
+
238  stream_muxer_options.segment_template = stream_iter->segment_template;
+
239  }
+
240  stream_muxer_options.bandwidth = stream_iter->bandwidth;
+
241 
+
242  // Handle text input.
+
243  if (stream_iter->stream_selector == "text") {
+
244  MediaInfo text_media_info;
+
245  if (!StreamInfoToTextMediaInfo(*stream_iter, stream_muxer_options,
+
246  &text_media_info)) {
+
247  return false;
+
248  }
+
249 
+
250  if (mpd_notifier) {
+
251  uint32 unused;
+
252  if (!mpd_notifier->NotifyNewContainer(text_media_info, &unused)) {
+
253  LOG(ERROR) << "Failed to process text file " << stream_iter->input;
+
254  } else {
+
255  mpd_notifier->Flush();
+
256  }
+
257  } else if (FLAGS_output_media_info) {
+ +
259  text_media_info,
+
260  stream_muxer_options.output_file_name + kMediaInfoSuffix);
+
261  } else {
+
262  NOTIMPLEMENTED()
+
263  << "--mpd_output or --output_media_info flags are "
+
264  "required for text output. Skipping manifest related output for "
+
265  << stream_iter->input;
+
266  }
+
267  continue;
+
268  }
+
269 
+
270  if (stream_iter->input != previous_input) {
+
271  // New remux job needed. Create demux and job thread.
+
272  scoped_ptr<Demuxer> demuxer(new Demuxer(stream_iter->input));
+
273  if (FLAGS_enable_widevine_decryption ||
+
274  FLAGS_enable_fixed_key_decryption) {
+
275  scoped_ptr<KeySource> key_source(CreateDecryptionKeySource());
+
276  if (!key_source)
+
277  return false;
+
278  demuxer->SetKeySource(key_source.Pass());
+
279  }
+
280  Status status = demuxer->Initialize();
+
281  if (!status.ok()) {
+
282  LOG(ERROR) << "Demuxer failed to initialize: " << status.ToString();
+
283  return false;
+
284  }
+
285  if (FLAGS_dump_stream_info) {
+
286  printf("\nFile \"%s\":\n", stream_iter->input.c_str());
+
287  DumpStreamInfo(demuxer->streams());
+
288  if (stream_iter->output.empty())
+
289  continue; // just need stream info.
+
290  }
+
291  remux_jobs->push_back(new RemuxJob(demuxer.Pass()));
+
292  previous_input = stream_iter->input;
+
293  }
+
294  DCHECK(!remux_jobs->empty());
+
295 
+
296  MediaContainerName output_format = stream_iter->output_format;
+
297  if (output_format == CONTAINER_UNKNOWN) {
+
298  output_format =
+
299  DetermineContainerFromFileName(stream_muxer_options.output_file_name);
+
300 
+
301  if (output_format == CONTAINER_UNKNOWN) {
+
302  LOG(ERROR) << "Unable to determine output format for file "
+
303  << stream_muxer_options.output_file_name;
+
304  return false;
+
305  }
+
306  }
307 
-
308  if (key_source) {
-
309  muxer->SetKeySource(key_source,
-
310  FLAGS_max_sd_pixels,
-
311  FLAGS_clear_lead,
-
312  FLAGS_crypto_period_duration,
-
313  GetEncryptionMode(FLAGS_protection_scheme));
-
314  }
-
315 
-
316  scoped_ptr<MuxerListener> muxer_listener;
-
317  DCHECK(!(FLAGS_output_media_info && mpd_notifier));
-
318  if (FLAGS_output_media_info) {
-
319  const std::string output_media_info_file_name =
-
320  stream_muxer_options.output_file_name + kMediaInfoSuffix;
-
321  scoped_ptr<VodMediaInfoDumpMuxerListener>
-
322  vod_media_info_dump_muxer_listener(
-
323  new VodMediaInfoDumpMuxerListener(output_media_info_file_name));
-
324  muxer_listener = vod_media_info_dump_muxer_listener.Pass();
-
325  }
-
326  if (mpd_notifier) {
-
327  scoped_ptr<MpdNotifyMuxerListener> mpd_notify_muxer_listener(
-
328  new MpdNotifyMuxerListener(mpd_notifier));
-
329  muxer_listener = mpd_notify_muxer_listener.Pass();
-
330  }
-
331 
-
332  if (muxer_listener)
-
333  muxer->SetMuxerListener(muxer_listener.Pass());
-
334 
-
335  if (!AddStreamToMuxer(remux_jobs->back()->demuxer()->streams(),
-
336  stream_iter->stream_selector,
-
337  stream_iter->language,
-
338  muxer.get()))
-
339  return false;
-
340  remux_jobs->back()->AddMuxer(muxer.Pass());
-
341  }
-
342 
-
343  return true;
-
344 }
-
345 
-
346 Status RunRemuxJobs(const std::vector<RemuxJob*>& remux_jobs) {
-
347  // Start the job threads.
-
348  for (std::vector<RemuxJob*>::const_iterator job_iter = remux_jobs.begin();
-
349  job_iter != remux_jobs.end();
-
350  ++job_iter) {
-
351  (*job_iter)->Start();
-
352  }
-
353 
-
354  // Wait for all jobs to complete or an error occurs.
-
355  Status status;
-
356  bool all_joined;
-
357  do {
-
358  all_joined = true;
-
359  for (std::vector<RemuxJob*>::const_iterator job_iter = remux_jobs.begin();
-
360  job_iter != remux_jobs.end();
-
361  ++job_iter) {
-
362  if ((*job_iter)->HasBeenJoined()) {
-
363  status = (*job_iter)->status();
-
364  if (!status.ok())
-
365  break;
-
366  } else {
-
367  all_joined = false;
-
368  (*job_iter)->Join();
-
369  }
-
370  }
-
371  } while (!all_joined && status.ok());
-
372 
-
373  return status;
-
374 }
-
375 
-
376 bool RunPackager(const StreamDescriptorList& stream_descriptors) {
-
377  EncryptionMode encryption_mode = GetEncryptionMode(FLAGS_protection_scheme);
-
378  if (encryption_mode == kEncryptionModeUnknown)
-
379  return false;
-
380  if (encryption_mode == kEncryptionModeAesCbc && !FLAGS_iv.empty()) {
-
381  if (FLAGS_iv.size() != 16) {
-
382  LOG(ERROR) << "Iv size should be 16 bytes for CBC encryption mode.";
-
383  return false;
-
384  }
-
385  }
-
386 
-
387  if (!AssignFlagsFromProfile())
-
388  return false;
-
389 
-
390  if (FLAGS_output_media_info && !FLAGS_mpd_output.empty()) {
-
391  NOTIMPLEMENTED() << "ERROR: --output_media_info and --mpd_output do not "
-
392  "work together.";
-
393  return false;
-
394  }
-
395  if (FLAGS_output_media_info && !FLAGS_single_segment) {
-
396  // TODO(rkuroiwa, kqyang): Support partial media info dump for live.
-
397  NOTIMPLEMENTED() << "ERROR: --output_media_info is only supported if "
-
398  "--single_segment is true.";
-
399  return false;
-
400  }
-
401 
-
402  // Get basic muxer options.
-
403  MuxerOptions muxer_options;
-
404  if (!GetMuxerOptions(&muxer_options))
-
405  return false;
-
406 
-
407  MpdOptions mpd_options;
-
408  if (!GetMpdOptions(&mpd_options))
+
308  scoped_ptr<Muxer> muxer(
+
309  CreateOutputMuxer(stream_muxer_options, output_format));
+
310  if (FLAGS_use_fake_clock_for_muxer) muxer->set_clock(fake_clock);
+
311 
+
312  if (key_source) {
+
313  muxer->SetKeySource(key_source,
+
314  FLAGS_max_sd_pixels,
+
315  FLAGS_clear_lead,
+
316  FLAGS_crypto_period_duration,
+
317  GetProtectionScheme(FLAGS_protection_scheme));
+
318  }
+
319 
+
320  scoped_ptr<MuxerListener> muxer_listener;
+
321  DCHECK(!(FLAGS_output_media_info && mpd_notifier));
+
322  if (FLAGS_output_media_info) {
+
323  const std::string output_media_info_file_name =
+
324  stream_muxer_options.output_file_name + kMediaInfoSuffix;
+
325  scoped_ptr<VodMediaInfoDumpMuxerListener>
+
326  vod_media_info_dump_muxer_listener(
+
327  new VodMediaInfoDumpMuxerListener(output_media_info_file_name));
+
328  muxer_listener = vod_media_info_dump_muxer_listener.Pass();
+
329  }
+
330  if (mpd_notifier) {
+
331  scoped_ptr<MpdNotifyMuxerListener> mpd_notify_muxer_listener(
+
332  new MpdNotifyMuxerListener(mpd_notifier));
+
333  muxer_listener = mpd_notify_muxer_listener.Pass();
+
334  }
+
335 
+
336  if (muxer_listener)
+
337  muxer->SetMuxerListener(muxer_listener.Pass());
+
338 
+
339  if (!AddStreamToMuxer(remux_jobs->back()->demuxer()->streams(),
+
340  stream_iter->stream_selector,
+
341  stream_iter->language,
+
342  muxer.get()))
+
343  return false;
+
344  remux_jobs->back()->AddMuxer(muxer.Pass());
+
345  }
+
346 
+
347  return true;
+
348 }
+
349 
+
350 Status RunRemuxJobs(const std::vector<RemuxJob*>& remux_jobs) {
+
351  // Start the job threads.
+
352  for (std::vector<RemuxJob*>::const_iterator job_iter = remux_jobs.begin();
+
353  job_iter != remux_jobs.end();
+
354  ++job_iter) {
+
355  (*job_iter)->Start();
+
356  }
+
357 
+
358  // Wait for all jobs to complete or an error occurs.
+
359  Status status;
+
360  bool all_joined;
+
361  do {
+
362  all_joined = true;
+
363  for (std::vector<RemuxJob*>::const_iterator job_iter = remux_jobs.begin();
+
364  job_iter != remux_jobs.end();
+
365  ++job_iter) {
+
366  if ((*job_iter)->HasBeenJoined()) {
+
367  status = (*job_iter)->status();
+
368  if (!status.ok())
+
369  break;
+
370  } else {
+
371  all_joined = false;
+
372  (*job_iter)->Join();
+
373  }
+
374  }
+
375  } while (!all_joined && status.ok());
+
376 
+
377  return status;
+
378 }
+
379 
+
380 bool RunPackager(const StreamDescriptorList& stream_descriptors) {
+
381  const FourCC protection_scheme = GetProtectionScheme(FLAGS_protection_scheme);
+
382  if (protection_scheme == FOURCC_NULL)
+
383  return false;
+
384  if (protection_scheme == FOURCC_cbc1 || protection_scheme == FOURCC_cbcs) {
+
385  if (!FLAGS_iv.empty() && FLAGS_iv.size() != 16) {
+
386  LOG(ERROR) << "Iv size should be 16 bytes for CBC encryption mode.";
+
387  return false;
+
388  }
+
389  }
+
390 
+
391  if (!AssignFlagsFromProfile())
+
392  return false;
+
393 
+
394  if (FLAGS_output_media_info && !FLAGS_mpd_output.empty()) {
+
395  NOTIMPLEMENTED() << "ERROR: --output_media_info and --mpd_output do not "
+
396  "work together.";
+
397  return false;
+
398  }
+
399  if (FLAGS_output_media_info && !FLAGS_single_segment) {
+
400  // TODO(rkuroiwa, kqyang): Support partial media info dump for live.
+
401  NOTIMPLEMENTED() << "ERROR: --output_media_info is only supported if "
+
402  "--single_segment is true.";
+
403  return false;
+
404  }
+
405 
+
406  // Get basic muxer options.
+
407  MuxerOptions muxer_options;
+
408  if (!GetMuxerOptions(&muxer_options))
409  return false;
410 
-
411  // Create encryption key source if needed.
-
412  scoped_ptr<KeySource> encryption_key_source;
-
413  if (FLAGS_enable_widevine_encryption || FLAGS_enable_fixed_key_encryption) {
-
414  encryption_key_source = CreateEncryptionKeySource();
-
415  if (!encryption_key_source)
-
416  return false;
-
417  }
-
418 
-
419  scoped_ptr<MpdNotifier> mpd_notifier;
-
420  if (!FLAGS_mpd_output.empty()) {
-
421  DashProfile profile =
-
422  FLAGS_single_segment ? kOnDemandProfile : kLiveProfile;
-
423  std::vector<std::string> base_urls;
-
424  base::SplitString(FLAGS_base_urls, ',', &base_urls);
-
425  if (FLAGS_generate_dash_if_iop_compliant_mpd) {
-
426  mpd_notifier.reset(new DashIopMpdNotifier(profile, mpd_options, base_urls,
-
427  FLAGS_mpd_output));
-
428  } else {
-
429  mpd_notifier.reset(new SimpleMpdNotifier(profile, mpd_options, base_urls,
-
430  FLAGS_mpd_output));
-
431  }
-
432  if (!mpd_notifier->Init()) {
-
433  LOG(ERROR) << "MpdNotifier failed to initialize.";
-
434  return false;
+
411  MpdOptions mpd_options;
+
412  if (!GetMpdOptions(&mpd_options))
+
413  return false;
+
414 
+
415  // Create encryption key source if needed.
+
416  scoped_ptr<KeySource> encryption_key_source;
+
417  if (FLAGS_enable_widevine_encryption || FLAGS_enable_fixed_key_encryption) {
+
418  encryption_key_source = CreateEncryptionKeySource();
+
419  if (!encryption_key_source)
+
420  return false;
+
421  }
+
422 
+
423  scoped_ptr<MpdNotifier> mpd_notifier;
+
424  if (!FLAGS_mpd_output.empty()) {
+
425  DashProfile profile =
+
426  FLAGS_single_segment ? kOnDemandProfile : kLiveProfile;
+
427  std::vector<std::string> base_urls;
+
428  base::SplitString(FLAGS_base_urls, ',', &base_urls);
+
429  if (FLAGS_generate_dash_if_iop_compliant_mpd) {
+
430  mpd_notifier.reset(new DashIopMpdNotifier(profile, mpd_options, base_urls,
+
431  FLAGS_mpd_output));
+
432  } else {
+
433  mpd_notifier.reset(new SimpleMpdNotifier(profile, mpd_options, base_urls,
+
434  FLAGS_mpd_output));
435  }
-
436  }
-
437 
-
438  std::vector<RemuxJob*> remux_jobs;
-
439  STLElementDeleter<std::vector<RemuxJob*> > scoped_jobs_deleter(&remux_jobs);
-
440  FakeClock fake_clock;
-
441  if (!CreateRemuxJobs(stream_descriptors, muxer_options, &fake_clock,
-
442  encryption_key_source.get(), mpd_notifier.get(),
-
443  &remux_jobs)) {
-
444  return false;
-
445  }
-
446 
-
447  Status status = RunRemuxJobs(remux_jobs);
-
448  if (!status.ok()) {
-
449  LOG(ERROR) << "Packaging Error: " << status.ToString();
-
450  return false;
-
451  }
-
452 
-
453  printf("Packaging completed successfully.\n");
-
454  return true;
-
455 }
+
436  if (!mpd_notifier->Init()) {
+
437  LOG(ERROR) << "MpdNotifier failed to initialize.";
+
438  return false;
+
439  }
+
440  }
+
441 
+
442  std::vector<RemuxJob*> remux_jobs;
+
443  STLElementDeleter<std::vector<RemuxJob*> > scoped_jobs_deleter(&remux_jobs);
+
444  FakeClock fake_clock;
+
445  if (!CreateRemuxJobs(stream_descriptors, muxer_options, &fake_clock,
+
446  encryption_key_source.get(), mpd_notifier.get(),
+
447  &remux_jobs)) {
+
448  return false;
+
449  }
+
450 
+
451  Status status = RunRemuxJobs(remux_jobs);
+
452  if (!status.ok()) {
+
453  LOG(ERROR) << "Packaging Error: " << status.ToString();
+
454  return false;
+
455  }
456 
-
457 int PackagerMain(int argc, char** argv) {
-
458  base::AtExitManager exit;
-
459  // Needed to enable VLOG/DVLOG through --vmodule or --v.
-
460  base::CommandLine::Init(argc, argv);
-
461  CHECK(logging::InitLogging(logging::LoggingSettings()));
-
462 
-
463  google::SetUsageMessage(base::StringPrintf(kUsage, argv[0]));
-
464  google::ParseCommandLineFlags(&argc, &argv, true);
-
465  if (argc < 2) {
-
466  std::string version_string =
-
467  base::StringPrintf("edash-packager version %s", kPackagerVersion);
-
468  google::ShowUsageWithFlags(version_string.c_str());
-
469  return kSuccess;
-
470  }
-
471 
- -
473  return kArgumentValidationFailed;
-
474 
-
475  edash_packager::media::LibcryptoThreading libcrypto_threading;
-
476  // TODO(tinskip): Make InsertStreamDescriptor a member of
-
477  // StreamDescriptorList.
-
478  StreamDescriptorList stream_descriptors;
-
479  for (int i = 1; i < argc; ++i) {
-
480  if (!InsertStreamDescriptor(argv[i], &stream_descriptors))
-
481  return kArgumentValidationFailed;
-
482  }
-
483  return RunPackager(stream_descriptors) ? kSuccess : kPackagingFailed;
-
484 }
-
485 
-
486 } // namespace media
-
487 } // namespace edash_packager
-
488 
-
489 int main(int argc, char** argv) {
-
490  return edash_packager::media::PackagerMain(argc, argv);
-
491 }
+
457  printf("Packaging completed successfully.\n");
+
458  return true;
+
459 }
+
460 
+
461 int PackagerMain(int argc, char** argv) {
+
462  base::AtExitManager exit;
+
463  // Needed to enable VLOG/DVLOG through --vmodule or --v.
+
464  base::CommandLine::Init(argc, argv);
+
465  CHECK(logging::InitLogging(logging::LoggingSettings()));
+
466 
+
467  google::SetUsageMessage(base::StringPrintf(kUsage, argv[0]));
+
468  google::ParseCommandLineFlags(&argc, &argv, true);
+
469  if (argc < 2) {
+
470  std::string version_string =
+
471  base::StringPrintf("edash-packager version %s", kPackagerVersion);
+
472  google::ShowUsageWithFlags(version_string.c_str());
+
473  return kSuccess;
+
474  }
+
475 
+ +
477  return kArgumentValidationFailed;
+
478 
+
479  edash_packager::media::LibcryptoThreading libcrypto_threading;
+
480  // TODO(tinskip): Make InsertStreamDescriptor a member of
+
481  // StreamDescriptorList.
+
482  StreamDescriptorList stream_descriptors;
+
483  for (int i = 1; i < argc; ++i) {
+
484  if (!InsertStreamDescriptor(argv[i], &stream_descriptors))
+
485  return kArgumentValidationFailed;
+
486  }
+
487  return RunPackager(stream_descriptors) ? kSuccess : kPackagingFailed;
+
488 }
+
489 
+
490 } // namespace media
+
491 } // namespace edash_packager
+
492 
+
493 int main(int argc, char** argv) {
+
494  return edash_packager::media::PackagerMain(argc, argv);
+
495 }
static bool ReadFileToString(const char *file_name, std::string *contents)
Definition: file.cc:184
@@ -587,7 +591,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/deb/es__parser_8h_source.html b/docs/d2/deb/es__parser_8h_source.html index 829afc384e..9d2e6fa600 100644 --- a/docs/d2/deb/es__parser_8h_source.html +++ b/docs/d2/deb/es__parser_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dee/pes__packet__generator_8cc_source.html b/docs/d2/dee/pes__packet__generator_8cc_source.html index 662bbe9cae..35f99022f3 100644 --- a/docs/d2/dee/pes__packet__generator_8cc_source.html +++ b/docs/d2/dee/pes__packet__generator_8cc_source.html @@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html b/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html index 6c4aca70bb..47a4c98afd 100644 --- a/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html +++ b/docs/d2/df3/structedash__packager_1_1media_1_1mp4_1_1Edit-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/df8/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox.html b/docs/d2/df8/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox.html index 0389dea7bf..7b137ea4c8 100644 --- a/docs/d2/df8/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox.html +++ b/docs/d2/df8/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html b/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html index 3ddfecde3a..462550b81c 100644 --- a/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html +++ b/docs/d2/dfa/classedash__packager_1_1RepresentationStateChangeListener.html @@ -195,7 +195,7 @@ Public Member Functions diff --git a/docs/d2/dfd/adts__header_8h_source.html b/docs/d2/dfd/adts__header_8h_source.html index 73efd4b6d3..249280568b 100644 --- a/docs/d2/dfd/adts__header_8h_source.html +++ b/docs/d2/dfd/adts__header_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html b/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html index 5b84e5d284..d6665e16ee 100644 --- a/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html +++ b/docs/d2/dfd/classedash__packager_1_1media_1_1MediaStream.html @@ -225,7 +225,7 @@ const scoped_refptr< diff --git a/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html b/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html index 7df9549e8e..e86fcf90a5 100644 --- a/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html +++ b/docs/d3/d00/structedash__packager_1_1media_1_1VPxFrameInfo-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html b/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html index 08d25b3090..891ceac923 100644 --- a/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html +++ b/docs/d3/d04/classedash__packager_1_1media_1_1WebMAudioClient-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html b/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html index 5c670c1848..a7dcabb6e2 100644 --- a/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html +++ b/docs/d3/d0e/classedash__packager_1_1media_1_1MpdNotifyMuxerListener.html @@ -213,7 +213,7 @@ Additional Inherited Members diff --git a/docs/d3/d11/structedash__packager_1_1media_1_1H265Pps.html b/docs/d3/d11/structedash__packager_1_1media_1_1H265Pps.html index 8c1317ea2f..32da21cf03 100644 --- a/docs/d3/d11/structedash__packager_1_1media_1_1H265Pps.html +++ b/docs/d3/d11/structedash__packager_1_1media_1_1H265Pps.html @@ -224,7 +224,7 @@ bool chroma_qp_offset_list diff --git a/docs/d3/d15/udp__file__win_8cc_source.html b/docs/d3/d15/udp__file__win_8cc_source.html index fd2c4fa67d..28c504d69f 100644 --- a/docs/d3/d15/udp__file__win_8cc_source.html +++ b/docs/d3/d15/udp__file__win_8cc_source.html @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d19/io__cache_8h_source.html b/docs/d3/d19/io__cache_8h_source.html index ccd5879f10..8aef8aa971 100644 --- a/docs/d3/d19/io__cache_8h_source.html +++ b/docs/d3/d19/io__cache_8h_source.html @@ -162,7 +162,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d1c/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox.html b/docs/d3/d1c/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox.html index 097b8ad9f8..97759153cd 100644 --- a/docs/d3/d1c/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox.html +++ b/docs/d3/d1c/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox.html @@ -166,7 +166,7 @@ Additional Inherited Members diff --git a/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html b/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html index 1a5eeb7b62..16790e7c72 100644 --- a/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html +++ b/docs/d3/d2c/structedash__packager_1_1media_1_1mp4_1_1TrackExtends.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html b/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html index badc52755f..40fb04c0f0 100644 --- a/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html +++ b/docs/d3/d2f/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d35/video__slice__header__parser_8cc_source.html b/docs/d3/d35/video__slice__header__parser_8cc_source.html index 7dcfc83152..528838183b 100644 --- a/docs/d3/d35/video__slice__header__parser_8cc_source.html +++ b/docs/d3/d35/video__slice__header__parser_8cc_source.html @@ -201,7 +201,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d39/structedash__packager_1_1media_1_1H265ReferencePictureListModifications.html b/docs/d3/d39/structedash__packager_1_1media_1_1H265ReferencePictureListModifications.html index f8da8e7b96..617c986562 100644 --- a/docs/d3/d39/structedash__packager_1_1media_1_1H265ReferencePictureListModifications.html +++ b/docs/d3/d39/structedash__packager_1_1media_1_1H265ReferencePictureListModifications.html @@ -119,7 +119,7 @@ std::vector< int > l diff --git a/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html b/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html index d3d9bdf80d..b6108200e0 100644 --- a/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html +++ b/docs/d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html @@ -311,7 +311,7 @@ KeyFetcher implementation overrides. diff --git a/docs/d3/d43/structedash__packager_1_1media_1_1mp4_1_1EC3Specific.html b/docs/d3/d43/structedash__packager_1_1media_1_1mp4_1_1EC3Specific.html index 976ca4de97..b8b8e765fe 100644 --- a/docs/d3/d43/structedash__packager_1_1media_1_1mp4_1_1EC3Specific.html +++ b/docs/d3/d43/structedash__packager_1_1media_1_1mp4_1_1EC3Specific.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html b/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html index 54e940d0f2..64c856cc14 100644 --- a/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html +++ b/docs/d3/d48/structedash__packager_1_1media_1_1mp4_1_1EditList-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html b/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html index 516086037c..d3f9b61a03 100644 --- a/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html +++ b/docs/d3/d52/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d56/decrypt__config_8cc_source.html b/docs/d3/d56/decrypt__config_8cc_source.html index ad98fecc70..8952987c25 100644 --- a/docs/d3/d56/decrypt__config_8cc_source.html +++ b/docs/d3/d56/decrypt__config_8cc_source.html @@ -98,26 +98,32 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
9 namespace edash_packager {
10 namespace media {
11 
-
12 DecryptConfig::DecryptConfig(const std::vector<uint8_t>& key_id,
+
12 DecryptConfig::DecryptConfig(const std::vector<uint8_t>& key_id,
13  const std::vector<uint8_t>& iv,
-
14  const std::vector<SubsampleEntry>& subsamples,
-
15  EncryptionMode decryption_mode)
-
16  : key_id_(key_id),
-
17  iv_(iv),
-
18  subsamples_(subsamples),
-
19  decryption_mode_(decryption_mode) {
-
20  CHECK_GT(key_id.size(), 0u);
-
21 }
-
22 
-
23 DecryptConfig::~DecryptConfig() {}
-
24 
-
25 } // namespace media
-
26 } // namespace edash_packager
-
DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, EncryptionMode decryption_mode)
+
14  const std::vector<SubsampleEntry>& subsamples)
+
15  : DecryptConfig(key_id, iv, subsamples, FOURCC_cenc) {}
+
16 
+
17 DecryptConfig::DecryptConfig(const std::vector<uint8_t>& key_id,
+
18  const std::vector<uint8_t>& iv,
+
19  const std::vector<SubsampleEntry>& subsamples,
+
20  FourCC protection_scheme)
+
21  : key_id_(key_id),
+
22  iv_(iv),
+
23  subsamples_(subsamples),
+
24  protection_scheme_(protection_scheme) {
+
25  CHECK_GT(key_id.size(), 0u);
+
26 }
+
27 
+
28 DecryptConfig::~DecryptConfig() {}
+
29 
+
30 } // namespace media
+
31 } // namespace edash_packager
+ +
DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples)
diff --git a/docs/d3/d59/structedash__packager_1_1media_1_1mp4_1_1PrivFrame.html b/docs/d3/d59/structedash__packager_1_1media_1_1mp4_1_1PrivFrame.html index 3fe6b44745..f4f2bbc9be 100644 --- a/docs/d3/d59/structedash__packager_1_1media_1_1mp4_1_1PrivFrame.html +++ b/docs/d3/d59/structedash__packager_1_1media_1_1mp4_1_1PrivFrame.html @@ -129,7 +129,7 @@ std::string value diff --git a/docs/d3/d62/rcheck_8h_source.html b/docs/d3/d62/rcheck_8h_source.html index f28b22647b..33bed9c882 100644 --- a/docs/d3/d62/rcheck_8h_source.html +++ b/docs/d3/d62/rcheck_8h_source.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d67/structedash__packager_1_1media_1_1mp4_1_1PrivFrame-members.html b/docs/d3/d67/structedash__packager_1_1media_1_1mp4_1_1PrivFrame-members.html index ad47e4c057..0389e09a5b 100644 --- a/docs/d3/d67/structedash__packager_1_1media_1_1mp4_1_1PrivFrame-members.html +++ b/docs/d3/d67/structedash__packager_1_1media_1_1mp4_1_1PrivFrame-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html b/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html index 82ca436c42..9d7fec67d0 100644 --- a/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html +++ b/docs/d3/d69/classedash__packager_1_1media_1_1ClusterBuilder.html @@ -125,7 +125,7 @@ scoped_ptr< diff --git a/docs/d3/d6a/classedash__packager_1_1media_1_1NaluReader.html b/docs/d3/d6a/classedash__packager_1_1media_1_1NaluReader.html index c71908845d..2de9eead47 100644 --- a/docs/d3/d6a/classedash__packager_1_1media_1_1NaluReader.html +++ b/docs/d3/d6a/classedash__packager_1_1media_1_1NaluReader.html @@ -232,7 +232,7 @@ static bool FindStartCode< diff --git a/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html b/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html index 63e6705448..f025efbe3b 100644 --- a/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html +++ b/docs/d3/d6b/classedash__packager_1_1media_1_1IoCache.html @@ -297,7 +297,7 @@ void  diff --git a/docs/d3/d6b/fixed__key__source_8cc_source.html b/docs/d3/d6b/fixed__key__source_8cc_source.html index 6bb02327f3..6c134eeb3d 100644 --- a/docs/d3/d6b/fixed__key__source_8cc_source.html +++ b/docs/d3/d6b/fixed__key__source_8cc_source.html @@ -243,7 +243,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d72/fixed__key__source_8h_source.html b/docs/d3/d72/fixed__key__source_8h_source.html index e8401cd3dc..99b4f7c3dc 100644 --- a/docs/d3/d72/fixed__key__source_8h_source.html +++ b/docs/d3/d72/fixed__key__source_8h_source.html @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html b/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html index 4df09202bc..326fc9a493 100644 --- a/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html +++ b/docs/d3/d74/structedash__packager_1_1media_1_1mp4_1_1SampleDescription.html @@ -191,7 +191,7 @@ Additional Inherited Members diff --git a/docs/d3/d76/muxer__flags_8h_source.html b/docs/d3/d76/muxer__flags_8h_source.html index 60b0724bd3..d58c9826b0 100644 --- a/docs/d3/d76/muxer__flags_8h_source.html +++ b/docs/d3/d76/muxer__flags_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html b/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html index ddc97c19c6..9c7a4a6c82 100644 --- a/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html +++ b/docs/d3/d77/structedash__packager_1_1media_1_1mp4_1_1SampleTable.html @@ -191,7 +191,7 @@ Additional Inherited Members diff --git a/docs/d3/d80/muxer__util_8h_source.html b/docs/d3/d80/muxer__util_8h_source.html index 4efa2b708f..d9e0774072 100644 --- a/docs/d3/d80/muxer__util_8h_source.html +++ b/docs/d3/d80/muxer__util_8h_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d81/classedash__packager_1_1media_1_1MemoryFile.html b/docs/d3/d81/classedash__packager_1_1media_1_1MemoryFile.html index dbe5a6abe7..c77e0f5714 100644 --- a/docs/d3/d81/classedash__packager_1_1media_1_1MemoryFile.html +++ b/docs/d3/d81/classedash__packager_1_1media_1_1MemoryFile.html @@ -485,7 +485,7 @@ bool  diff --git a/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html b/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html index 2950511ad6..4161813bd4 100644 --- a/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html +++ b/docs/d3/d8a/classedash__packager_1_1RepresentationStateChangeListener-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d8d/webm__audio__client_8h_source.html b/docs/d3/d8d/webm__audio__client_8h_source.html index 380607b1e6..50af477e70 100644 --- a/docs/d3/d8d/webm__audio__client_8h_source.html +++ b/docs/d3/d8d/webm__audio__client_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d8e/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html b/docs/d3/d8e/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html index 85667da0c4..ca0345c239 100644 --- a/docs/d3/d8e/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html +++ b/docs/d3/d8e/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter-members.html @@ -129,7 +129,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d90/ec3__audio__util_8cc_source.html b/docs/d3/d90/ec3__audio__util_8cc_source.html index 92d4c74f81..4cb8a0b6bc 100644 --- a/docs/d3/d90/ec3__audio__util_8cc_source.html +++ b/docs/d3/d90/ec3__audio__util_8cc_source.html @@ -245,7 +245,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html b/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html index 859ceb9013..cfae2ae7a7 100644 --- a/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html +++ b/docs/d3/d9b/structedash__packager_1_1media_1_1VideoStreamInfoParameters-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html b/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html index c28f8544e1..1bcc8798e4 100644 --- a/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html +++ b/docs/d3/d9f/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/da0/ec3__audio__util_8h_source.html b/docs/d3/da0/ec3__audio__util_8h_source.html index 5f8386dd89..307c610492 100644 --- a/docs/d3/da0/ec3__audio__util_8h_source.html +++ b/docs/d3/da0/ec3__audio__util_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/db6/webm__parser_8cc_source.html b/docs/d3/db6/webm__parser_8cc_source.html index 63eda2e1bb..2a8bd7539e 100644 --- a/docs/d3/db6/webm__parser_8cc_source.html +++ b/docs/d3/db6/webm__parser_8cc_source.html @@ -1068,7 +1068,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dbc/seek__head_8cc_source.html b/docs/d3/dbc/seek__head_8cc_source.html index abe19f817a..bb120edf42 100644 --- a/docs/d3/dbc/seek__head_8cc_source.html +++ b/docs/d3/dbc/seek__head_8cc_source.html @@ -216,7 +216,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html b/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html index 8e07059a41..d829b5149e 100644 --- a/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html +++ b/docs/d3/dbc/structedash__packager_1_1media_1_1H264WeightingFactors.html @@ -124,7 +124,7 @@ int chroma_offset [32] diff --git a/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html b/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html index d0e41b245d..9115aedaef 100644 --- a/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html +++ b/docs/d3/dbd/structedash__packager_1_1media_1_1mp4_1_1HandlerReference.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html b/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html index e97a7e6d4a..3a0d01713f 100644 --- a/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html +++ b/docs/d3/dbe/classedash__packager_1_1media_1_1WebMMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dbe/demuxer_8cc_source.html b/docs/d3/dbe/demuxer_8cc_source.html index fdd8ed8e91..e493fcae2f 100644 --- a/docs/d3/dbe/demuxer_8cc_source.html +++ b/docs/d3/dbe/demuxer_8cc_source.html @@ -345,7 +345,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html b/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html index 8913e296f0..62048ff3bc 100644 --- a/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html +++ b/docs/d3/dc0/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html b/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html index 2e5e57f3be..971c6de014 100644 --- a/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html +++ b/docs/d3/dcc/classedash__packager_1_1media_1_1ProgressListener-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html b/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html index cff19c07f5..af87c2186d 100644 --- a/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html +++ b/docs/d3/dd0/classedash__packager_1_1media_1_1mp4_1_1BoxReader-members.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html b/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html index e72b127844..2ffe563fb0 100644 --- a/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html +++ b/docs/d3/de1/structedash__packager_1_1media_1_1mp4_1_1Track.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d3/de4/seek__head_8h_source.html b/docs/d3/de4/seek__head_8h_source.html index 860e5eca25..f38426e9c7 100644 --- a/docs/d3/de4/seek__head_8h_source.html +++ b/docs/d3/de4/seek__head_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html b/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html index e939f306e7..850b251bdf 100644 --- a/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html +++ b/docs/d3/de7/structedash__packager_1_1media_1_1OnMediaEndParameters.html @@ -130,7 +130,7 @@ uint64_t file_size diff --git a/docs/d3/dec/classedash__packager_1_1media_1_1H26xBitReader.html b/docs/d3/dec/classedash__packager_1_1media_1_1H26xBitReader.html index 1cce347ad8..32e2e386f9 100644 --- a/docs/d3/dec/classedash__packager_1_1media_1_1H26xBitReader.html +++ b/docs/d3/dec/classedash__packager_1_1media_1_1H26xBitReader.html @@ -134,7 +134,7 @@ size_t NumEmulationPrevent diff --git a/docs/d3/df1/box__reader_8cc_source.html b/docs/d3/df1/box__reader_8cc_source.html index 83b3178b17..06d317b636 100644 --- a/docs/d3/df1/box__reader_8cc_source.html +++ b/docs/d3/df1/box__reader_8cc_source.html @@ -296,7 +296,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html b/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html index 5aeefc5cc3..9d9bb870b1 100644 --- a/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html +++ b/docs/d3/dfa/classedash__packager_1_1MpdBuilder.html @@ -385,7 +385,7 @@ class DynamicMpdBuilderTes diff --git a/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html b/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html index 61c39c6943..1f80ce2939 100644 --- a/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html +++ b/docs/d3/dfa/structedash__packager_1_1media_1_1H264SliceHeader-members.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html b/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html index c541be5046..13dd1f5b14 100644 --- a/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html +++ b/docs/d4/d00/mp4_2multi__segment__segmenter_8cc_source.html @@ -292,18 +292,18 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
bool GetIndexRange(size_t *offset, size_t *size) override
- -
void UpdateProgress(uint64_t progress)
Update segmentation progress using ProgressListener.
Definition: segmenter.cc:335
+ +
void UpdateProgress(uint64_t progress)
Update segmentation progress using ProgressListener.
Definition: segmenter.cc:338
void Write(BufferWriter *writer)
Definition: box.cc:25
-
void SetComplete()
Set progress to 100%.
Definition: segmenter.cc:351
+
void SetComplete()
Set progress to 100%.
Definition: segmenter.cc:354
bool GetInitRange(size_t *offset, size_t *size) override
virtual void OnSampleDurationReady(uint32_t sample_duration)=0
diff --git a/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html b/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html index bb7a5293fc..3d570fcec1 100644 --- a/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html +++ b/docs/d4/d0b/structedash__packager_1_1media_1_1mp4_1_1Media-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html b/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html index 7d61a198b9..9216ea8901 100644 --- a/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html +++ b/docs/d4/d1d/classedash__packager_1_1media_1_1Muxer.html @@ -114,8 +114,8 @@ Public Member Functions  Muxer (const MuxerOptions &options)   -void SetKeySource (KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode) -  +void SetKeySource (KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme) +  void AddStream (MediaStream *stream)  Add video/audio stream.
@@ -162,9 +162,9 @@ double crypto_period_durat base::Clock * clock ()   - -EncryptionMode encryption_mode () const -  + +FourCC protection_scheme () const +  @@ -191,7 +191,7 @@ class 

Cancel a muxing job in progress. Will cause Run to exit with an error status of type CANCELLED.

-

Definition at line 81 of file muxer.cc.

+

Definition at line 82 of file muxer.cc.

@@ -224,11 +224,11 @@ class  -

Definition at line 80 of file muxer.h.

+

Definition at line 82 of file muxer.h.

- +

Friends

MediaStream MediaStream
@@ -259,8 +259,8 @@ class  - - + + @@ -276,11 +276,12 @@ class  +
MediaStream
EncryptionMode encryption_mode FourCC protection_scheme 
MediaStream
max_sd_pixelsspecifies the threshold to determine whether a video track should be considered as SD or HD. If the track has more pixels per frame than max_sd_pixels, it is HD, SD otherwise.
clear_lead_in_secondsspecifies clear lead duration in seconds.
crypto_period_duration_in_secondsspecifies crypto period duration in seconds. A positive value means key rotation is enabled, the key source must support key rotation in this case.
protection_schemespecifies the protection scheme: 'cenc', 'cens', 'cbc1', 'cbcs'.
-

Definition at line 28 of file muxer.cc.

+

Definition at line 29 of file muxer.cc.

@@ -305,7 +306,7 @@ class MediaStream -

Definition at line 85 of file muxer.cc.

+

Definition at line 86 of file muxer.cc.

@@ -330,7 +331,7 @@ class MediaStream -

Definition at line 89 of file muxer.cc.

+

Definition at line 90 of file muxer.cc.

@@ -341,7 +342,7 @@ class MediaStream diff --git a/docs/d4/d25/classedash__packager_1_1media_1_1mp2t_1_1TsWriter-members.html b/docs/d4/d25/classedash__packager_1_1media_1_1mp2t_1_1TsWriter-members.html index ba9e0f91be..95c8fd47b8 100644 --- a/docs/d4/d25/classedash__packager_1_1media_1_1mp2t_1_1TsWriter-members.html +++ b/docs/d4/d25/classedash__packager_1_1media_1_1mp2t_1_1TsWriter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html b/docs/d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html index af3a993fe9..69e3ed7bd3 100644 --- a/docs/d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html +++ b/docs/d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html @@ -242,7 +242,7 @@ Public Member Functions diff --git a/docs/d4/d37/io__cache_8cc_source.html b/docs/d4/d37/io__cache_8cc_source.html index 5329dce0af..272331c65e 100644 --- a/docs/d4/d37/io__cache_8cc_source.html +++ b/docs/d4/d37/io__cache_8cc_source.html @@ -252,7 +252,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d3d/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio.html b/docs/d4/d3d/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio.html index 91a99233d2..ac5758ad8e 100644 --- a/docs/d4/d3d/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio.html +++ b/docs/d4/d3d/structedash__packager_1_1media_1_1mp4_1_1PixelAspectRatio.html @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html b/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html index b5d35e8f30..0cd8f57cf4 100644 --- a/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html +++ b/docs/d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html @@ -177,7 +177,7 @@ Public Member Functions diff --git a/docs/d4/d4a/structedash__packager_1_1media_1_1H265Sps-members.html b/docs/d4/d4a/structedash__packager_1_1media_1_1H265Sps-members.html index f1d40fae4e..68e6612648 100644 --- a/docs/d4/d4a/structedash__packager_1_1media_1_1H265Sps-members.html +++ b/docs/d4/d4a/structedash__packager_1_1media_1_1H265Sps-members.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html b/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html index ba76e6ac05..8e7ee4cf87 100644 --- a/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html +++ b/docs/d4/d67/structedash__packager_1_1media_1_1mp4_1_1MovieFragment-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d72/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html b/docs/d4/d72/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html index 37ca2aa366..614fa405ac 100644 --- a/docs/d4/d72/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html +++ b/docs/d4/d72/classedash__packager_1_1media_1_1webm_1_1SingleSegmentSegmenter-members.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d87/nalu__reader_8h_source.html b/docs/d4/d87/nalu__reader_8h_source.html index e303da31a9..f3ad929e70 100644 --- a/docs/d4/d87/nalu__reader_8h_source.html +++ b/docs/d4/d87/nalu__reader_8h_source.html @@ -280,7 +280,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d8c/classedash__packager_1_1media_1_1MkvWriter.html b/docs/d4/d8c/classedash__packager_1_1media_1_1MkvWriter.html index 1d3745d540..0bd299685e 100644 --- a/docs/d4/d8c/classedash__packager_1_1media_1_1MkvWriter.html +++ b/docs/d4/d8c/classedash__packager_1_1media_1_1MkvWriter.html @@ -372,7 +372,7 @@ Public Member Functions diff --git a/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html b/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html index e33371eb6a..5efa642bc6 100644 --- a/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html +++ b/docs/d4/d8f/structedash__packager_1_1media_1_1mp4_1_1MovieHeader-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html b/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html index ac37e96705..40842bfc81 100644 --- a/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html +++ b/docs/d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html @@ -235,7 +235,7 @@ Public Member Functions diff --git a/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html b/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html index dba09b584c..67a521e4a3 100644 --- a/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html +++ b/docs/d4/d92/structedash__packager_1_1media_1_1mp4_1_1MediaData.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html b/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html index 722ae36a28..7b1bb674db 100644 --- a/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html +++ b/docs/d4/d93/structedash__packager_1_1media_1_1H264SEIMessage.html @@ -127,7 +127,7 @@ union { diff --git a/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html b/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html index f00b43754d..ad34281590 100644 --- a/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html +++ b/docs/d4/d9b/classedash__packager_1_1AdaptationSet-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html b/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html index e34203e324..f77684994f 100644 --- a/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html +++ b/docs/d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html @@ -99,8 +99,10 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); - - + + + + @@ -111,9 +113,9 @@ const std::vector< uint8_t > &  - - + +

Public Member Functions

 DecryptConfig (const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, EncryptionMode decryption_mode)
 
 DecryptConfig (const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples)
 
 DecryptConfig (const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, FourCC protection_scheme)
 
const std::vector< uint8_t > & key_id () const
 
< SubsampleEntry > & subsamples () const
 
-EncryptionMode decryption_mode () const
 
+FourCC protection_scheme () const
 
@@ -127,7 +129,50 @@ static const size_t 

Static Public Attributes

Definition at line 40 of file decrypt_config.h.

Constructor & Destructor Documentation

- + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
edash_packager::media::DecryptConfig::DecryptConfig (const std::vector< uint8_t > & key_id,
const std::vector< uint8_t > & iv,
const std::vector< SubsampleEntry > & subsamples 
)
+
+

Create a 'cenc' decrypt config.

+
Parameters
+ + + + +
key_idis the ID that references the decryption key.
ivis the initialization vector defined by the encryptor.
subsamplesdefines the clear and encrypted portions of the sample as described in SubsampleEntry. A decrypted buffer will be equal in size to the sum of the subsample sizes.
+
+
+ +

Definition at line 12 of file decrypt_config.cc.

+ +
+
+
@@ -152,8 +197,8 @@ static const size_t  - - + + @@ -162,17 +207,18 @@ static const size_t 
EncryptionMode decryption_mode FourCC protection_scheme 
+

Create a general decrypt config with possible pattern-based encryption.

Parameters
- +
key_idis the ID that references the decryption key.
ivis the initialization vector defined by the encryptor.
subsamplesdefines the clear and encrypted portions of the sample as described in SubsampleEntry. A decrypted buffer will be equal in size to the sum of the subsample sizes.
decryption_modedecryption_mode is to determine which decryptor to use.
protection_schemespecifies the protection scheme: 'cenc', 'cens', 'cbc1', 'cbcs'.
-

Definition at line 12 of file decrypt_config.cc.

+

Definition at line 17 of file decrypt_config.cc.

@@ -183,7 +229,7 @@ static const size_t 
diff --git a/docs/d4/da7/segmenter__test__base_8cc_source.html b/docs/d4/da7/segmenter__test__base_8cc_source.html index c0cb472986..60ef25dce0 100644 --- a/docs/d4/da7/segmenter__test__base_8cc_source.html +++ b/docs/d4/da7/segmenter__test__base_8cc_source.html @@ -309,7 +309,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/db2/cluster__builder_8h_source.html b/docs/d4/db2/cluster__builder_8h_source.html index e3d7be4b97..ed669a6e44 100644 --- a/docs/d4/db2/cluster__builder_8h_source.html +++ b/docs/d4/db2/cluster__builder_8h_source.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html b/docs/d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html index 3012846238..930ccf4da2 100644 --- a/docs/d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html +++ b/docs/d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html @@ -229,7 +229,7 @@ class NalUnitToByteStreamC diff --git a/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html b/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html index 6a7a35639a..5748000d18 100644 --- a/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html +++ b/docs/d4/dca/structedash__packager_1_1media_1_1H264SEIRecoveryPoint.html @@ -118,7 +118,7 @@ int changing_slice_group_i diff --git a/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html b/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html index 9fa2ab8191..caea20389d 100644 --- a/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html +++ b/docs/d4/dcb/classedash__packager_1_1media_1_1Status-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
diff --git a/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html b/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html index f88e64f4d9..febc43ad2b 100644 --- a/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html +++ b/docs/d4/dcc/structedash__packager_1_1media_1_1mp4_1_1SchemeType.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html b/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html index 87bcaa79a3..41a082fe1b 100644 --- a/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html +++ b/docs/d4/dcd/classedash__packager_1_1media_1_1OffsetByteQueue-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html b/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html index de31a59f3d..1095ddf6aa 100644 --- a/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html +++ b/docs/d4/dce/structedash__packager_1_1media_1_1mp4_1_1SegmentReference.html @@ -143,7 +143,7 @@ uint64_t earliest_presenta diff --git a/docs/d4/dd3/bit__reader_8h_source.html b/docs/d4/dd3/bit__reader_8h_source.html index 816a28560b..ffc837dcbc 100644 --- a/docs/d4/dd3/bit__reader_8h_source.html +++ b/docs/d4/dd3/bit__reader_8h_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html b/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html index 7b9cdabebb..5981399ff7 100644 --- a/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html +++ b/docs/d4/dd9/structedash__packager_1_1media_1_1mp4_1_1TrackFragment.html @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/docs/d4/dde/webvtt__util_8h_source.html b/docs/d4/dde/webvtt__util_8h_source.html index fcbf3dafeb..4d92ce5f6d 100644 --- a/docs/d4/dde/webvtt__util_8h_source.html +++ b/docs/d4/dde/webvtt__util_8h_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/de0/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html b/docs/d4/de0/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html index a6dc060cca..7eda465c8d 100644 --- a/docs/d4/de0/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html +++ b/docs/d4/de0/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo.html @@ -112,7 +112,7 @@ int delta_poc_msb_cycle_lt diff --git a/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html b/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html index 6b56decac4..e7280f8502 100644 --- a/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html +++ b/docs/d4/de4/structedash__packager_1_1media_1_1SubsampleEntry.html @@ -122,7 +122,7 @@ uint32_t cipher_bytes< diff --git a/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html b/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html index b450155a7f..2962e12a49 100644 --- a/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html +++ b/docs/d4/de5/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator.html @@ -225,7 +225,7 @@ Public Member Functions diff --git a/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html b/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html index bdaa9f7d46..9ac875bd54 100644 --- a/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html +++ b/docs/d4/de7/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationSize-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/df5/request__signer_8cc_source.html b/docs/d4/df5/request__signer_8cc_source.html index 6e0134581f..f13d1a5161 100644 --- a/docs/d4/df5/request__signer_8cc_source.html +++ b/docs/d4/df5/request__signer_8cc_source.html @@ -174,11 +174,11 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
static RsaRequestSigner * CreateSigner(const std::string &signer_name, const std::string &pkcs1_rsa_key)
RsaRequestSigner uses RSA-PSS signing.
Abstract class used for signature generation.
- + diff --git a/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html b/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html index de74a4942e..ac073df7a5 100644 --- a/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html +++ b/docs/d4/df9/structedash__packager_1_1MpdOptions-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d4/dff/webm__media__parser_8cc_source.html b/docs/d4/dff/webm__media__parser_8cc_source.html index 5f827adc07..ef1b8953c4 100644 --- a/docs/d4/dff/webm__media__parser_8cc_source.html +++ b/docs/d4/dff/webm__media__parser_8cc_source.html @@ -364,7 +364,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html b/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html index 424326d333..deaa7ad4d4 100644 --- a/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html +++ b/docs/d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html @@ -501,7 +501,7 @@ template<class T > diff --git a/docs/d5/d15/producer__consumer__queue_8h_source.html b/docs/d5/d15/producer__consumer__queue_8h_source.html index 5992a76a13..97beaca71f 100644 --- a/docs/d5/d15/producer__consumer__queue_8h_source.html +++ b/docs/d5/d15/producer__consumer__queue_8h_source.html @@ -374,7 +374,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d18/structedash__packager_1_1media_1_1mp4_1_1CueIDBox-members.html b/docs/d5/d18/structedash__packager_1_1media_1_1mp4_1_1CueIDBox-members.html index 5af89532d4..3340ee7e9e 100644 --- a/docs/d5/d18/structedash__packager_1_1media_1_1mp4_1_1CueIDBox-members.html +++ b/docs/d5/d18/structedash__packager_1_1media_1_1mp4_1_1CueIDBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d1a/ts__section_8h_source.html b/docs/d5/d1a/ts__section_8h_source.html index 159b6372a1..0b9327c192 100644 --- a/docs/d5/d1a/ts__section_8h_source.html +++ b/docs/d5/d1a/ts__section_8h_source.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html b/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html index b1a314dbb1..fe69418ec3 100644 --- a/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html +++ b/docs/d5/d1f/classedash__packager_1_1media_1_1BufferReader-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html b/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html index c3f1085b98..0697947380 100644 --- a/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html +++ b/docs/d5/d26/classedash__packager_1_1media_1_1MediaParser-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d27/key__fetcher_8cc_source.html b/docs/d5/d27/key__fetcher_8cc_source.html index ccbcbc136b..b412d03939 100644 --- a/docs/d5/d27/key__fetcher_8cc_source.html +++ b/docs/d5/d27/key__fetcher_8cc_source.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html b/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html index 23e5a30aa2..658879a717 100644 --- a/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html +++ b/docs/d5/d30/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter.html @@ -192,7 +192,7 @@ static const size_t kUnitS diff --git a/docs/d5/d3e/structedash__packager_1_1media_1_1H265ReferencePictureSet-members.html b/docs/d5/d3e/structedash__packager_1_1media_1_1H265ReferencePictureSet-members.html index 7248ad6790..0cf6eb9a8a 100644 --- a/docs/d5/d3e/structedash__packager_1_1media_1_1H265ReferencePictureSet-members.html +++ b/docs/d5/d3e/structedash__packager_1_1media_1_1H265ReferencePictureSet-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html b/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html index 56bde23ef5..5e559acbd0 100644 --- a/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html +++ b/docs/d5/d40/webm_2single__segment__segmenter_8h_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d41/hevc__decoder__configuration_8cc_source.html b/docs/d5/d41/hevc__decoder__configuration_8cc_source.html index 33661848ab..304016eda4 100644 --- a/docs/d5/d41/hevc__decoder__configuration_8cc_source.html +++ b/docs/d5/d41/hevc__decoder__configuration_8cc_source.html @@ -256,7 +256,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html b/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html index ca7c8c93ba..7c3a049062 100644 --- a/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html +++ b/docs/d5/d4a/classedash__packager_1_1media_1_1mp2t_1_1TsPacket-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d4d/box_8cc_source.html b/docs/d5/d4d/box_8cc_source.html index 54c134806f..fec37f8fab 100644 --- a/docs/d5/d4d/box_8cc_source.html +++ b/docs/d5/d4d/box_8cc_source.html @@ -199,7 +199,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d52/ts__section__pes_8h_source.html b/docs/d5/d52/ts__section__pes_8h_source.html index 81bb719d7e..bd289f4532 100644 --- a/docs/d5/d52/ts__section__pes_8h_source.html +++ b/docs/d5/d52/ts__section__pes_8h_source.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html b/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html index cbfa795a9d..9790e7ff06 100644 --- a/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html +++ b/docs/d5/d54/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html b/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html index 20afada804..d1d9252fbc 100644 --- a/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html +++ b/docs/d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html @@ -224,7 +224,7 @@ Static Public Member Functions diff --git a/docs/d5/d63/network__util_8cc_source.html b/docs/d5/d63/network__util_8cc_source.html index 2b44f51373..1d8e171c9a 100644 --- a/docs/d5/d63/network__util_8cc_source.html +++ b/docs/d5/d63/network__util_8cc_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d65/encryption__modes_8h_source.html b/docs/d5/d65/encryption__modes_8h_source.html deleted file mode 100644 index ac1512745e..0000000000 --- a/docs/d5/d65/encryption__modes_8h_source.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - -DASH Media Packaging SDK: media/base/encryption_modes.h Source File - - - - - - - - - -
-
- - - - - - -
-
DASH Media Packaging SDK -
-
-
- - - - - - - - - -
- -
- - -
-
-
-
encryption_modes.h
-
-
-
1 // Copyright 2016 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 MEDIA_BASE_ENCRYPTION_MODE_H_
-
8 #define MEDIA_BASE_ENCRYPTION_MODE_H_
-
9 
-
10 namespace edash_packager {
-
11 namespace media {
-
12 
-
14 enum EncryptionMode {
-
15  kEncryptionModeUnknown,
-
16  kEncryptionModeAesCtr,
-
17  kEncryptionModeAesCbc
-
18 };
-
19 
-
20 } // namespace media
-
21 } // namespace edash_packager
-
22 
-
23 #endif // MEDIA_BASE_ENCRYPTION_MODE_H_
-
- - - - diff --git a/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html b/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html index 177d27eb7c..8089a5da13 100644 --- a/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html +++ b/docs/d5/d6e/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d6f/vlog__flags_8cc_source.html b/docs/d5/d6f/vlog__flags_8cc_source.html index b40c86ffee..8c3ef0448d 100644 --- a/docs/d5/d6f/vlog__flags_8cc_source.html +++ b/docs/d5/d6f/vlog__flags_8cc_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d73/vp__codec__configuration_8h_source.html b/docs/d5/d73/vp__codec__configuration_8h_source.html index ed6bde97be..73337678f2 100644 --- a/docs/d5/d73/vp__codec__configuration_8h_source.html +++ b/docs/d5/d73/vp__codec__configuration_8h_source.html @@ -192,7 +192,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d78/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption.html b/docs/d5/d78/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption.html index 5a12673655..c2f1839811 100644 --- a/docs/d5/d78/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption.html +++ b/docs/d5/d78/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption.html @@ -250,7 +250,7 @@ Additional Inherited Members diff --git a/docs/d5/d7a/structedash__packager_1_1Element.html b/docs/d5/d7a/structedash__packager_1_1Element.html index 723f80d6c0..783ce262e3 100644 --- a/docs/d5/d7a/structedash__packager_1_1Element.html +++ b/docs/d5/d7a/structedash__packager_1_1Element.html @@ -120,7 +120,7 @@ std::vector< diff --git a/docs/d5/d7b/box__definitions_8h_source.html b/docs/d5/d7b/box__definitions_8h_source.html index 5bbb862248..e93521bb08 100644 --- a/docs/d5/d7b/box__definitions_8h_source.html +++ b/docs/d5/d7b/box__definitions_8h_source.html @@ -945,7 +945,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d89/widevine__key__source_8cc_source.html b/docs/d5/d89/widevine__key__source_8cc_source.html index ae0bbfedc6..949e7be8b3 100644 --- a/docs/d5/d89/widevine__key__source_8cc_source.html +++ b/docs/d5/d89/widevine__key__source_8cc_source.html @@ -724,7 +724,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d8f/webm__cluster__parser_8cc_source.html b/docs/d5/d8f/webm__cluster__parser_8cc_source.html index ff6518bce5..80733310ce 100644 --- a/docs/d5/d8f/webm__cluster__parser_8cc_source.html +++ b/docs/d5/d8f/webm__cluster__parser_8cc_source.html @@ -740,7 +740,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d91/es__parser__adts_8cc_source.html b/docs/d5/d91/es__parser__adts_8cc_source.html index 643dc2ef93..5863601e24 100644 --- a/docs/d5/d91/es__parser__adts_8cc_source.html +++ b/docs/d5/d91/es__parser__adts_8cc_source.html @@ -376,7 +376,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d98/encryptor_8cc_source.html b/docs/d5/d98/encryptor_8cc_source.html index 49a70caeb4..0140365318 100644 --- a/docs/d5/d98/encryptor_8cc_source.html +++ b/docs/d5/d98/encryptor_8cc_source.html @@ -96,144 +96,144 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
7 #include "packager/media/formats/webm/encryptor.h"
8 
9 #include "packager/media/base/aes_encryptor.h"
-
10 #include "packager/media/base/media_sample.h"
-
11 
-
12 namespace edash_packager {
-
13 namespace media {
-
14 namespace webm {
-
15 namespace {
-
16 
-
17 // Generate 64bit IV by default.
-
18 const size_t kDefaultIvSize = 8u;
-
19 
-
20 Status CreateContentEncryption(mkvmuxer::Track* track, EncryptionKey* key) {
-
21  if (!track->AddContentEncoding()) {
-
22  return Status(error::INTERNAL_ERROR,
-
23  "Could not add ContentEncoding to track.");
-
24  }
-
25 
-
26  mkvmuxer::ContentEncoding* const encoding =
-
27  track->GetContentEncodingByIndex(0);
-
28  if (!encoding) {
-
29  return Status(error::INTERNAL_ERROR,
-
30  "Could not add ContentEncoding to track.");
-
31  }
-
32 
-
33  mkvmuxer::ContentEncAESSettings* const aes = encoding->enc_aes_settings();
-
34  if (!aes) {
-
35  return Status(error::INTERNAL_ERROR,
-
36  "Error getting ContentEncAESSettings.");
-
37  }
-
38  if (aes->cipher_mode() != mkvmuxer::ContentEncAESSettings::kCTR) {
-
39  return Status(error::INTERNAL_ERROR, "Cipher Mode is not CTR.");
-
40  }
-
41 
-
42  if (!key->key_id.empty() &&
-
43  !encoding->SetEncryptionID(
-
44  reinterpret_cast<const uint8*>(key->key_id.data()),
-
45  key->key_id.size())) {
-
46  return Status(error::INTERNAL_ERROR, "Error setting encryption ID.");
-
47  }
-
48  return Status::OK;
-
49 }
+
10 #include "packager/media/base/fourccs.h"
+
11 #include "packager/media/base/media_sample.h"
+
12 
+
13 namespace edash_packager {
+
14 namespace media {
+
15 namespace webm {
+
16 namespace {
+
17 
+
18 Status CreateContentEncryption(mkvmuxer::Track* track, EncryptionKey* key) {
+
19  if (!track->AddContentEncoding()) {
+
20  return Status(error::INTERNAL_ERROR,
+
21  "Could not add ContentEncoding to track.");
+
22  }
+
23 
+
24  mkvmuxer::ContentEncoding* const encoding =
+
25  track->GetContentEncodingByIndex(0);
+
26  if (!encoding) {
+
27  return Status(error::INTERNAL_ERROR,
+
28  "Could not add ContentEncoding to track.");
+
29  }
+
30 
+
31  mkvmuxer::ContentEncAESSettings* const aes = encoding->enc_aes_settings();
+
32  if (!aes) {
+
33  return Status(error::INTERNAL_ERROR,
+
34  "Error getting ContentEncAESSettings.");
+
35  }
+
36  if (aes->cipher_mode() != mkvmuxer::ContentEncAESSettings::kCTR) {
+
37  return Status(error::INTERNAL_ERROR, "Cipher Mode is not CTR.");
+
38  }
+
39 
+
40  if (!key->key_id.empty() &&
+
41  !encoding->SetEncryptionID(
+
42  reinterpret_cast<const uint8*>(key->key_id.data()),
+
43  key->key_id.size())) {
+
44  return Status(error::INTERNAL_ERROR, "Error setting encryption ID.");
+
45  }
+
46  return Status::OK;
+
47 }
+
48 
+
49 } // namespace
50 
-
51 } // namespace
+
51 Encryptor::Encryptor() {}
52 
-
53 Encryptor::Encryptor() {}
+
53 Encryptor::~Encryptor() {}
54 
-
55 Encryptor::~Encryptor() {}
-
56 
- -
58  KeySource::TrackType track_type,
-
59  KeySource* key_source) {
-
60  DCHECK(key_source);
-
61  return CreateEncryptor(muxer_listener, track_type, key_source);
-
62 }
-
63 
-
64 Status Encryptor::AddTrackInfo(mkvmuxer::Track* track) {
-
65  DCHECK(key_);
-
66  return CreateContentEncryption(track, key_.get());
-
67 }
-
68 
-
69 Status Encryptor::EncryptFrame(scoped_refptr<MediaSample> sample,
-
70  bool encrypt_frame) {
-
71  DCHECK(encryptor_);
-
72 
-
73  const size_t sample_size = sample->data_size();
-
74  if (encrypt_frame) {
-
75  // | 1 | iv | enc_data |
-
76  const size_t iv_size = encryptor_->iv().size();
-
77  sample->resize_data(sample_size + iv_size + 1);
-
78  uint8_t* sample_data = sample->writable_data();
-
79 
-
80  // Encrypt the data in-place.
-
81  if (!encryptor_->Crypt(sample_data, sample_size, sample_data)) {
-
82  return Status(error::MUXER_FAILURE, "Failed to encrypt the frame.");
-
83  }
-
84 
-
85  // First move the sample data to after the IV; then write the IV and signal
-
86  // byte.
-
87  memmove(sample_data + iv_size + 1, sample_data, sample_size);
-
88  sample_data[0] = 0x01;
-
89  memcpy(sample_data + 1, encryptor_->iv().data(), iv_size);
-
90 
-
91  encryptor_->UpdateIv();
-
92  } else {
-
93  // | 0 | data |
-
94  sample->resize_data(sample_size + 1);
-
95  uint8_t* sample_data = sample->writable_data();
-
96  memmove(sample_data + 1, sample_data, sample_size);
-
97  sample_data[0] = 0x00;
-
98  }
-
99 
-
100  return Status::OK;
-
101 }
-
102 
-
103 Status Encryptor::CreateEncryptor(MuxerListener* muxer_listener,
-
104  KeySource::TrackType track_type,
-
105  KeySource* key_source) {
-
106  scoped_ptr<EncryptionKey> encryption_key(new EncryptionKey());
-
107  Status status = key_source->GetKey(track_type, encryption_key.get());
-
108  if (!status.ok())
-
109  return status;
-
110 
-
111  scoped_ptr<AesCtrEncryptor> encryptor(new AesCtrEncryptor());
-
112  const bool initialized = encryption_key->iv.empty()
-
113  ? encryptor->InitializeWithRandomIv(
-
114  encryption_key->key, kDefaultIvSize)
-
115  : encryptor->InitializeWithIv(
-
116  encryption_key->key, encryption_key->iv);
-
117  if (!initialized)
-
118  return Status(error::INTERNAL_ERROR, "Failed to create the encryptor.");
-
119 
-
120  if (muxer_listener) {
-
121  const bool kInitialEncryptionInfo = true;
-
122  muxer_listener->OnEncryptionInfoReady(kInitialEncryptionInfo,
-
123  encryption_key->key_id,
-
124  encryption_key->key_system_info);
-
125  }
-
126 
-
127  key_ = encryption_key.Pass();
-
128  encryptor_ = encryptor.Pass();
-
129  return Status::OK;
-
130 }
-
131 
-
132 } // namespace webm
-
133 } // namespace media
-
134 } // namespace edash_packager
-
Status EncryptFrame(scoped_refptr< MediaSample > sample, bool encrypt_frame)
Definition: encryptor.cc:69
+ +
56  KeySource::TrackType track_type,
+
57  KeySource* key_source) {
+
58  DCHECK(key_source);
+
59  return CreateEncryptor(muxer_listener, track_type, key_source);
+
60 }
+
61 
+
62 Status Encryptor::AddTrackInfo(mkvmuxer::Track* track) {
+
63  DCHECK(key_);
+
64  return CreateContentEncryption(track, key_.get());
+
65 }
+
66 
+
67 Status Encryptor::EncryptFrame(scoped_refptr<MediaSample> sample,
+
68  bool encrypt_frame) {
+
69  DCHECK(encryptor_);
+
70 
+
71  const size_t sample_size = sample->data_size();
+
72  if (encrypt_frame) {
+
73  // | 1 | iv | enc_data |
+
74  const size_t iv_size = encryptor_->iv().size();
+
75  sample->resize_data(sample_size + iv_size + 1);
+
76  uint8_t* sample_data = sample->writable_data();
+
77 
+
78  // Encrypt the data in-place.
+
79  if (!encryptor_->Crypt(sample_data, sample_size, sample_data)) {
+
80  return Status(error::MUXER_FAILURE, "Failed to encrypt the frame.");
+
81  }
+
82 
+
83  // First move the sample data to after the IV; then write the IV and signal
+
84  // byte.
+
85  memmove(sample_data + iv_size + 1, sample_data, sample_size);
+
86  sample_data[0] = 0x01;
+
87  memcpy(sample_data + 1, encryptor_->iv().data(), iv_size);
+
88 
+
89  encryptor_->UpdateIv();
+
90  } else {
+
91  // | 0 | data |
+
92  sample->resize_data(sample_size + 1);
+
93  uint8_t* sample_data = sample->writable_data();
+
94  memmove(sample_data + 1, sample_data, sample_size);
+
95  sample_data[0] = 0x00;
+
96  }
+
97 
+
98  return Status::OK;
+
99 }
+
100 
+
101 Status Encryptor::CreateEncryptor(MuxerListener* muxer_listener,
+
102  KeySource::TrackType track_type,
+
103  KeySource* key_source) {
+
104  scoped_ptr<EncryptionKey> encryption_key(new EncryptionKey());
+
105  Status status = key_source->GetKey(track_type, encryption_key.get());
+
106  if (!status.ok())
+
107  return status;
+
108  if (encryption_key->iv.empty()) {
+
109  if (!AesCryptor::GenerateRandomIv(FOURCC_cenc, &encryption_key->iv))
+
110  return Status(error::INTERNAL_ERROR, "Failed to generate random iv.");
+
111  }
+
112 
+
113  scoped_ptr<AesCtrEncryptor> encryptor(new AesCtrEncryptor());
+
114  const bool initialized =
+
115  encryptor->InitializeWithIv(encryption_key->key, encryption_key->iv);
+
116  if (!initialized)
+
117  return Status(error::INTERNAL_ERROR, "Failed to create the encryptor.");
+
118 
+
119  if (muxer_listener) {
+
120  const bool kInitialEncryptionInfo = true;
+
121  muxer_listener->OnEncryptionInfoReady(kInitialEncryptionInfo,
+
122  encryption_key->key_id,
+
123  encryption_key->key_system_info);
+
124  }
+
125 
+
126  key_ = encryption_key.Pass();
+
127  encryptor_ = encryptor.Pass();
+
128  return Status::OK;
+
129 }
+
130 
+
131 } // namespace webm
+
132 } // namespace media
+
133 } // namespace edash_packager
+
Status EncryptFrame(scoped_refptr< MediaSample > sample, bool encrypt_frame)
Definition: encryptor.cc:67
virtual Status GetKey(TrackType track_type, EncryptionKey *key)=0
+
static bool GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)
Definition: aes_cryptor.cc:58
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
-
Status Initialize(MuxerListener *muxer_listener, KeySource::TrackType track_type, KeySource *key_source)
Definition: encryptor.cc:57
- -
Status AddTrackInfo(mkvmuxer::Track *track)
Definition: encryptor.cc:64
+
Status Initialize(MuxerListener *muxer_listener, KeySource::TrackType track_type, KeySource *key_source)
Definition: encryptor.cc:55
+ +
Status AddTrackInfo(mkvmuxer::Track *track)
Definition: encryptor.cc:62
diff --git a/docs/d5/d98/structedash__packager_1_1media_1_1H264Pps-members.html b/docs/d5/d98/structedash__packager_1_1media_1_1H264Pps-members.html index 4f2a206892..0c23e74f4a 100644 --- a/docs/d5/d98/structedash__packager_1_1media_1_1H264Pps-members.html +++ b/docs/d5/d98/structedash__packager_1_1media_1_1H264Pps-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html b/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html index 23a8f2598b..e3d1c3b0a8 100644 --- a/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html +++ b/docs/d5/d9c/classedash__packager_1_1MpdNotifierFactory-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/d9f/structedash__packager_1_1media_1_1H265Pps-members.html b/docs/d5/d9f/structedash__packager_1_1media_1_1H265Pps-members.html index 9b7c75f04a..ea6a3b249e 100644 --- a/docs/d5/d9f/structedash__packager_1_1media_1_1H265Pps-members.html +++ b/docs/d5/d9f/structedash__packager_1_1media_1_1H265Pps-members.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/da4/aes__encryptor_8cc_source.html b/docs/d5/da4/aes__encryptor_8cc_source.html index 01cd622de8..c82698a446 100644 --- a/docs/d5/da4/aes__encryptor_8cc_source.html +++ b/docs/d5/da4/aes__encryptor_8cc_source.html @@ -96,272 +96,258 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
7 #include "packager/media/base/aes_encryptor.h"
8 
9 #include <openssl/aes.h>
-
10 #include <openssl/err.h>
-
11 #include <openssl/rand.h>
+
10 
+
11 #include "packager/base/logging.h"
12 
-
13 #include "packager/base/logging.h"
+
13 namespace {
14 
-
15 namespace {
-
16 
-
17 // Increment an 8-byte counter by 1. Return true if overflowed.
-
18 bool Increment64(uint8_t* counter) {
-
19  DCHECK(counter);
-
20  for (int i = 7; i >= 0; --i)
-
21  if (++counter[i] != 0)
-
22  return false;
-
23  return true;
-
24 }
-
25 
-
26 // According to ISO/IEC FDIS 23001-7: CENC spec, IV should be either
-
27 // 64-bit (8-byte) or 128-bit (16-byte).
-
28 bool IsIvSizeValid(size_t iv_size) { return iv_size == 8 || iv_size == 16; }
-
29 
-
30 // AES defines three key sizes: 128, 192 and 256 bits.
-
31 bool IsKeySizeValidForAes(size_t key_size) {
-
32  return key_size == 16 || key_size == 24 || key_size == 32;
-
33 }
+
15 // Increment an 8-byte counter by 1. Return true if overflowed.
+
16 bool Increment64(uint8_t* counter) {
+
17  DCHECK(counter);
+
18  for (int i = 7; i >= 0; --i)
+
19  if (++counter[i] != 0)
+
20  return false;
+
21  return true;
+
22 }
+
23 
+
24 // According to ISO/IEC FDIS 23001-7: CENC spec, IV should be either
+
25 // 64-bit (8-byte) or 128-bit (16-byte).
+
26 bool IsIvSizeValid(size_t iv_size) { return iv_size == 8 || iv_size == 16; }
+
27 
+
28 // AES defines three key sizes: 128, 192 and 256 bits.
+
29 bool IsKeySizeValidForAes(size_t key_size) {
+
30  return key_size == 16 || key_size == 24 || key_size == 32;
+
31 }
+
32 
+
33 } // namespace
34 
-
35 } // namespace
-
36 
-
37 namespace edash_packager {
-
38 namespace media {
-
39 
-
40 AesEncryptor::AesEncryptor() {}
-
41 AesEncryptor::~AesEncryptor() {}
-
42 
-
43 bool AesEncryptor::InitializeWithRandomIv(const std::vector<uint8_t>& key,
-
44  uint8_t iv_size) {
-
45  std::vector<uint8_t> iv(iv_size, 0);
-
46  if (RAND_bytes(iv.data(), iv_size) != 1) {
-
47  LOG(ERROR) << "RAND_bytes failed with error: "
-
48  << ERR_error_string(ERR_get_error(), NULL);
-
49  return false;
-
50  }
-
51  return InitializeWithIv(key, iv);
-
52 }
-
53 
-
54 bool AesEncryptor::InitializeWithIv(const std::vector<uint8_t>& key,
-
55  const std::vector<uint8_t>& iv) {
-
56  if (!IsKeySizeValidForAes(key.size())) {
-
57  LOG(ERROR) << "Invalid AES key size: " << key.size();
-
58  return false;
-
59  }
-
60 
-
61  CHECK_EQ(AES_set_encrypt_key(key.data(), key.size() * 8, mutable_aes_key()),
-
62  0);
-
63  return SetIv(iv);
-
64 }
-
65 
-
66 AesCtrEncryptor::AesCtrEncryptor()
-
67  : block_offset_(0),
-
68  encrypted_counter_(AES_BLOCK_SIZE, 0),
-
69  counter_overflow_(false) {}
-
70 
-
71 AesCtrEncryptor::~AesCtrEncryptor() {}
-
72 
- -
74  block_offset_ = 0;
-
75 
-
76  // As recommended in ISO/IEC FDIS 23001-7: CENC spec, for 64-bit (8-byte)
-
77  // IV_Sizes, initialization vectors for subsequent samples can be created by
-
78  // incrementing the initialization vector of the previous sample.
-
79  // For 128-bit (16-byte) IV_Sizes, initialization vectors for subsequent
-
80  // samples should be created by adding the block count of the previous sample
-
81  // to the initialization vector of the previous sample.
-
82  if (iv().size() == 8) {
-
83  counter_ = iv();
-
84  Increment64(&counter_[0]);
+
35 namespace edash_packager {
+
36 namespace media {
+
37 
+
38 AesEncryptor::AesEncryptor() {}
+
39 AesEncryptor::~AesEncryptor() {}
+
40 
+
41 bool AesEncryptor::InitializeWithIv(const std::vector<uint8_t>& key,
+
42  const std::vector<uint8_t>& iv) {
+
43  if (!IsKeySizeValidForAes(key.size())) {
+
44  LOG(ERROR) << "Invalid AES key size: " << key.size();
+
45  return false;
+
46  }
+
47 
+
48  CHECK_EQ(AES_set_encrypt_key(key.data(), key.size() * 8, mutable_aes_key()),
+
49  0);
+
50  return SetIv(iv);
+
51 }
+
52 
+
53 AesCtrEncryptor::AesCtrEncryptor()
+
54  : block_offset_(0),
+
55  encrypted_counter_(AES_BLOCK_SIZE, 0),
+
56  counter_overflow_(false) {}
+
57 
+
58 AesCtrEncryptor::~AesCtrEncryptor() {}
+
59 
+ +
61  block_offset_ = 0;
+
62 
+
63  // As recommended in ISO/IEC FDIS 23001-7: CENC spec, for 64-bit (8-byte)
+
64  // IV_Sizes, initialization vectors for subsequent samples can be created by
+
65  // incrementing the initialization vector of the previous sample.
+
66  // For 128-bit (16-byte) IV_Sizes, initialization vectors for subsequent
+
67  // samples should be created by adding the block count of the previous sample
+
68  // to the initialization vector of the previous sample.
+
69  if (iv().size() == 8) {
+
70  counter_ = iv();
+
71  Increment64(&counter_[0]);
+
72  set_iv(counter_);
+
73  counter_.resize(AES_BLOCK_SIZE, 0);
+
74  } else {
+
75  DCHECK_EQ(16u, iv().size());
+
76  // Even though the block counter portion of the counter (bytes 8 to 15) is
+
77  // treated as a 64-bit number, it is recommended that the initialization
+
78  // vector is treated as a 128-bit number when calculating the next
+
79  // initialization vector from the previous one. The block counter portion
+
80  // is already incremented by number of blocks, the other 64 bits of the
+
81  // counter (bytes 0 to 7) is incremented here if the block counter portion
+
82  // has overflowed.
+
83  if (counter_overflow_)
+
84  Increment64(&counter_[0]);
85  set_iv(counter_);
-
86  counter_.resize(AES_BLOCK_SIZE, 0);
-
87  } else {
-
88  DCHECK_EQ(16u, iv().size());
-
89  // Even though the block counter portion of the counter (bytes 8 to 15) is
-
90  // treated as a 64-bit number, it is recommended that the initialization
-
91  // vector is treated as a 128-bit number when calculating the next
-
92  // initialization vector from the previous one. The block counter portion
-
93  // is already incremented by number of blocks, the other 64 bits of the
-
94  // counter (bytes 0 to 7) is incremented here if the block counter portion
-
95  // has overflowed.
-
96  if (counter_overflow_)
-
97  Increment64(&counter_[0]);
-
98  set_iv(counter_);
-
99  }
-
100  counter_overflow_ = false;
+
86  }
+
87  counter_overflow_ = false;
+
88 }
+
89 
+
90 bool AesCtrEncryptor::SetIv(const std::vector<uint8_t>& iv) {
+
91  if (!IsIvSizeValid(iv.size())) {
+
92  LOG(ERROR) << "Invalid IV size: " << iv.size();
+
93  return false;
+
94  }
+
95 
+
96  block_offset_ = 0;
+
97  set_iv(iv);
+
98  counter_ = iv;
+
99  counter_.resize(AES_BLOCK_SIZE, 0);
+
100  return true;
101 }
102 
-
103 bool AesCtrEncryptor::SetIv(const std::vector<uint8_t>& iv) {
-
104  if (!IsIvSizeValid(iv.size())) {
-
105  LOG(ERROR) << "Invalid IV size: " << iv.size();
-
106  return false;
-
107  }
-
108 
-
109  block_offset_ = 0;
-
110  set_iv(iv);
-
111  counter_ = iv;
-
112  counter_.resize(AES_BLOCK_SIZE, 0);
-
113  return true;
-
114 }
-
115 
-
116 bool AesCtrEncryptor::CryptInternal(const uint8_t* plaintext,
-
117  size_t plaintext_size,
-
118  uint8_t* ciphertext,
-
119  size_t* ciphertext_size) {
-
120  DCHECK(plaintext);
-
121  DCHECK(ciphertext);
-
122  DCHECK(aes_key());
-
123 
-
124  // |ciphertext_size| is always the same as |plaintext_size| for counter mode.
-
125  if (*ciphertext_size < plaintext_size) {
-
126  LOG(ERROR) << "Expecting output size of at least " << plaintext_size
-
127  << " bytes.";
-
128  return false;
-
129  }
-
130  *ciphertext_size = plaintext_size;
-
131 
-
132  for (size_t i = 0; i < plaintext_size; ++i) {
-
133  if (block_offset_ == 0) {
-
134  AES_encrypt(&counter_[0], &encrypted_counter_[0], aes_key());
-
135  // As mentioned in ISO/IEC FDIS 23001-7: CENC spec, of the 16 byte counter
-
136  // block, bytes 8 to 15 (i.e. the least significant bytes) are used as a
-
137  // simple 64 bit unsigned integer that is incremented by one for each
-
138  // subsequent block of sample data processed and is kept in network byte
-
139  // order.
-
140  if (Increment64(&counter_[8]))
-
141  counter_overflow_ = true;
-
142  }
-
143  ciphertext[i] = plaintext[i] ^ encrypted_counter_[block_offset_];
-
144  block_offset_ = (block_offset_ + 1) % AES_BLOCK_SIZE;
-
145  }
-
146  return true;
-
147 }
-
148 
-
149 AesCbcEncryptor::AesCbcEncryptor(CbcPaddingScheme padding_scheme,
-
150  bool chain_across_calls)
-
151  : padding_scheme_(padding_scheme),
-
152  chain_across_calls_(chain_across_calls) {
-
153  if (padding_scheme_ != kNoPadding) {
-
154  CHECK(!chain_across_calls) << "cipher block chain across calls only makes "
-
155  "sense if the padding_scheme is kNoPadding.";
-
156  }
-
157 }
-
158 AesCbcEncryptor::~AesCbcEncryptor() {}
-
159 
- -
161  // From CENC spec: CBC mode Initialization Vectors need not be unique per
-
162  // sample or Subsample and may be generated randomly or sequentially, e.g.
-
163  // a per sample IV may be (1) equal to the cipher text of the last encrypted
-
164  // cipher block (a continous cipher block chain across samples), or (2)
-
165  // generated by incrementing the previuos IV by the number of cipher blocks in the last
-
166  // sample or (3) by a fixed amount. We use method (1) here. No separate IV
-
167  // update is needed.
-
168 }
-
169 
-
170 bool AesCbcEncryptor::SetIv(const std::vector<uint8_t>& iv) {
-
171  if (iv.size() != AES_BLOCK_SIZE) {
-
172  LOG(ERROR) << "Invalid IV size: " << iv.size();
-
173  return false;
-
174  }
-
175 
-
176  set_iv(iv);
-
177  return true;
-
178 }
+
103 bool AesCtrEncryptor::CryptInternal(const uint8_t* plaintext,
+
104  size_t plaintext_size,
+
105  uint8_t* ciphertext,
+
106  size_t* ciphertext_size) {
+
107  DCHECK(plaintext);
+
108  DCHECK(ciphertext);
+
109  DCHECK(aes_key());
+
110 
+
111  // |ciphertext_size| is always the same as |plaintext_size| for counter mode.
+
112  if (*ciphertext_size < plaintext_size) {
+
113  LOG(ERROR) << "Expecting output size of at least " << plaintext_size
+
114  << " bytes.";
+
115  return false;
+
116  }
+
117  *ciphertext_size = plaintext_size;
+
118 
+
119  for (size_t i = 0; i < plaintext_size; ++i) {
+
120  if (block_offset_ == 0) {
+
121  AES_encrypt(&counter_[0], &encrypted_counter_[0], aes_key());
+
122  // As mentioned in ISO/IEC FDIS 23001-7: CENC spec, of the 16 byte counter
+
123  // block, bytes 8 to 15 (i.e. the least significant bytes) are used as a
+
124  // simple 64 bit unsigned integer that is incremented by one for each
+
125  // subsequent block of sample data processed and is kept in network byte
+
126  // order.
+
127  if (Increment64(&counter_[8]))
+
128  counter_overflow_ = true;
+
129  }
+
130  ciphertext[i] = plaintext[i] ^ encrypted_counter_[block_offset_];
+
131  block_offset_ = (block_offset_ + 1) % AES_BLOCK_SIZE;
+
132  }
+
133  return true;
+
134 }
+
135 
+
136 AesCbcEncryptor::AesCbcEncryptor(CbcPaddingScheme padding_scheme,
+
137  bool chain_across_calls)
+
138  : padding_scheme_(padding_scheme),
+
139  chain_across_calls_(chain_across_calls) {
+
140  if (padding_scheme_ != kNoPadding) {
+
141  CHECK(!chain_across_calls) << "cipher block chain across calls only makes "
+
142  "sense if the padding_scheme is kNoPadding.";
+
143  }
+
144 }
+
145 AesCbcEncryptor::~AesCbcEncryptor() {}
+
146 
+ +
148  // From CENC spec: CBC mode Initialization Vectors need not be unique per
+
149  // sample or Subsample and may be generated randomly or sequentially, e.g.
+
150  // a per sample IV may be (1) equal to the cipher text of the last encrypted
+
151  // cipher block (a continous cipher block chain across samples), or (2)
+
152  // generated by incrementing the previuos IV by the number of cipher blocks in the last
+
153  // sample or (3) by a fixed amount. We use method (1) here. No separate IV
+
154  // update is needed.
+
155 }
+
156 
+
157 bool AesCbcEncryptor::SetIv(const std::vector<uint8_t>& iv) {
+
158  if (iv.size() != AES_BLOCK_SIZE) {
+
159  LOG(ERROR) << "Invalid IV size: " << iv.size();
+
160  return false;
+
161  }
+
162 
+
163  set_iv(iv);
+
164  return true;
+
165 }
+
166 
+
167 bool AesCbcEncryptor::CryptInternal(const uint8_t* plaintext,
+
168  size_t plaintext_size,
+
169  uint8_t* ciphertext,
+
170  size_t* ciphertext_size) {
+
171  DCHECK(aes_key());
+
172 
+
173  const size_t residual_block_size = plaintext_size % AES_BLOCK_SIZE;
+
174  if (padding_scheme_ == kNoPadding && residual_block_size != 0) {
+
175  LOG(ERROR) << "Expecting input size to be multiple of " << AES_BLOCK_SIZE
+
176  << ", got " << plaintext_size;
+
177  return false;
+
178  }
179 
-
180 bool AesCbcEncryptor::CryptInternal(const uint8_t* plaintext,
-
181  size_t plaintext_size,
-
182  uint8_t* ciphertext,
-
183  size_t* ciphertext_size) {
-
184  DCHECK(aes_key());
-
185 
-
186  const size_t residual_block_size = plaintext_size % AES_BLOCK_SIZE;
-
187  if (padding_scheme_ == kNoPadding && residual_block_size != 0) {
-
188  LOG(ERROR) << "Expecting input size to be multiple of " << AES_BLOCK_SIZE
-
189  << ", got " << plaintext_size;
-
190  return false;
-
191  }
-
192 
-
193  const size_t num_padding_bytes = NumPaddingBytes(plaintext_size);
-
194  const size_t required_ciphertext_size = plaintext_size + num_padding_bytes;
-
195  if (*ciphertext_size < required_ciphertext_size) {
-
196  LOG(ERROR) << "Expecting output size of at least "
-
197  << required_ciphertext_size << " bytes.";
-
198  return false;
+
180  const size_t num_padding_bytes = NumPaddingBytes(plaintext_size);
+
181  const size_t required_ciphertext_size = plaintext_size + num_padding_bytes;
+
182  if (*ciphertext_size < required_ciphertext_size) {
+
183  LOG(ERROR) << "Expecting output size of at least "
+
184  << required_ciphertext_size << " bytes.";
+
185  return false;
+
186  }
+
187  *ciphertext_size = required_ciphertext_size;
+
188 
+
189  // Encrypt everything but the residual block using CBC.
+
190  const size_t cbc_size = plaintext_size - residual_block_size;
+
191  std::vector<uint8_t> local_iv(iv());
+
192  if (cbc_size != 0) {
+
193  AES_cbc_encrypt(plaintext, ciphertext, cbc_size, aes_key(), local_iv.data(),
+
194  AES_ENCRYPT);
+
195  } else if (padding_scheme_ == kCtsPadding) {
+
196  // Don't have a full block, leave unencrypted.
+
197  memcpy(ciphertext, plaintext, plaintext_size);
+
198  return true;
199  }
-
200  *ciphertext_size = required_ciphertext_size;
-
201 
-
202  // Encrypt everything but the residual block using CBC.
-
203  const size_t cbc_size = plaintext_size - residual_block_size;
-
204  std::vector<uint8_t> local_iv(iv());
-
205  if (cbc_size != 0) {
-
206  AES_cbc_encrypt(plaintext, ciphertext, cbc_size, aes_key(), local_iv.data(),
-
207  AES_ENCRYPT);
-
208  } else if (padding_scheme_ == kCtsPadding) {
-
209  // Don't have a full block, leave unencrypted.
-
210  memcpy(ciphertext, plaintext, plaintext_size);
-
211  return true;
-
212  }
-
213  if (residual_block_size == 0 && padding_scheme_ != kPkcs5Padding) {
-
214  if (chain_across_calls_)
-
215  set_iv(local_iv);
-
216  // No residual block. No need to do padding.
-
217  return true;
-
218  }
-
219  DCHECK(!chain_across_calls_);
-
220 
-
221  std::vector<uint8_t> residual_block(plaintext + cbc_size,
-
222  plaintext + plaintext_size);
-
223  DCHECK_EQ(residual_block.size(), residual_block_size);
-
224  uint8_t* residual_ciphertext_block = ciphertext + cbc_size;
-
225 
-
226  if (padding_scheme_ == kPkcs5Padding) {
-
227  DCHECK_EQ(num_padding_bytes, AES_BLOCK_SIZE - residual_block_size);
+
200  if (residual_block_size == 0 && padding_scheme_ != kPkcs5Padding) {
+
201  if (chain_across_calls_)
+
202  set_iv(local_iv);
+
203  // No residual block. No need to do padding.
+
204  return true;
+
205  }
+
206  DCHECK(!chain_across_calls_);
+
207 
+
208  std::vector<uint8_t> residual_block(plaintext + cbc_size,
+
209  plaintext + plaintext_size);
+
210  DCHECK_EQ(residual_block.size(), residual_block_size);
+
211  uint8_t* residual_ciphertext_block = ciphertext + cbc_size;
+
212 
+
213  if (padding_scheme_ == kPkcs5Padding) {
+
214  DCHECK_EQ(num_padding_bytes, AES_BLOCK_SIZE - residual_block_size);
+
215 
+
216  // Pad residue block with PKCS5 padding.
+
217  residual_block.resize(AES_BLOCK_SIZE, static_cast<char>(num_padding_bytes));
+
218  AES_cbc_encrypt(residual_block.data(), residual_ciphertext_block,
+
219  AES_BLOCK_SIZE, aes_key(), local_iv.data(), AES_ENCRYPT);
+
220  } else {
+
221  DCHECK_EQ(num_padding_bytes, 0u);
+
222  DCHECK_EQ(padding_scheme_, kCtsPadding);
+
223 
+
224  // Zero-pad the residual block and encrypt using CBC.
+
225  residual_block.resize(AES_BLOCK_SIZE, 0);
+
226  AES_cbc_encrypt(residual_block.data(), residual_block.data(),
+
227  AES_BLOCK_SIZE, aes_key(), local_iv.data(), AES_ENCRYPT);
228 
-
229  // Pad residue block with PKCS5 padding.
-
230  residual_block.resize(AES_BLOCK_SIZE, static_cast<char>(num_padding_bytes));
-
231  AES_cbc_encrypt(residual_block.data(), residual_ciphertext_block,
-
232  AES_BLOCK_SIZE, aes_key(), local_iv.data(), AES_ENCRYPT);
-
233  } else {
-
234  DCHECK_EQ(num_padding_bytes, 0u);
-
235  DCHECK_EQ(padding_scheme_, kCtsPadding);
-
236 
-
237  // Zero-pad the residual block and encrypt using CBC.
-
238  residual_block.resize(AES_BLOCK_SIZE, 0);
-
239  AES_cbc_encrypt(residual_block.data(), residual_block.data(),
-
240  AES_BLOCK_SIZE, aes_key(), local_iv.data(), AES_ENCRYPT);
+
229  // Replace the last full block with the zero-padded, encrypted residual
+
230  // block, and replace the residual block with the equivalent portion of the
+
231  // last full encrypted block. It may appear that some encrypted bits of the
+
232  // last full block are lost, but they are not, as they were used as the IV
+
233  // when encrypting the zero-padded residual block.
+
234  memcpy(residual_ciphertext_block,
+
235  residual_ciphertext_block - AES_BLOCK_SIZE, residual_block_size);
+
236  memcpy(residual_ciphertext_block - AES_BLOCK_SIZE, residual_block.data(),
+
237  AES_BLOCK_SIZE);
+
238  }
+
239  return true;
+
240 }
241 
-
242  // Replace the last full block with the zero-padded, encrypted residual
-
243  // block, and replace the residual block with the equivalent portion of the
-
244  // last full encrypted block. It may appear that some encrypted bits of the
-
245  // last full block are lost, but they are not, as they were used as the IV
-
246  // when encrypting the zero-padded residual block.
-
247  memcpy(residual_ciphertext_block,
-
248  residual_ciphertext_block - AES_BLOCK_SIZE, residual_block_size);
-
249  memcpy(residual_ciphertext_block - AES_BLOCK_SIZE, residual_block.data(),
-
250  AES_BLOCK_SIZE);
-
251  }
-
252  return true;
-
253 }
-
254 
-
255 size_t AesCbcEncryptor::NumPaddingBytes(size_t size) const {
-
256  return (padding_scheme_ == kPkcs5Padding)
-
257  ? (AES_BLOCK_SIZE - (size % AES_BLOCK_SIZE))
-
258  : 0;
-
259 }
-
260 
-
261 } // namespace media
-
262 } // namespace edash_packager
- -
bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
- -
bool SetIv(const std::vector< uint8_t > &iv) override
+
242 size_t AesCbcEncryptor::NumPaddingBytes(size_t size) const {
+
243  return (padding_scheme_ == kPkcs5Padding)
+
244  ? (AES_BLOCK_SIZE - (size % AES_BLOCK_SIZE))
+
245  : 0;
+
246 }
+
247 
+
248 } // namespace media
+
249 } // namespace edash_packager
+ +
bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
+ +
bool SetIv(const std::vector< uint8_t > &iv) override
virtual bool SetIv(const std::vector< uint8_t > &iv)=0
-
bool SetIv(const std::vector< uint8_t > &iv) override
-
AesCbcEncryptor(CbcPaddingScheme padding_scheme, bool chain_across_calls)
-
bool InitializeWithRandomIv(const std::vector< uint8_t > &key, uint8_t iv_size)
-
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:59
+
bool SetIv(const std::vector< uint8_t > &iv) override
+
AesCbcEncryptor(CbcPaddingScheme padding_scheme, bool chain_across_calls)
+
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:60
diff --git a/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html b/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html index e2786b4ffa..0b457bc09c 100644 --- a/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html +++ b/docs/d5/db7/classedash__packager_1_1xml_1_1AdaptationSetXmlNode-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dba/ts__packet_8cc_source.html b/docs/d5/dba/ts__packet_8cc_source.html index 8118c5f891..664b032dfb 100644 --- a/docs/d5/dba/ts__packet_8cc_source.html +++ b/docs/d5/dba/ts__packet_8cc_source.html @@ -304,7 +304,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dc1/webm__webvtt__parser_8cc_source.html b/docs/d5/dc1/webm__webvtt__parser_8cc_source.html index a6961f17da..53c99c49a0 100644 --- a/docs/d5/dc1/webm__webvtt__parser_8cc_source.html +++ b/docs/d5/dc1/webm__webvtt__parser_8cc_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dc9/classedash__packager_1_1media_1_1AesCbcDecryptor-members.html b/docs/d5/dc9/classedash__packager_1_1media_1_1AesCbcDecryptor-members.html index 34cc6282d9..ae9ad90634 100644 --- a/docs/d5/dc9/classedash__packager_1_1media_1_1AesCbcDecryptor-members.html +++ b/docs/d5/dc9/classedash__packager_1_1media_1_1AesCbcDecryptor-members.html @@ -99,18 +99,19 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Crypt(const std::vector< uint8_t > &text, std::vector< uint8_t > *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const std::string &text, std::string *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const uint8_t *text, size_t text_size, uint8_t *crypt_text)edash_packager::media::AesCryptorinline - InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesCbcDecryptorvirtual - iv() const edash_packager::media::AesCryptorinline - mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected - set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected - SetIv(const std::vector< uint8_t > &iv) overrideedash_packager::media::AesCbcDecryptorvirtual - UpdateIv() overrideedash_packager::media::AesCbcDecryptorinlinevirtual - ~AesCbcDecryptor() override (defined in edash_packager::media::AesCbcDecryptor)edash_packager::media::AesCbcDecryptor - ~AesCryptor() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorvirtual + GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)edash_packager::media::AesCryptorstatic + InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesCbcDecryptorvirtual + iv() const edash_packager::media::AesCryptorinline + mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected + set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected + SetIv(const std::vector< uint8_t > &iv) overrideedash_packager::media::AesCbcDecryptorvirtual + UpdateIv() overrideedash_packager::media::AesCbcDecryptorinlinevirtual + ~AesCbcDecryptor() override (defined in edash_packager::media::AesCbcDecryptor)edash_packager::media::AesCbcDecryptor + ~AesCryptor() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorvirtual diff --git a/docs/d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html b/docs/d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html index a5d50a2ff2..06f2a056c1 100644 --- a/docs/d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html +++ b/docs/d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html @@ -133,6 +133,9 @@ bool Crypt (const std: + + + @@ -290,7 +293,7 @@ AES_KEY *  diff --git a/docs/d5/dce/classedash__packager_1_1media_1_1VP8Parser.html b/docs/d5/dce/classedash__packager_1_1media_1_1VP8Parser.html index c46e86259d..029f23feb5 100644 --- a/docs/d5/dce/classedash__packager_1_1media_1_1VP8Parser.html +++ b/docs/d5/dce/classedash__packager_1_1media_1_1VP8Parser.html @@ -235,7 +235,7 @@ Additional Inherited Members diff --git a/docs/d5/dcf/rsa__key_8h_source.html b/docs/d5/dcf/rsa__key_8h_source.html index 2cea68cc1b..03ec437efe 100644 --- a/docs/d5/dcf/rsa__key_8h_source.html +++ b/docs/d5/dcf/rsa__key_8h_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dd2/classedash__packager_1_1media_1_1VPxParser.html b/docs/d5/dd2/classedash__packager_1_1media_1_1VPxParser.html index 1129e4a1aa..a05beabd97 100644 --- a/docs/d5/dd2/classedash__packager_1_1media_1_1VPxParser.html +++ b/docs/d5/dd2/classedash__packager_1_1media_1_1VPxParser.html @@ -205,7 +205,7 @@ Protected Member Functions diff --git a/docs/d5/dda/ts__section__psi_8h_source.html b/docs/d5/dda/ts__section__psi_8h_source.html index c0f17b0e58..5e834afd5a 100644 --- a/docs/d5/dda/ts__section__psi_8h_source.html +++ b/docs/d5/dda/ts__section__psi_8h_source.html @@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/de0/bit__reader_8cc_source.html b/docs/d5/de0/bit__reader_8cc_source.html index 466019c0e5..62f2dc1b58 100644 --- a/docs/d5/de0/bit__reader_8cc_source.html +++ b/docs/d5/de0/bit__reader_8cc_source.html @@ -199,7 +199,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html b/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html index b3c034e7dd..adf46f9cc3 100644 --- a/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html +++ b/docs/d5/dec/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');

Additional Inherited Members

- Static Public Member Functions inherited from edash_packager::media::AesCryptor
static bool GenerateRandomIv (FourCC protection_scheme, std::vector< uint8_t > *iv)
 
- Protected Member Functions inherited from edash_packager::media::AesCryptor
void set_iv (const std::vector< uint8_t > &iv)
mutable_aes_key< diff --git a/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html b/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html index 6b82d841b0..9355505b18 100644 --- a/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html +++ b/docs/d5/dce/classedash__packager_1_1media_1_1Demuxer.html @@ -295,7 +295,7 @@ Public Member Functions
diff --git a/docs/d5/def/ts__section__pmt_8h_source.html b/docs/d5/def/ts__section__pmt_8h_source.html index 4d807ead4f..eedae47b4f 100644 --- a/docs/d5/def/ts__section__pmt_8h_source.html +++ b/docs/d5/def/ts__section__pmt_8h_source.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d5/dfc/file_8cc_source.html b/docs/d5/dfc/file_8cc_source.html index 61b6d71889..77b7d08249 100644 --- a/docs/d5/dfc/file_8cc_source.html +++ b/docs/d5/dfc/file_8cc_source.html @@ -376,7 +376,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html b/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html index 3327b3b46e..c454d986be 100644 --- a/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html +++ b/docs/d6/d00/structedash__packager_1_1media_1_1mp4_1_1Box-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d05/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html b/docs/d6/d05/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html index 9264fddc47..9bc3a33ca0 100644 --- a/docs/d6/d05/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html +++ b/docs/d6/d05/structedash__packager_1_1media_1_1H265SliceHeader_1_1LongTermPicsInfo-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html b/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html index 7609b8f93b..6b75cc5bd3 100644 --- a/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html +++ b/docs/d6/d06/classedash__packager_1_1media_1_1StreamInfo.html @@ -229,7 +229,7 @@ class base::RefCountedThre diff --git a/docs/d6/d09/aes__pattern__cryptor_8h_source.html b/docs/d6/d09/aes__pattern__cryptor_8h_source.html index d13fbc7e8b..c664e47e8a 100644 --- a/docs/d6/d09/aes__pattern__cryptor_8h_source.html +++ b/docs/d6/d09/aes__pattern__cryptor_8h_source.html @@ -137,17 +137,17 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
64 
65 } // namespace media
66 } // namespace edash_packager
- +
bool SetIv(const std::vector< uint8_t > &iv) override
bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
Implements pattern-based encryption/decryption.
-
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:59
+
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:60
AesPatternCryptor(uint8_t crypt_byte_block, uint8_t skip_byte_block, ConstantIvFlag constant_iv_flag, scoped_ptr< AesCryptor > cryptor)
diff --git a/docs/d6/d09/classedash__packager_1_1media_1_1H265Parser-members.html b/docs/d6/d09/classedash__packager_1_1media_1_1H265Parser-members.html index 4153a81f8d..756f4a59a5 100644 --- a/docs/d6/d09/classedash__packager_1_1media_1_1H265Parser-members.html +++ b/docs/d6/d09/classedash__packager_1_1media_1_1H265Parser-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html b/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html index 9bc8f071dd..bf2b8c54aa 100644 --- a/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html +++ b/docs/d6/d10/classedash__packager_1_1media_1_1VideoStreamInfo-members.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html b/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html index 6770d74063..88d586d82a 100644 --- a/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html +++ b/docs/d6/d12/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html b/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html index ec27457e07..3b9550badd 100644 --- a/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html +++ b/docs/d6/d13/classedash__packager_1_1media_1_1mp4_1_1CompositionOffsetIterator-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d16/text__stream__info_8cc_source.html b/docs/d6/d16/text__stream__info_8cc_source.html index feaeb32cf3..eba4d595f0 100644 --- a/docs/d6/d16/text__stream__info_8cc_source.html +++ b/docs/d6/d16/text__stream__info_8cc_source.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d17/es__parser__h264_8cc_source.html b/docs/d6/d17/es__parser__h264_8cc_source.html index 9a736f2200..9a7aa56663 100644 --- a/docs/d6/d17/es__parser__h264_8cc_source.html +++ b/docs/d6/d17/es__parser__h264_8cc_source.html @@ -484,7 +484,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html b/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html index 6139a80328..138f8b69db 100644 --- a/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html +++ b/docs/d6/d19/structedash__packager_1_1media_1_1mp4_1_1SampleGroupDescription-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html b/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html index 3048bedf77..af7725bcfa 100644 --- a/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html +++ b/docs/d6/d1b/classedash__packager_1_1media_1_1ClosureThread-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d1d/structedash__packager_1_1media_1_1H265ReferencePictureListModifications-members.html b/docs/d6/d1d/structedash__packager_1_1media_1_1H265ReferencePictureListModifications-members.html index 4283da05fe..94e08706df 100644 --- a/docs/d6/d1d/structedash__packager_1_1media_1_1H265ReferencePictureListModifications-members.html +++ b/docs/d6/d1d/structedash__packager_1_1media_1_1H265ReferencePictureListModifications-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d29/classedash__packager_1_1media_1_1AesCryptor-members.html b/docs/d6/d29/classedash__packager_1_1media_1_1AesCryptor-members.html index a03b439254..2b0259fdc2 100644 --- a/docs/d6/d29/classedash__packager_1_1media_1_1AesCryptor-members.html +++ b/docs/d6/d29/classedash__packager_1_1media_1_1AesCryptor-members.html @@ -98,17 +98,18 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Crypt(const std::vector< uint8_t > &text, std::vector< uint8_t > *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const std::string &text, std::string *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const uint8_t *text, size_t text_size, uint8_t *crypt_text)edash_packager::media::AesCryptorinline - InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv)=0edash_packager::media::AesCryptorpure virtual - iv() const edash_packager::media::AesCryptorinline - mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected - set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected - SetIv(const std::vector< uint8_t > &iv)=0edash_packager::media::AesCryptorpure virtual - UpdateIv()=0edash_packager::media::AesCryptorpure virtual - ~AesCryptor() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorvirtual + GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)edash_packager::media::AesCryptorstatic + InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv)=0edash_packager::media::AesCryptorpure virtual + iv() const edash_packager::media::AesCryptorinline + mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected + set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected + SetIv(const std::vector< uint8_t > &iv)=0edash_packager::media::AesCryptorpure virtual + UpdateIv()=0edash_packager::media::AesCryptorpure virtual + ~AesCryptor() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorvirtual diff --git a/docs/d6/d2e/mpd__notifier__util_8cc_source.html b/docs/d6/d2e/mpd__notifier__util_8cc_source.html index 26ebed1f1e..bea6490051 100644 --- a/docs/d6/d2e/mpd__notifier__util_8cc_source.html +++ b/docs/d6/d2e/mpd__notifier__util_8cc_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d35/webm__content__encodings_8cc_source.html b/docs/d6/d35/webm__content__encodings_8cc_source.html index 6c56c7e347..2c71fb6615 100644 --- a/docs/d6/d35/webm__content__encodings_8cc_source.html +++ b/docs/d6/d35/webm__content__encodings_8cc_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html b/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html index d8c6d94f59..706ab6abd1 100644 --- a/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html +++ b/docs/d6/d37/classedash__packager_1_1xml_1_1AdaptationSetXmlNode.html @@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html b/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html index a01a304abd..99eb782b42 100644 --- a/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html +++ b/docs/d6/d3a/classedash__packager_1_1media_1_1AesRequestSigner-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d3b/chunk__info__iterator_8cc_source.html b/docs/d6/d3b/chunk__info__iterator_8cc_source.html index 28726d2a3f..918204a35d 100644 --- a/docs/d6/d3b/chunk__info__iterator_8cc_source.html +++ b/docs/d6/d3b/chunk__info__iterator_8cc_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d3e/classedash__packager_1_1media_1_1mp2t_1_1PesPacket.html b/docs/d6/d3e/classedash__packager_1_1media_1_1mp2t_1_1PesPacket.html index b70534208d..3d06429666 100644 --- a/docs/d6/d3e/classedash__packager_1_1media_1_1mp2t_1_1PesPacket.html +++ b/docs/d6/d3e/classedash__packager_1_1media_1_1mp2t_1_1PesPacket.html @@ -387,7 +387,7 @@ const std::vector< uint8_t > &  diff --git a/docs/d6/d41/encrypting__fragmenter_8cc_source.html b/docs/d6/d41/encrypting__fragmenter_8cc_source.html index 4bfd421a63..5625d4e707 100644 --- a/docs/d6/d41/encrypting__fragmenter_8cc_source.html +++ b/docs/d6/d41/encrypting__fragmenter_8cc_source.html @@ -111,330 +111,326 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
22 namespace mp4 {
23 
24 namespace {
-
25 // Generate 64bit IV by default.
-
26 const size_t kDefaultIvSizeForCtr = 8u;
-
27 const size_t kDefaultIvSizeForCbc = 16u;
-
28 const size_t kCencBlockSize = 16u;
-
29 
-
30 // Adds one or more subsamples to |*subsamples|. This may add more than one
-
31 // if one of the values overflows the integer in the subsample.
-
32 void AddSubsamples(uint64_t clear_bytes,
-
33  uint64_t cipher_bytes,
-
34  std::vector<SubsampleEntry>* subsamples) {
-
35  CHECK_LT(cipher_bytes, std::numeric_limits<uint32_t>::max());
-
36  const uint64_t kUInt16Max = std::numeric_limits<uint16_t>::max();
-
37  while (clear_bytes > kUInt16Max) {
-
38  subsamples->push_back(SubsampleEntry(kUInt16Max, 0));
-
39  clear_bytes -= kUInt16Max;
-
40  }
-
41 
-
42  if (clear_bytes > 0 || cipher_bytes > 0)
-
43  subsamples->push_back(SubsampleEntry(clear_bytes, cipher_bytes));
-
44 }
-
45 
-
46 VideoCodec GetVideoCodec(const StreamInfo& stream_info) {
-
47  if (stream_info.stream_type() != kStreamVideo)
-
48  return kUnknownVideoCodec;
-
49  const VideoStreamInfo& video_stream_info =
-
50  static_cast<const VideoStreamInfo&>(stream_info);
-
51  return video_stream_info.codec();
-
52 }
-
53 
-
54 uint8_t GetNaluLengthSize(const StreamInfo& stream_info) {
-
55  if (stream_info.stream_type() != kStreamVideo)
-
56  return 0;
-
57 
-
58  const VideoStreamInfo& video_stream_info =
-
59  static_cast<const VideoStreamInfo&>(stream_info);
-
60  return video_stream_info.nalu_length_size();
-
61 }
-
62 } // namespace
-
63 
- -
65  scoped_refptr<StreamInfo> info,
-
66  TrackFragment* traf,
-
67  scoped_ptr<EncryptionKey> encryption_key,
-
68  int64_t clear_time,
-
69  EncryptionMode encryption_mode)
-
70  : Fragmenter(traf),
-
71  info_(info),
-
72  encryption_key_(encryption_key.Pass()),
-
73  nalu_length_size_(GetNaluLengthSize(*info)),
-
74  video_codec_(GetVideoCodec(*info)),
-
75  clear_time_(clear_time),
-
76  encryption_mode_(encryption_mode) {
-
77  DCHECK(encryption_key_);
-
78  if (video_codec_ == kCodecVP8) {
-
79  vpx_parser_.reset(new VP8Parser);
-
80  } else if (video_codec_ == kCodecVP9) {
-
81  vpx_parser_.reset(new VP9Parser);
-
82  } else if (video_codec_ == kCodecH264) {
-
83  header_parser_.reset(new H264VideoSliceHeaderParser);
-
84  } else if (video_codec_ == kCodecHVC1 || video_codec_ == kCodecHEV1) {
-
85  header_parser_.reset(new H265VideoSliceHeaderParser);
-
86  } else if (nalu_length_size_ > 0) {
-
87  LOG(WARNING) << "Unknown video codec '" << video_codec_
-
88  << "', whole subsamples will be encrypted.";
-
89  }
-
90 }
-
91 
-
92 EncryptingFragmenter::~EncryptingFragmenter() {}
-
93 
-
94 Status EncryptingFragmenter::AddSample(scoped_refptr<MediaSample> sample) {
-
95  DCHECK(sample);
-
96  if (!fragment_initialized()) {
-
97  Status status = InitializeFragment(sample->dts());
-
98  if (!status.ok())
-
99  return status;
-
100  }
-
101  if (encryptor_) {
-
102  Status status = EncryptSample(sample);
-
103  if (!status.ok())
-
104  return status;
-
105  }
-
106  return Fragmenter::AddSample(sample);
-
107 }
-
108 
- -
110  Status status = Fragmenter::InitializeFragment(first_sample_dts);
-
111  if (!status.ok())
-
112  return status;
+
25 const size_t kCencBlockSize = 16u;
+
26 
+
27 // Adds one or more subsamples to |*subsamples|. This may add more than one
+
28 // if one of the values overflows the integer in the subsample.
+
29 void AddSubsamples(uint64_t clear_bytes,
+
30  uint64_t cipher_bytes,
+
31  std::vector<SubsampleEntry>* subsamples) {
+
32  CHECK_LT(cipher_bytes, std::numeric_limits<uint32_t>::max());
+
33  const uint64_t kUInt16Max = std::numeric_limits<uint16_t>::max();
+
34  while (clear_bytes > kUInt16Max) {
+
35  subsamples->push_back(SubsampleEntry(kUInt16Max, 0));
+
36  clear_bytes -= kUInt16Max;
+
37  }
+
38 
+
39  if (clear_bytes > 0 || cipher_bytes > 0)
+
40  subsamples->push_back(SubsampleEntry(clear_bytes, cipher_bytes));
+
41 }
+
42 
+
43 VideoCodec GetVideoCodec(const StreamInfo& stream_info) {
+
44  if (stream_info.stream_type() != kStreamVideo)
+
45  return kUnknownVideoCodec;
+
46  const VideoStreamInfo& video_stream_info =
+
47  static_cast<const VideoStreamInfo&>(stream_info);
+
48  return video_stream_info.codec();
+
49 }
+
50 
+
51 uint8_t GetNaluLengthSize(const StreamInfo& stream_info) {
+
52  if (stream_info.stream_type() != kStreamVideo)
+
53  return 0;
+
54 
+
55  const VideoStreamInfo& video_stream_info =
+
56  static_cast<const VideoStreamInfo&>(stream_info);
+
57  return video_stream_info.nalu_length_size();
+
58 }
+
59 } // namespace
+
60 
+ +
62  scoped_refptr<StreamInfo> info,
+
63  TrackFragment* traf,
+
64  scoped_ptr<EncryptionKey> encryption_key,
+
65  int64_t clear_time,
+
66  FourCC protection_scheme)
+
67  : Fragmenter(traf),
+
68  info_(info),
+
69  encryption_key_(encryption_key.Pass()),
+
70  nalu_length_size_(GetNaluLengthSize(*info)),
+
71  video_codec_(GetVideoCodec(*info)),
+
72  clear_time_(clear_time),
+
73  protection_scheme_(protection_scheme) {
+
74  DCHECK(encryption_key_);
+
75  if (video_codec_ == kCodecVP8) {
+
76  vpx_parser_.reset(new VP8Parser);
+
77  } else if (video_codec_ == kCodecVP9) {
+
78  vpx_parser_.reset(new VP9Parser);
+
79  } else if (video_codec_ == kCodecH264) {
+
80  header_parser_.reset(new H264VideoSliceHeaderParser);
+
81  } else if (video_codec_ == kCodecHVC1 || video_codec_ == kCodecHEV1) {
+
82  header_parser_.reset(new H265VideoSliceHeaderParser);
+
83  } else if (nalu_length_size_ > 0) {
+
84  LOG(WARNING) << "Unknown video codec '" << video_codec_
+
85  << "', whole subsamples will be encrypted.";
+
86  }
+
87 }
+
88 
+
89 EncryptingFragmenter::~EncryptingFragmenter() {}
+
90 
+
91 Status EncryptingFragmenter::AddSample(scoped_refptr<MediaSample> sample) {
+
92  DCHECK(sample);
+
93  if (!fragment_initialized()) {
+
94  Status status = InitializeFragment(sample->dts());
+
95  if (!status.ok())
+
96  return status;
+
97  }
+
98  if (encryptor_) {
+
99  Status status = EncryptSample(sample);
+
100  if (!status.ok())
+
101  return status;
+
102  }
+
103  return Fragmenter::AddSample(sample);
+
104 }
+
105 
+ +
107  Status status = Fragmenter::InitializeFragment(first_sample_dts);
+
108  if (!status.ok())
+
109  return status;
+
110 
+
111  if (header_parser_ && !header_parser_->Initialize(info_->extra_data()))
+
112  return Status(error::MUXER_FAILURE, "Fail to read SPS and PPS data.");
113 
-
114  if (header_parser_ && !header_parser_->Initialize(info_->extra_data()))
-
115  return Status(error::MUXER_FAILURE, "Fail to read SPS and PPS data.");
-
116 
-
117  traf()->auxiliary_size.sample_info_sizes.clear();
-
118  traf()->auxiliary_offset.offsets.clear();
-
119  if (IsSubsampleEncryptionRequired()) {
-
120  traf()->sample_encryption.flags |=
-
121  SampleEncryption::kUseSubsampleEncryption;
-
122  }
-
123  traf()->sample_encryption.sample_encryption_entries.clear();
-
124 
-
125  const bool enable_encryption = clear_time_ <= 0;
-
126  if (!enable_encryption) {
-
127  // This fragment should be in clear text.
-
128  // At most two sample description entries, an encrypted entry and a clear
-
129  // entry, are generated. The 1-based clear entry index is always 2.
-
130  const uint32_t kClearSampleDescriptionIndex = 2;
-
131 
-
132  traf()->header.flags |=
-
133  TrackFragmentHeader::kSampleDescriptionIndexPresentMask;
-
134  traf()->header.sample_description_index = kClearSampleDescriptionIndex;
-
135  }
-
136  return PrepareFragmentForEncryption(enable_encryption);
-
137 }
-
138 
- -
140  if (encryptor_) {
-
141  DCHECK_LE(clear_time_, 0);
- -
143  } else {
-
144  DCHECK_GT(clear_time_, 0);
-
145  clear_time_ -= fragment_duration();
-
146  }
- -
148 }
-
149 
- -
151  bool enable_encryption) {
-
152  return (!enable_encryption || encryptor_) ? Status::OK : CreateEncryptor();
-
153 }
-
154 
- -
156  // The offset will be adjusted in Segmenter after knowing moof size.
-
157  traf()->auxiliary_offset.offsets.push_back(0);
-
158 
-
159  // Optimize saiz box.
-
160  SampleAuxiliaryInformationSize& saiz = traf()->auxiliary_size;
-
161  saiz.sample_count = traf()->runs[0].sample_sizes.size();
-
162  if (!saiz.sample_info_sizes.empty()) {
-
163  if (!OptimizeSampleEntries(&saiz.sample_info_sizes,
-
164  &saiz.default_sample_info_size)) {
-
165  saiz.default_sample_info_size = 0;
-
166  }
-
167  } else {
-
168  // |sample_info_sizes| table is filled in only for subsample encryption,
-
169  // otherwise |sample_info_size| is just the IV size.
-
170  DCHECK(!IsSubsampleEncryptionRequired());
-
171  saiz.default_sample_info_size = encryptor_->iv().size();
-
172  }
-
173  traf()->sample_encryption.iv_size = encryptor_->iv().size();
-
174 }
-
175 
- -
177  DCHECK(encryption_key_);
-
178  scoped_ptr<AesEncryptor> encryptor;
-
179  size_t default_iv_size = 0;
-
180  if (encryption_mode_ == kEncryptionModeAesCtr) {
-
181  encryptor.reset(new AesCtrEncryptor);
-
182  default_iv_size = kDefaultIvSizeForCtr;
-
183  } else if (encryption_mode_ == kEncryptionModeAesCbc) {
-
184  encryptor.reset(new AesCbcEncryptor(kNoPadding, kChainAcrossCalls));
-
185  default_iv_size = kDefaultIvSizeForCbc;
-
186  } else {
-
187  return Status(error::MUXER_FAILURE, "Unsupported encryption mode.");
-
188  }
-
189  const bool initialized = encryption_key_->iv.empty()
-
190  ? encryptor->InitializeWithRandomIv(
-
191  encryption_key_->key, default_iv_size)
-
192  : encryptor->InitializeWithIv(
-
193  encryption_key_->key, encryption_key_->iv);
-
194  if (!initialized)
-
195  return Status(error::MUXER_FAILURE, "Failed to create the encryptor.");
-
196  encryptor_ = encryptor.Pass();
-
197  return Status::OK;
-
198 }
-
199 
-
200 void EncryptingFragmenter::EncryptBytes(uint8_t* data, uint32_t size) {
-
201  DCHECK(encryptor_);
-
202  CHECK(encryptor_->Crypt(data, size, data));
-
203 }
-
204 
-
205 Status EncryptingFragmenter::EncryptSample(scoped_refptr<MediaSample> sample) {
-
206  DCHECK(encryptor_);
-
207 
-
208  SampleEncryptionEntry sample_encryption_entry;
-
209  sample_encryption_entry.initialization_vector = encryptor_->iv();
-
210  uint8_t* data = sample->writable_data();
-
211  if (IsSubsampleEncryptionRequired()) {
-
212  if (vpx_parser_) {
-
213  std::vector<VPxFrameInfo> vpx_frames;
-
214  if (!vpx_parser_->Parse(sample->data(), sample->data_size(),
-
215  &vpx_frames)) {
-
216  return Status(error::MUXER_FAILURE, "Failed to parse vpx frame.");
-
217  }
-
218 
-
219  const bool is_superframe = vpx_frames.size() > 1;
-
220  for (const VPxFrameInfo& frame : vpx_frames) {
-
221  SubsampleEntry subsample;
-
222  subsample.clear_bytes = frame.uncompressed_header_size;
-
223  subsample.cipher_bytes =
-
224  frame.frame_size - frame.uncompressed_header_size;
-
225 
-
226  // "VP Codec ISO Media File Format Binding" document requires that the
-
227  // encrypted bytes of each frame within the superframe must be block
-
228  // aligned so that the counter state can be computed for each frame
-
229  // within the superframe.
-
230  // For AES-CBC mode 'cbc1' scheme, clear data is sized appropriately so
-
231  // that the cipher data is block aligned.
-
232  if (is_superframe || encryption_mode_ == kEncryptionModeAesCbc) {
-
233  const uint16_t misalign_bytes =
-
234  subsample.cipher_bytes % kCencBlockSize;
-
235  subsample.clear_bytes += misalign_bytes;
-
236  subsample.cipher_bytes -= misalign_bytes;
-
237  }
-
238 
-
239  sample_encryption_entry.subsamples.push_back(subsample);
-
240  if (subsample.cipher_bytes > 0)
-
241  EncryptBytes(data + subsample.clear_bytes, subsample.cipher_bytes);
-
242  data += frame.frame_size;
-
243  }
-
244  } else {
-
245  const NaluReader::NaluType nalu_type =
-
246  (video_codec_ == kCodecHVC1 || video_codec_ == kCodecHEV1)
-
247  ? NaluReader::kH265
-
248  : NaluReader::kH264;
-
249  NaluReader reader(nalu_type, nalu_length_size_, data,
-
250  sample->data_size());
+
114  traf()->auxiliary_size.sample_info_sizes.clear();
+
115  traf()->auxiliary_offset.offsets.clear();
+
116  if (IsSubsampleEncryptionRequired()) {
+
117  traf()->sample_encryption.flags |=
+
118  SampleEncryption::kUseSubsampleEncryption;
+
119  }
+
120  traf()->sample_encryption.sample_encryption_entries.clear();
+
121 
+
122  const bool enable_encryption = clear_time_ <= 0;
+
123  if (!enable_encryption) {
+
124  // This fragment should be in clear text.
+
125  // At most two sample description entries, an encrypted entry and a clear
+
126  // entry, are generated. The 1-based clear entry index is always 2.
+
127  const uint32_t kClearSampleDescriptionIndex = 2;
+
128 
+
129  traf()->header.flags |=
+
130  TrackFragmentHeader::kSampleDescriptionIndexPresentMask;
+
131  traf()->header.sample_description_index = kClearSampleDescriptionIndex;
+
132  }
+
133  return PrepareFragmentForEncryption(enable_encryption);
+
134 }
+
135 
+ +
137  if (encryptor_) {
+
138  DCHECK_LE(clear_time_, 0);
+ +
140  } else {
+
141  DCHECK_GT(clear_time_, 0);
+
142  clear_time_ -= fragment_duration();
+
143  }
+ +
145 }
+
146 
+ +
148  bool enable_encryption) {
+
149  return (!enable_encryption || encryptor_) ? Status::OK : CreateEncryptor();
+
150 }
+
151 
+ +
153  // The offset will be adjusted in Segmenter after knowing moof size.
+
154  traf()->auxiliary_offset.offsets.push_back(0);
+
155 
+
156  // Optimize saiz box.
+
157  SampleAuxiliaryInformationSize& saiz = traf()->auxiliary_size;
+
158  saiz.sample_count = traf()->runs[0].sample_sizes.size();
+
159  if (!saiz.sample_info_sizes.empty()) {
+
160  if (!OptimizeSampleEntries(&saiz.sample_info_sizes,
+
161  &saiz.default_sample_info_size)) {
+
162  saiz.default_sample_info_size = 0;
+
163  }
+
164  } else {
+
165  // |sample_info_sizes| table is filled in only for subsample encryption,
+
166  // otherwise |sample_info_size| is just the IV size.
+
167  DCHECK(!IsSubsampleEncryptionRequired());
+
168  saiz.default_sample_info_size = encryptor_->iv().size();
+
169  }
+
170  traf()->sample_encryption.iv_size = encryptor_->iv().size();
+
171 }
+
172 
+ +
174  DCHECK(encryption_key_);
+
175  scoped_ptr<AesCryptor> encryptor;
+
176  switch (protection_scheme_) {
+
177  case FOURCC_cenc:
+
178  encryptor.reset(new AesCtrEncryptor);
+
179  break;
+
180  case FOURCC_cbc1:
+
181  encryptor.reset(new AesCbcEncryptor(kNoPadding, kChainAcrossCalls));
+
182  break;
+
183  default:
+
184  return Status(error::MUXER_FAILURE, "Unsupported protection scheme.");
+
185  }
+
186 
+
187  DCHECK(!encryption_key_->iv.empty());
+
188  const bool initialized =
+
189  encryptor->InitializeWithIv(encryption_key_->key, encryption_key_->iv);
+
190  if (!initialized)
+
191  return Status(error::MUXER_FAILURE, "Failed to create the encryptor.");
+
192  encryptor_ = encryptor.Pass();
+
193  return Status::OK;
+
194 }
+
195 
+
196 void EncryptingFragmenter::EncryptBytes(uint8_t* data, uint32_t size) {
+
197  DCHECK(encryptor_);
+
198  CHECK(encryptor_->Crypt(data, size, data));
+
199 }
+
200 
+
201 Status EncryptingFragmenter::EncryptSample(scoped_refptr<MediaSample> sample) {
+
202  DCHECK(encryptor_);
+
203 
+
204  SampleEncryptionEntry sample_encryption_entry;
+
205  sample_encryption_entry.initialization_vector = encryptor_->iv();
+
206  uint8_t* data = sample->writable_data();
+
207  if (IsSubsampleEncryptionRequired()) {
+
208  if (vpx_parser_) {
+
209  std::vector<VPxFrameInfo> vpx_frames;
+
210  if (!vpx_parser_->Parse(sample->data(), sample->data_size(),
+
211  &vpx_frames)) {
+
212  return Status(error::MUXER_FAILURE, "Failed to parse vpx frame.");
+
213  }
+
214 
+
215  const bool is_superframe = vpx_frames.size() > 1;
+
216  for (const VPxFrameInfo& frame : vpx_frames) {
+
217  SubsampleEntry subsample;
+
218  subsample.clear_bytes = frame.uncompressed_header_size;
+
219  subsample.cipher_bytes =
+
220  frame.frame_size - frame.uncompressed_header_size;
+
221 
+
222  // "VP Codec ISO Media File Format Binding" document requires that the
+
223  // encrypted bytes of each frame within the superframe must be block
+
224  // aligned so that the counter state can be computed for each frame
+
225  // within the superframe.
+
226  // For AES-CBC mode 'cbc1' scheme, clear data is sized appropriately so
+
227  // that the cipher data is block aligned.
+
228  if (is_superframe || protection_scheme_ == FOURCC_cbc1) {
+
229  const uint16_t misalign_bytes =
+
230  subsample.cipher_bytes % kCencBlockSize;
+
231  subsample.clear_bytes += misalign_bytes;
+
232  subsample.cipher_bytes -= misalign_bytes;
+
233  }
+
234 
+
235  sample_encryption_entry.subsamples.push_back(subsample);
+
236  if (subsample.cipher_bytes > 0)
+
237  EncryptBytes(data + subsample.clear_bytes, subsample.cipher_bytes);
+
238  data += frame.frame_size;
+
239  }
+
240  } else {
+
241  const NaluReader::NaluType nalu_type =
+
242  (video_codec_ == kCodecHVC1 || video_codec_ == kCodecHEV1)
+
243  ? NaluReader::kH265
+
244  : NaluReader::kH264;
+
245  NaluReader reader(nalu_type, nalu_length_size_, data,
+
246  sample->data_size());
+
247 
+
248  // Store the current length of clear data. This is used to squash
+
249  // multiple unencrypted NAL units into fewer subsample entries.
+
250  uint64_t accumulated_clear_bytes = 0;
251 
-
252  // Store the current length of clear data. This is used to squash
-
253  // multiple unencrypted NAL units into fewer subsample entries.
-
254  uint64_t accumulated_clear_bytes = 0;
-
255 
-
256  Nalu nalu;
-
257  NaluReader::Result result;
-
258  while ((result = reader.Advance(&nalu)) == NaluReader::kOk) {
-
259  if (nalu.is_video_slice()) {
-
260  // For video-slice NAL units, encrypt the video slice. This skips
-
261  // the frame header. If this is an unrecognized codec (e.g. H.265),
-
262  // the whole NAL unit will be encrypted.
-
263  const int64_t video_slice_header_size =
-
264  header_parser_ ? header_parser_->GetHeaderSize(nalu) : 0;
-
265  if (video_slice_header_size < 0)
-
266  return Status(error::MUXER_FAILURE, "Failed to read slice header.");
+
252  Nalu nalu;
+
253  NaluReader::Result result;
+
254  while ((result = reader.Advance(&nalu)) == NaluReader::kOk) {
+
255  if (nalu.is_video_slice()) {
+
256  // For video-slice NAL units, encrypt the video slice. This skips
+
257  // the frame header. If this is an unrecognized codec (e.g. H.265),
+
258  // the whole NAL unit will be encrypted.
+
259  const int64_t video_slice_header_size =
+
260  header_parser_ ? header_parser_->GetHeaderSize(nalu) : 0;
+
261  if (video_slice_header_size < 0)
+
262  return Status(error::MUXER_FAILURE, "Failed to read slice header.");
+
263 
+
264  uint64_t current_clear_bytes =
+
265  nalu.header_size() + video_slice_header_size;
+
266  uint64_t cipher_bytes = nalu.payload_size() - video_slice_header_size;
267 
-
268  uint64_t current_clear_bytes =
-
269  nalu.header_size() + video_slice_header_size;
-
270  uint64_t cipher_bytes = nalu.payload_size() - video_slice_header_size;
-
271 
-
272  // For AES-CBC mode 'cbc1' scheme, clear data is sized appropriately
-
273  // so that the cipher data is block aligned.
-
274  if (encryption_mode_ == kEncryptionModeAesCbc) {
-
275  const uint16_t misalign_bytes = cipher_bytes % kCencBlockSize;
-
276  current_clear_bytes += misalign_bytes;
-
277  cipher_bytes -= misalign_bytes;
-
278  }
-
279 
-
280  const uint8_t* nalu_data = nalu.data() + current_clear_bytes;
-
281  EncryptBytes(const_cast<uint8_t*>(nalu_data), cipher_bytes);
-
282 
-
283  AddSubsamples(
-
284  accumulated_clear_bytes + nalu_length_size_ + current_clear_bytes,
-
285  cipher_bytes, &sample_encryption_entry.subsamples);
-
286  accumulated_clear_bytes = 0;
-
287  } else {
-
288  // For non-video-slice NAL units, don't encrypt.
-
289  accumulated_clear_bytes +=
-
290  nalu_length_size_ + nalu.header_size() + nalu.payload_size();
-
291  }
-
292  }
-
293  if (result != NaluReader::kEOStream)
-
294  return Status(error::MUXER_FAILURE, "Failed to parse NAL units.");
-
295  AddSubsamples(accumulated_clear_bytes, 0,
-
296  &sample_encryption_entry.subsamples);
-
297  }
-
298 
-
299  // The length of per-sample auxiliary datum, defined in CENC ch. 7.
-
300  traf()->auxiliary_size.sample_info_sizes.push_back(
-
301  sample_encryption_entry.ComputeSize());
-
302  } else {
-
303  uint64_t encryption_data_size = sample->data_size();
-
304  // AES-CBC mode requires all encrypted cipher blocks to be 16 bytes. The
-
305  // partial blocks are left unencrypted.
-
306  if (encryption_mode_ == kEncryptionModeAesCbc)
-
307  encryption_data_size -= encryption_data_size % kCencBlockSize;
-
308  EncryptBytes(data, encryption_data_size);
-
309  }
-
310 
-
311  traf()->sample_encryption.sample_encryption_entries.push_back(
-
312  sample_encryption_entry);
-
313  encryptor_->UpdateIv();
-
314  return Status::OK;
+
268  // For AES-CBC mode 'cbc1' scheme, clear data is sized appropriately
+
269  // so that the cipher data is block aligned.
+
270  if (protection_scheme_ == FOURCC_cbc1) {
+
271  const uint16_t misalign_bytes = cipher_bytes % kCencBlockSize;
+
272  current_clear_bytes += misalign_bytes;
+
273  cipher_bytes -= misalign_bytes;
+
274  }
+
275 
+
276  const uint8_t* nalu_data = nalu.data() + current_clear_bytes;
+
277  EncryptBytes(const_cast<uint8_t*>(nalu_data), cipher_bytes);
+
278 
+
279  AddSubsamples(
+
280  accumulated_clear_bytes + nalu_length_size_ + current_clear_bytes,
+
281  cipher_bytes, &sample_encryption_entry.subsamples);
+
282  accumulated_clear_bytes = 0;
+
283  } else {
+
284  // For non-video-slice NAL units, don't encrypt.
+
285  accumulated_clear_bytes +=
+
286  nalu_length_size_ + nalu.header_size() + nalu.payload_size();
+
287  }
+
288  }
+
289  if (result != NaluReader::kEOStream)
+
290  return Status(error::MUXER_FAILURE, "Failed to parse NAL units.");
+
291  AddSubsamples(accumulated_clear_bytes, 0,
+
292  &sample_encryption_entry.subsamples);
+
293  }
+
294 
+
295  // The length of per-sample auxiliary datum, defined in CENC ch. 7.
+
296  traf()->auxiliary_size.sample_info_sizes.push_back(
+
297  sample_encryption_entry.ComputeSize());
+
298  } else {
+
299  uint64_t encryption_data_size = sample->data_size();
+
300  // AES-CBC mode requires all encrypted cipher blocks to be 16 bytes. The
+
301  // partial blocks are left unencrypted.
+
302  if (protection_scheme_ == FOURCC_cbc1)
+
303  encryption_data_size -= encryption_data_size % kCencBlockSize;
+
304  EncryptBytes(data, encryption_data_size);
+
305  }
+
306 
+
307  traf()->sample_encryption.sample_encryption_entries.push_back(
+
308  sample_encryption_entry);
+
309  encryptor_->UpdateIv();
+
310  return Status::OK;
+
311 }
+
312 
+
313 bool EncryptingFragmenter::IsSubsampleEncryptionRequired() {
+
314  return vpx_parser_ || nalu_length_size_ != 0;
315 }
316 
-
317 bool EncryptingFragmenter::IsSubsampleEncryptionRequired() {
-
318  return vpx_parser_ || nalu_length_size_ != 0;
-
319 }
-
320 
-
321 } // namespace mp4
-
322 } // namespace media
-
323 } // namespace edash_packager
+
317 } // namespace mp4
+
318 } // namespace media
+
319 } // namespace edash_packager
- -
EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, EncryptionMode encryption_mode)
+ -
Status InitializeFragment(int64_t first_sample_dts) override
+
Status InitializeFragment(int64_t first_sample_dts) override
virtual Status InitializeFragment(int64_t first_sample_dts)
Definition: fragmenter.cc:76
virtual Status AddSample(scoped_refptr< MediaSample > sample)
Definition: fragmenter.cc:36
Class to parse a vp9 bit stream.
Definition: vp9_parser.h:20
+
EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, FourCC protection_scheme)
bool OptimizeSampleEntries(std::vector< T > *entries, T *default_value)
Definition: fragmenter.h:89
-
Status AddSample(scoped_refptr< MediaSample > sample) override
- -
void FinalizeFragment() override
Finalize and optimize the fragment.
+
Status AddSample(scoped_refptr< MediaSample > sample) override
+ +
void FinalizeFragment() override
Finalize and optimize the fragment.
-
virtual Status PrepareFragmentForEncryption(bool enable_encryption)
+
virtual Status PrepareFragmentForEncryption(bool enable_encryption)
-
virtual void FinalizeFragmentForEncryption()
Finalize current fragment for encryption.
+
virtual void FinalizeFragmentForEncryption()
Finalize current fragment for encryption.
virtual void FinalizeFragment()
Finalize and optimize the fragment.
Definition: fragmenter.cc:93
- + diff --git a/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html b/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html index b37e26459f..d548620e75 100644 --- a/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html +++ b/docs/d6/d48/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html b/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html index 0eebf48a30..973d475724 100644 --- a/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html +++ b/docs/d6/d49/classedash__packager_1_1media_1_1AVCDecoderConfiguration.html @@ -244,7 +244,7 @@ void  diff --git a/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html b/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html index 81f3599c98..4d2f9f8834 100644 --- a/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html +++ b/docs/d6/d4e/webm_2multi__segment__segmenter_8cc_source.html @@ -178,12 +178,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
89 } // namespace webm
90 } // namespace media
91 } // namespace edash_packager
- + diff --git a/docs/d6/d55/aes__cryptor_8cc_source.html b/docs/d6/d55/aes__cryptor_8cc_source.html index aeb9faf571..ad84098091 100644 --- a/docs/d6/d55/aes__cryptor_8cc_source.html +++ b/docs/d6/d55/aes__cryptor_8cc_source.html @@ -96,60 +96,81 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
7 #include "packager/media/base/aes_cryptor.h"
8 
9 #include <openssl/aes.h>
-
10 
-
11 #include "packager/base/logging.h"
-
12 #include "packager/base/stl_util.h"
-
13 
-
14 namespace edash_packager {
-
15 namespace media {
-
16 
-
17 AesCryptor::AesCryptor() : aes_key_(new AES_KEY) {}
-
18 AesCryptor::~AesCryptor() {}
-
19 
-
20 bool AesCryptor::Crypt(const std::vector<uint8_t>& text,
-
21  std::vector<uint8_t>* crypt_text) {
-
22  // Save text size to make it work for in-place conversion, since the
-
23  // next statement will update the text size.
-
24  const size_t text_size = text.size();
-
25  crypt_text->resize(text_size + NumPaddingBytes(text_size));
-
26  size_t crypt_text_size = crypt_text->size();
-
27  if (!CryptInternal(text.data(), text_size, crypt_text->data(),
-
28  &crypt_text_size)) {
-
29  return false;
-
30  }
-
31  DCHECK_LE(crypt_text_size, crypt_text->size());
-
32  crypt_text->resize(crypt_text_size);
-
33  return true;
-
34 }
-
35 
-
36 bool AesCryptor::Crypt(const std::string& text, std::string* crypt_text) {
-
37  // Save text size to make it work for in-place conversion, since the
-
38  // next statement will update the text size.
-
39  const size_t text_size = text.size();
-
40  crypt_text->resize(text_size + NumPaddingBytes(text_size));
-
41  size_t crypt_text_size = crypt_text->size();
-
42  if (!CryptInternal(reinterpret_cast<const uint8_t*>(text.data()), text_size,
-
43  reinterpret_cast<uint8_t*>(string_as_array(crypt_text)),
-
44  &crypt_text_size))
-
45  return false;
-
46  DCHECK_LE(crypt_text_size, crypt_text->size());
-
47  crypt_text->resize(crypt_text_size);
-
48  return true;
-
49 }
-
50 
-
51 size_t AesCryptor::NumPaddingBytes(size_t size) const {
-
52  // No padding by default.
-
53  return 0;
-
54 }
-
55 
-
56 } // namespace media
-
57 } // namespace edash_packager
-
58 
-
59 
+
10 #include <openssl/err.h>
+
11 #include <openssl/rand.h>
+
12 
+
13 #include "packager/base/logging.h"
+
14 #include "packager/base/stl_util.h"
+
15 
+
16 namespace edash_packager {
+
17 namespace media {
+
18 
+
19 AesCryptor::AesCryptor() : aes_key_(new AES_KEY) {}
+
20 AesCryptor::~AesCryptor() {}
+
21 
+
22 bool AesCryptor::Crypt(const std::vector<uint8_t>& text,
+
23  std::vector<uint8_t>* crypt_text) {
+
24  // Save text size to make it work for in-place conversion, since the
+
25  // next statement will update the text size.
+
26  const size_t text_size = text.size();
+
27  crypt_text->resize(text_size + NumPaddingBytes(text_size));
+
28  size_t crypt_text_size = crypt_text->size();
+
29  if (!CryptInternal(text.data(), text_size, crypt_text->data(),
+
30  &crypt_text_size)) {
+
31  return false;
+
32  }
+
33  DCHECK_LE(crypt_text_size, crypt_text->size());
+
34  crypt_text->resize(crypt_text_size);
+
35  return true;
+
36 }
+
37 
+
38 bool AesCryptor::Crypt(const std::string& text, std::string* crypt_text) {
+
39  // Save text size to make it work for in-place conversion, since the
+
40  // next statement will update the text size.
+
41  const size_t text_size = text.size();
+
42  crypt_text->resize(text_size + NumPaddingBytes(text_size));
+
43  size_t crypt_text_size = crypt_text->size();
+
44  if (!CryptInternal(reinterpret_cast<const uint8_t*>(text.data()), text_size,
+
45  reinterpret_cast<uint8_t*>(string_as_array(crypt_text)),
+
46  &crypt_text_size))
+
47  return false;
+
48  DCHECK_LE(crypt_text_size, crypt_text->size());
+
49  crypt_text->resize(crypt_text_size);
+
50  return true;
+
51 }
+
52 
+
53 size_t AesCryptor::NumPaddingBytes(size_t size) const {
+
54  // No padding by default.
+
55  return 0;
+
56 }
+
57 
+
58 bool AesCryptor::GenerateRandomIv(FourCC protection_scheme,
+
59  std::vector<uint8_t>* iv) {
+
60  // ISO/IEC 23001-7:2016 10.1 and 10.3 For 'cenc' and 'cens'
+
61  // default_Per_Sample_IV_Size and Per_Sample_IV_Size SHOULD be 8-bytes.
+
62  // There is no official guideline on the iv size for 'cbc1' and 'cbcs',
+
63  // but 16-byte provides better security.
+
64  const size_t iv_size =
+
65  (protection_scheme == FOURCC_cenc || protection_scheme == FOURCC_cens)
+
66  ? 8
+
67  : 16;
+
68  iv->resize(iv_size);
+
69  if (RAND_bytes(iv->data(), iv_size) != 1) {
+
70  LOG(ERROR) << "RAND_bytes failed with error: "
+
71  << ERR_error_string(ERR_get_error(), NULL);
+
72  return false;
+
73  }
+
74  return true;
+
75 }
+
76 
+
77 } // namespace media
+
78 } // namespace edash_packager
+
79 
+
80 
diff --git a/docs/d6/d59/protection__system__specific__info_8h_source.html b/docs/d6/d59/protection__system__specific__info_8h_source.html index 7dcc40981e..11489c9a20 100644 --- a/docs/d6/d59/protection__system__specific__info_8h_source.html +++ b/docs/d6/d59/protection__system__specific__info_8h_source.html @@ -163,7 +163,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html b/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html index c5fe812896..4e3fec6938 100644 --- a/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html +++ b/docs/d6/d59/structedash__packager_1_1media_1_1mp4_1_1DataInformation.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html b/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html index b5875d2937..ebab170dc2 100644 --- a/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html +++ b/docs/d6/d5d/classedash__packager_1_1media_1_1HEVCDecoderConfiguration.html @@ -171,7 +171,7 @@ void  diff --git a/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html b/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html index 36ccb3c7af..39480d3815 100644 --- a/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html +++ b/docs/d6/d5e/structedash__packager_1_1media_1_1H264SEIRecoveryPoint-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d5e/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific-members.html b/docs/d6/d5e/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific-members.html index 383143caf1..11fb99829d 100644 --- a/docs/d6/d5e/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific-members.html +++ b/docs/d6/d5e/structedash__packager_1_1media_1_1mp4_1_1DTSSpecific-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d6c/h26x__bit__reader_8cc_source.html b/docs/d6/d6c/h26x__bit__reader_8cc_source.html index fe44fd544f..34e437d198 100644 --- a/docs/d6/d6c/h26x__bit__reader_8cc_source.html +++ b/docs/d6/d6c/h26x__bit__reader_8cc_source.html @@ -259,7 +259,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html b/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html index 63f2ced1b6..79135fc78e 100644 --- a/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html +++ b/docs/d6/d6c/structedash__packager_1_1media_1_1mp4_1_1DataEntryUrl.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d6/d6e/ts__section__pes_8cc_source.html b/docs/d6/d6e/ts__section__pes_8cc_source.html index b4b55baf31..5d0983d03e 100644 --- a/docs/d6/d6e/ts__section__pes_8cc_source.html +++ b/docs/d6/d6e/ts__section__pes_8cc_source.html @@ -405,7 +405,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d71/scoped__xml__ptr_8h_source.html b/docs/d6/d71/scoped__xml__ptr_8h_source.html index 3e2f023d8f..5754ed6fc7 100644 --- a/docs/d6/d71/scoped__xml__ptr_8h_source.html +++ b/docs/d6/d71/scoped__xml__ptr_8h_source.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d74/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox.html b/docs/d6/d74/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox.html index 759862c038..8c3a61ad2a 100644 --- a/docs/d6/d74/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox.html +++ b/docs/d6/d74/structedash__packager_1_1media_1_1mp4_1_1VTTCueBox.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html b/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html index 5c5d652d4b..e4b9f84e51 100644 --- a/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html +++ b/docs/d6/d77/dash__iop__mpd__notifier_8h_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html b/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html index a625804685..0bd7924cc2 100644 --- a/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html +++ b/docs/d6/d79/structedash__packager_1_1media_1_1mp4_1_1ChunkOffset.html @@ -180,7 +180,7 @@ uint32_t flags diff --git a/docs/d6/d7b/webm__tracks__parser_8h_source.html b/docs/d6/d7b/webm__tracks__parser_8h_source.html index e5e3e9135d..163c791549 100644 --- a/docs/d6/d7b/webm__tracks__parser_8h_source.html +++ b/docs/d6/d7b/webm__tracks__parser_8h_source.html @@ -202,7 +202,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html b/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html index ee9e56d8cf..a15acb6f51 100644 --- a/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html +++ b/docs/d6/d80/classedash__packager_1_1media_1_1Demuxer-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html b/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html index 4da73b2a5b..8002ead3d7 100644 --- a/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html +++ b/docs/d6/d81/classedash__packager_1_1media_1_1LibcryptoThreading-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d86/bandwidth__estimator_8cc_source.html b/docs/d6/d86/bandwidth__estimator_8cc_source.html index 2fe6218c54..83d402e188 100644 --- a/docs/d6/d86/bandwidth__estimator_8cc_source.html +++ b/docs/d6/d86/bandwidth__estimator_8cc_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d8a/vp9__parser_8cc_source.html b/docs/d6/d8a/vp9__parser_8cc_source.html index 1db6cc4d41..dc7a6607ce 100644 --- a/docs/d6/d8a/vp9__parser_8cc_source.html +++ b/docs/d6/d8a/vp9__parser_8cc_source.html @@ -659,7 +659,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html b/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html index 4c95477aa2..25ab2f1c17 100644 --- a/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html +++ b/docs/d6/d8b/structedash__packager_1_1media_1_1mp4_1_1MovieExtends.html @@ -176,7 +176,7 @@ Additional Inherited Members diff --git a/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html b/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html index 4b8838a431..fcb5361f22 100644 --- a/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html +++ b/docs/d6/d8f/structedash__packager_1_1media_1_1mp4_1_1FullBox.html @@ -245,7 +245,7 @@ Protected Member Functions diff --git a/docs/d6/d92/classedash__packager_1_1media_1_1webm_1_1Segmenter-members.html b/docs/d6/d92/classedash__packager_1_1media_1_1webm_1_1Segmenter-members.html index b83262229b..46928826d3 100644 --- a/docs/d6/d92/classedash__packager_1_1media_1_1webm_1_1Segmenter-members.html +++ b/docs/d6/d92/classedash__packager_1_1media_1_1webm_1_1Segmenter-members.html @@ -121,7 +121,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html b/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html index 9ab20d444d..f4e90cb1ca 100644 --- a/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html +++ b/docs/d6/d96/structedash__packager_1_1media_1_1mp4_1_1SampleDescription-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html b/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html index 5ea53f5be1..3ab1394e53 100644 --- a/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html +++ b/docs/d6/d97/classedash__packager_1_1media_1_1UdpFile-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d9b/h264__parser_8h_source.html b/docs/d6/d9b/h264__parser_8h_source.html index 33f42bde4b..4ed5e2fef7 100644 --- a/docs/d6/d9b/h264__parser_8h_source.html +++ b/docs/d6/d9b/h264__parser_8h_source.html @@ -439,7 +439,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html b/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html index 858db2e7d5..902d20f633 100644 --- a/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html +++ b/docs/d6/d9c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da0/ts__section__pat_8h_source.html b/docs/d6/da0/ts__section__pat_8h_source.html index 35ede295bf..4513f8e38b 100644 --- a/docs/d6/da0/ts__section__pat_8h_source.html +++ b/docs/d6/da0/ts__section__pat_8h_source.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html b/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html index d6fa119f04..d4675658ed 100644 --- a/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html +++ b/docs/d6/da3/classedash__packager_1_1media_1_1H264Parser.html @@ -135,7 +135,7 @@ Result ParseSEI (const diff --git a/docs/d6/da3/mpd__builder_8h_source.html b/docs/d6/da3/mpd__builder_8h_source.html index 634284d85a..5b4a1fae0d 100644 --- a/docs/d6/da3/mpd__builder_8h_source.html +++ b/docs/d6/da3/mpd__builder_8h_source.html @@ -534,7 +534,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html b/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html index bfee809b29..d3f6e92e9a 100644 --- a/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html +++ b/docs/d6/da8/classedash__packager_1_1media_1_1WebMWebVTTParser-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html b/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html index 99f4582004..da13f4d38a 100644 --- a/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html +++ b/docs/d6/dba/classedash__packager_1_1media_1_1ThreadedIoFile-members.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html b/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html index b7caebf886..af10e0727b 100644 --- a/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html +++ b/docs/d6/dbb/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dbd/structedash__packager_1_1media_1_1Cue-members.html b/docs/d6/dbd/structedash__packager_1_1media_1_1Cue-members.html index 38fe0ffad3..08cad0fd5e 100644 --- a/docs/d6/dbd/structedash__packager_1_1media_1_1Cue-members.html +++ b/docs/d6/dbd/structedash__packager_1_1media_1_1Cue-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html b/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html index d14c79862e..1693efb256 100644 --- a/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html +++ b/docs/d6/dc2/classedash__packager_1_1media_1_1TextTrackConfig-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html b/docs/d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html index eb4efa8c51..e6c9a9f530 100644 --- a/docs/d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html +++ b/docs/d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html @@ -152,7 +152,7 @@ int64_t  diff --git a/docs/d6/dc8/mkv__writer_8cc_source.html b/docs/d6/dc8/mkv__writer_8cc_source.html index 89fa467636..3417798f65 100644 --- a/docs/d6/dc8/mkv__writer_8cc_source.html +++ b/docs/d6/dc8/mkv__writer_8cc_source.html @@ -186,7 +186,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html b/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html index 41ac00aded..d6d9224f8d 100644 --- a/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html +++ b/docs/d6/dd6/classedash__packager_1_1media_1_1WebMListParser.html @@ -210,7 +210,7 @@ void  diff --git a/docs/d6/dd7/classedash__packager_1_1media_1_1TextStreamInfo.html b/docs/d6/dd7/classedash__packager_1_1media_1_1TextStreamInfo.html index f94ea8fde5..00a6ff1338 100644 --- a/docs/d6/dd7/classedash__packager_1_1media_1_1TextStreamInfo.html +++ b/docs/d6/dd7/classedash__packager_1_1media_1_1TextStreamInfo.html @@ -276,7 +276,7 @@ void set_language (con diff --git a/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html b/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html index 88c9912adb..2fa28c8885 100644 --- a/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html +++ b/docs/d6/de6/classedash__packager_1_1media_1_1KeyFetcher-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de8/local__file_8cc_source.html b/docs/d6/de8/local__file_8cc_source.html index 7da69463b8..3054f248ae 100644 --- a/docs/d6/de8/local__file_8cc_source.html +++ b/docs/d6/de8/local__file_8cc_source.html @@ -191,7 +191,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de8/network__util_8h_source.html b/docs/d6/de8/network__util_8h_source.html index b36341d229..fabbb69527 100644 --- a/docs/d6/de8/network__util_8h_source.html +++ b/docs/d6/de8/network__util_8h_source.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/de9/ts__segmenter_8cc_source.html b/docs/d6/de9/ts__segmenter_8cc_source.html index 0b7e0f6d96..4899d1fbe6 100644 --- a/docs/d6/de9/ts__segmenter_8cc_source.html +++ b/docs/d6/de9/ts__segmenter_8cc_source.html @@ -238,7 +238,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html b/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html index f7b0ecb6e4..416588dc6b 100644 --- a/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html +++ b/docs/d6/dec/structedash__packager_1_1media_1_1mp4_1_1Movie.html @@ -186,7 +186,7 @@ Additional Inherited Members diff --git a/docs/d6/ded/ts__packet_8h_source.html b/docs/d6/ded/ts__packet_8h_source.html index 6e8bf0f83f..ff4eb0a671 100644 --- a/docs/d6/ded/ts__packet_8h_source.html +++ b/docs/d6/ded/ts__packet_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/def/sync__sample__iterator_8cc_source.html b/docs/d6/def/sync__sample__iterator_8cc_source.html index 9c5a0cc6c0..03b9831b54 100644 --- a/docs/d6/def/sync__sample__iterator_8cc_source.html +++ b/docs/d6/def/sync__sample__iterator_8cc_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/df4/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html b/docs/d6/df4/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html index 48957e886e..f5eb614433 100644 --- a/docs/d6/df4/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html +++ b/docs/d6/df4/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter-members.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html b/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html index eb18c6a92c..3a65750a7b 100644 --- a/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html +++ b/docs/d6/df9/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d6/dff/classedash__packager_1_1media_1_1H265Parser.html b/docs/d6/dff/classedash__packager_1_1media_1_1H265Parser.html index f97caaf6e3..1ca2d49203 100644 --- a/docs/d6/dff/classedash__packager_1_1media_1_1H265Parser.html +++ b/docs/d6/dff/classedash__packager_1_1media_1_1H265Parser.html @@ -256,7 +256,7 @@ Public Member Functions diff --git a/docs/d7/d0b/muxer__listener__test__helper_8h_source.html b/docs/d7/d0b/muxer__listener__test__helper_8h_source.html index 701c0945b0..a44f3808d2 100644 --- a/docs/d7/d0b/muxer__listener__test__helper_8h_source.html +++ b/docs/d7/d0b/muxer__listener__test__helper_8h_source.html @@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html b/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html index fdca1a73d1..64784943fa 100644 --- a/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html +++ b/docs/d7/d0d/structedash__packager_1_1media_1_1mp4_1_1DataReference.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d7/d12/media__parser_8h_source.html b/docs/d7/d12/media__parser_8h_source.html index 407311afe1..310135dac8 100644 --- a/docs/d7/d12/media__parser_8h_source.html +++ b/docs/d7/d12/media__parser_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d15/classedash__packager_1_1Representation.html b/docs/d7/d15/classedash__packager_1_1Representation.html index 44d48d5466..9ad9ff701a 100644 --- a/docs/d7/d15/classedash__packager_1_1Representation.html +++ b/docs/d7/d15/classedash__packager_1_1Representation.html @@ -456,7 +456,7 @@ template<MpdBuilder::MpdType type> diff --git a/docs/d7/d15/mpd__notifier_8h_source.html b/docs/d7/d15/mpd__notifier_8h_source.html index f796d9562f..1beedd5811 100644 --- a/docs/d7/d15/mpd__notifier_8h_source.html +++ b/docs/d7/d15/mpd__notifier_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d1c/classedash__packager_1_1media_1_1AesCbcEncryptor-members.html b/docs/d7/d1c/classedash__packager_1_1media_1_1AesCbcEncryptor-members.html index b2d303fec9..38b986a5a0 100644 --- a/docs/d7/d1c/classedash__packager_1_1media_1_1AesCbcEncryptor-members.html +++ b/docs/d7/d1c/classedash__packager_1_1media_1_1AesCbcEncryptor-members.html @@ -100,8 +100,8 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Crypt(const std::vector< uint8_t > &text, std::vector< uint8_t > *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const std::string &text, std::string *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const uint8_t *text, size_t text_size, uint8_t *crypt_text)edash_packager::media::AesCryptorinline - InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesEncryptorvirtual - InitializeWithRandomIv(const std::vector< uint8_t > &key, uint8_t iv_size)edash_packager::media::AesEncryptor + GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)edash_packager::media::AesCryptorstatic + InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesEncryptorvirtual iv() const edash_packager::media::AesCryptorinline mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html b/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html index 120b7d3948..6b1839ff52 100644 --- a/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html +++ b/docs/d7/d1c/structedash__packager_1_1media_1_1mp4_1_1DecodingTime.html @@ -112,7 +112,7 @@ uint32_t sample_delta< diff --git a/docs/d7/d22/libcrypto__threading_8h_source.html b/docs/d7/d22/libcrypto__threading_8h_source.html index 458398b196..7353d2ae16 100644 --- a/docs/d7/d22/libcrypto__threading_8h_source.html +++ b/docs/d7/d22/libcrypto__threading_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html b/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html index 5e1e33f0cf..2aab0bec09 100644 --- a/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html +++ b/docs/d7/d2a/classedash__packager_1_1media_1_1DecryptorSource-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html b/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html index ea86d91082..bd869f57ec 100644 --- a/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html +++ b/docs/d7/d39/structedash__packager_1_1media_1_1mp4_1_1Movie-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html b/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html index c15bcffc35..053ab17cc5 100644 --- a/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html +++ b/docs/d7/d3a/classedash__packager_1_1media_1_1VideoStreamInfo.html @@ -429,7 +429,7 @@ void set_language (con diff --git a/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html b/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html index ad745a571f..02679855e5 100644 --- a/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html +++ b/docs/d7/d40/classedash__packager_1_1media_1_1WebMClusterParser-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d42/protection__system__specific__info_8cc_source.html b/docs/d7/d42/protection__system__specific__info_8cc_source.html index 58efe9c20f..12d7a2f68a 100644 --- a/docs/d7/d42/protection__system__specific__info_8cc_source.html +++ b/docs/d7/d42/protection__system__specific__info_8cc_source.html @@ -219,7 +219,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html b/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html index dd6232ba29..5ed5270439 100644 --- a/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html +++ b/docs/d7/d44/classedash__packager_1_1MockMpdNotifier.html @@ -160,7 +160,7 @@ Public Member Functions diff --git a/docs/d7/d49/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox.html b/docs/d7/d49/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox.html index 19c256fc8e..40cf1fde84 100644 --- a/docs/d7/d49/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox.html +++ b/docs/d7/d49/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html b/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html index 9dadaf85fb..273bfea997 100644 --- a/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html +++ b/docs/d7/d4f/structedash__packager_1_1media_1_1mp4_1_1Edit.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html b/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html index 2b2401279c..fc785991d5 100644 --- a/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html +++ b/docs/d7/d50/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter-members.html @@ -97,8 +97,8 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); CreateEncryptor()edash_packager::media::mp4::EncryptingFragmenterprotected data() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmenterinline earliest_presentation_time() const (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmenterinline - EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, EncryptionMode encryption_mode)edash_packager::media::mp4::EncryptingFragmenter - encryption_key() (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected + EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, FourCC protection_scheme)edash_packager::media::mp4::EncryptingFragmenter + encryption_key() const (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected encryptor() (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected FinalizeFragment() overrideedash_packager::media::mp4::EncryptingFragmentervirtual FinalizeFragmentForEncryption()edash_packager::media::mp4::EncryptingFragmenterprotectedvirtual @@ -111,14 +111,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); InitializeFragment(int64_t first_sample_dts) overrideedash_packager::media::mp4::EncryptingFragmentervirtual OptimizeSampleEntries(std::vector< T > *entries, T *default_value)edash_packager::media::mp4::Fragmenterprotected PrepareFragmentForEncryption(bool enable_encryption)edash_packager::media::mp4::EncryptingFragmenterprotectedvirtual - set_encryption_key(scoped_ptr< EncryptionKey > encryption_key) (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected - traf() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmenterinlineprotected - ~EncryptingFragmenter() override (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenter - ~Fragmenter() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmentervirtual + protection_scheme() const (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected + set_encryption_key(scoped_ptr< EncryptionKey > encryption_key) (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected + traf() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmenterinlineprotected + ~EncryptingFragmenter() override (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenter + ~Fragmenter() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmentervirtual diff --git a/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html b/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html index 27d7b708d2..09700725ff 100644 --- a/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html +++ b/docs/d7/d52/classedash__packager_1_1media_1_1WebMListParser-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html b/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html index 2514d494a5..01198917d4 100644 --- a/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html +++ b/docs/d7/d55/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry.html @@ -116,7 +116,7 @@ std::vector< uint8_t >  diff --git a/docs/d7/d56/structedash__packager_1_1media_1_1mp4_1_1EC3Specific-members.html b/docs/d7/d56/structedash__packager_1_1media_1_1mp4_1_1EC3Specific-members.html index cdc97c5d7e..00cd2e2ddc 100644 --- a/docs/d7/d56/structedash__packager_1_1media_1_1mp4_1_1EC3Specific-members.html +++ b/docs/d7/d56/structedash__packager_1_1media_1_1mp4_1_1EC3Specific-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d5a/classedash__packager_1_1media_1_1AesEncryptor-members.html b/docs/d7/d5a/classedash__packager_1_1media_1_1AesEncryptor-members.html index e12f28c816..8ecfea7fe7 100644 --- a/docs/d7/d5a/classedash__packager_1_1media_1_1AesEncryptor-members.html +++ b/docs/d7/d5a/classedash__packager_1_1media_1_1AesEncryptor-members.html @@ -99,8 +99,8 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Crypt(const std::vector< uint8_t > &text, std::vector< uint8_t > *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const std::string &text, std::string *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const uint8_t *text, size_t text_size, uint8_t *crypt_text)edash_packager::media::AesCryptorinline - InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesEncryptorvirtual - InitializeWithRandomIv(const std::vector< uint8_t > &key, uint8_t iv_size)edash_packager::media::AesEncryptor + GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)edash_packager::media::AesCryptorstatic + InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesEncryptorvirtual iv() const edash_packager::media::AesCryptorinline mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html b/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html index 03430112a8..585105fd99 100644 --- a/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html +++ b/docs/d7/d79/structedash__packager_1_1media_1_1mp4_1_1MediaData-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html b/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html index 0fdbb194c1..c7d57fa35a 100644 --- a/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html +++ b/docs/d7/d7b/structedash__packager_1_1media_1_1mp4_1_1DecodingTime-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d7c/vlog__flags_8h_source.html b/docs/d7/d7c/vlog__flags_8h_source.html index cd772804ec..7f7f09d6d5 100644 --- a/docs/d7/d7c/vlog__flags_8h_source.html +++ b/docs/d7/d7c/vlog__flags_8h_source.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html b/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html index a42ec8dfbd..6276e381b4 100644 --- a/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html +++ b/docs/d7/d82/classedash__packager_1_1MpdBuilder-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html b/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html index dc94ed59f2..cb4244d180 100644 --- a/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html +++ b/docs/d7/d85/classedash__packager_1_1media_1_1VPCodecConfiguration.html @@ -255,7 +255,7 @@ bool video_full_range_flag diff --git a/docs/d7/d87/video__stream__info_8h_source.html b/docs/d7/d87/video__stream__info_8h_source.html index 89ef4eaf4e..68b867633c 100644 --- a/docs/d7/d87/video__stream__info_8h_source.html +++ b/docs/d7/d87/video__stream__info_8h_source.html @@ -188,7 +188,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html b/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html index b4f98f7e81..b101de5463 100644 --- a/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html +++ b/docs/d7/d8a/structedash__packager_1_1media_1_1mp4_1_1Box.html @@ -384,7 +384,7 @@ class BoxBuffer diff --git a/docs/d7/d8f/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox-members.html b/docs/d7/d8f/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox-members.html index b037cb97ce..51ea3a0a89 100644 --- a/docs/d7/d8f/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox-members.html +++ b/docs/d7/d8f/structedash__packager_1_1media_1_1mp4_1_1CueSourceIDBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/d9d/progress__listener_8h_source.html b/docs/d7/d9d/progress__listener_8h_source.html index 466d87bc2c..61a26a4683 100644 --- a/docs/d7/d9d/progress__listener_8h_source.html +++ b/docs/d7/d9d/progress__listener_8h_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/da4/track__run__iterator_8h_source.html b/docs/d7/da4/track__run__iterator_8h_source.html index a05f7d5fae..c40f4c1e9b 100644 --- a/docs/d7/da4/track__run__iterator_8h_source.html +++ b/docs/d7/da4/track__run__iterator_8h_source.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html b/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html index 304ff8ff60..62efdda036 100644 --- a/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html +++ b/docs/d7/da5/structedash__packager_1_1media_1_1mp4_1_1SampleSize.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d7/db0/mpd__writer_8h_source.html b/docs/d7/db0/mpd__writer_8h_source.html index fb3f62272f..8e3565b7f1 100644 --- a/docs/d7/db0/mpd__writer_8h_source.html +++ b/docs/d7/db0/mpd__writer_8h_source.html @@ -184,7 +184,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/db3/structedash__packager_1_1Element-members.html b/docs/d7/db3/structedash__packager_1_1Element-members.html index f8c63eb16f..35609c80bc 100644 --- a/docs/d7/db3/structedash__packager_1_1Element-members.html +++ b/docs/d7/db3/structedash__packager_1_1Element-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dc6/byte__queue_8h_source.html b/docs/d7/dc6/byte__queue_8h_source.html index 81be72fe5d..ab1466720a 100644 --- a/docs/d7/dc6/byte__queue_8h_source.html +++ b/docs/d7/dc6/byte__queue_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dcc/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html b/docs/d7/dcc/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html index 69770286b0..d243f56467 100644 --- a/docs/d7/dcc/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html +++ b/docs/d7/dcc/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/d7/dd0/mpd__notifier__util_8h_source.html b/docs/d7/dd0/mpd__notifier__util_8h_source.html index 0639e35079..b81c089ec3 100644 --- a/docs/d7/dd0/mpd__notifier__util_8h_source.html +++ b/docs/d7/dd0/mpd__notifier__util_8h_source.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd2/classedash__packager_1_1media_1_1VPxParser-members.html b/docs/d7/dd2/classedash__packager_1_1media_1_1VPxParser-members.html index 8db764477a..aa5f8cf56c 100644 --- a/docs/d7/dd2/classedash__packager_1_1media_1_1VPxParser-members.html +++ b/docs/d7/dd2/classedash__packager_1_1media_1_1VPxParser-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd4/request__signer_8h_source.html b/docs/d7/dd4/request__signer_8h_source.html index bfa9d39f26..c5bb1707d0 100644 --- a/docs/d7/dd4/request__signer_8h_source.html +++ b/docs/d7/dd4/request__signer_8h_source.html @@ -178,7 +178,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dd6/key__source_8cc_source.html b/docs/d7/dd6/key__source_8cc_source.html index 61aaf61b92..dc2c0532c5 100644 --- a/docs/d7/dd6/key__source_8cc_source.html +++ b/docs/d7/dd6/key__source_8cc_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html b/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html index d5f5e0815c..ec5e9da6e9 100644 --- a/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html +++ b/docs/d7/de3/structedash__packager_1_1xml_1_1XmlDeleter.html @@ -127,7 +127,7 @@ void operator() (xmlCh diff --git a/docs/d7/de6/structedash__packager_1_1media_1_1H265SliceHeader.html b/docs/d7/de6/structedash__packager_1_1media_1_1H265SliceHeader.html index e6891e61f1..a0f5ac6aea 100644 --- a/docs/d7/de6/structedash__packager_1_1media_1_1H265SliceHeader.html +++ b/docs/d7/de6/structedash__packager_1_1media_1_1H265SliceHeader.html @@ -236,7 +236,7 @@ std::vector< int > e diff --git a/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html b/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html index c776875069..00605717ff 100644 --- a/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html +++ b/docs/d7/dec/h264__byte__to__unit__stream__converter_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html b/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html index 7156bb6b67..30f11eccc6 100644 --- a/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html +++ b/docs/d7/dec/structedash__packager_1_1media_1_1mp4_1_1MediaHeader.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/d7/dee/mpd__generator_8cc_source.html b/docs/d7/dee/mpd__generator_8cc_source.html index e05fbabac1..6be2b8778b 100644 --- a/docs/d7/dee/mpd__generator_8cc_source.html +++ b/docs/d7/dee/mpd__generator_8cc_source.html @@ -199,7 +199,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/def/mp4__media__parser_8cc_source.html b/docs/d7/def/mp4__media__parser_8cc_source.html index 5b2997b19e..fb7a0e5036 100644 --- a/docs/d7/def/mp4__media__parser_8cc_source.html +++ b/docs/d7/def/mp4__media__parser_8cc_source.html @@ -829,7 +829,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html b/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html index 49d59b8923..2bba67716b 100644 --- a/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html +++ b/docs/d7/df1/structedash__packager_1_1media_1_1mp4_1_1SegmentIndex-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html b/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html index f9a11b8e47..60b8570628 100644 --- a/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html +++ b/docs/d7/df3/classedash__packager_1_1media_1_1File-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/df9/byte__queue_8cc_source.html b/docs/d7/df9/byte__queue_8cc_source.html index 9cc2881c7d..55ef4e970a 100644 --- a/docs/d7/df9/byte__queue_8cc_source.html +++ b/docs/d7/df9/byte__queue_8cc_source.html @@ -182,7 +182,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d7/dfa/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html b/docs/d7/dfa/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html index 2d4aa8dd5b..b365bc453f 100644 --- a/docs/d7/dfa/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html +++ b/docs/d7/dfa/classedash__packager_1_1media_1_1webm_1_1TwoPassSingleSegmentSegmenter.html @@ -214,7 +214,7 @@ double cluster_length_sec< diff --git a/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html b/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html index 00c1bf1bf8..6f6323de7b 100644 --- a/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html +++ b/docs/d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html @@ -285,7 +285,7 @@ track_id, const scoped_refptr
diff --git a/docs/d8/d0d/media__sample_8cc_source.html b/docs/d8/d0d/media__sample_8cc_source.html index 2e7b89b601..e8ad4650a5 100644 --- a/docs/d8/d0d/media__sample_8cc_source.html +++ b/docs/d8/d0d/media__sample_8cc_source.html @@ -195,7 +195,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d19/bandwidth__estimator_8h_source.html b/docs/d8/d19/bandwidth__estimator_8h_source.html index 1467158bfa..96dcdac908 100644 --- a/docs/d8/d19/bandwidth__estimator_8h_source.html +++ b/docs/d8/d19/bandwidth__estimator_8h_source.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html b/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html index 50dd110c27..69f8bb5a2d 100644 --- a/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html +++ b/docs/d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html @@ -112,8 +112,8 @@ Inheritance diagram for edash_packager::media::mp4::EncryptingFragmenter: - - + + @@ -159,12 +159,15 @@ virtual void  - - - - + + + + + + @@ -181,7 +184,7 @@ void 

Public Member Functions

 EncryptingFragmenter (scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, EncryptionMode encryption_mode)
 
 EncryptingFragmenter (scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, FourCC protection_scheme)
 
Fragmenter implementation overrides.
Status AddSample (scoped_refptr< MediaSample > sample) override
 
 
Status CreateEncryptor ()
 
-EncryptionKeyencryption_key ()
 
-AesEncryptorencryptor ()
 
+const EncryptionKeyencryption_key () const
 
+AesCryptorencryptor ()
 
+FourCC protection_scheme () const
 
void set_encryption_key (scoped_ptr< EncryptionKey > encryption_key)
 
set_encryption_keyDefinition at line 27 of file encrypting_fragmenter.h.

Constructor & Destructor Documentation

- +
@@ -212,8 +215,8 @@ void  - - + + @@ -227,11 +230,12 @@ void  +
set_encryption_key EncryptionMode encryption_mode FourCC protection_scheme 
set_encryption_keytrafpoints to a TrackFragment box.
encryption_keycontains the encryption parameters.
clear_timespecifies clear lead duration in units of the current track's timescale.
protection_schemespecifies the protection scheme: 'cenc', 'cens', 'cbc1', 'cbcs'.
-

Definition at line 64 of file encrypting_fragmenter.cc.

+

Definition at line 61 of file encrypting_fragmenter.cc.

@@ -268,7 +272,7 @@ void 
set_encryption_keyReimplemented from edash_packager::media::mp4::Fragmenter.

-

Definition at line 94 of file encrypting_fragmenter.cc.

+

Definition at line 91 of file encrypting_fragmenter.cc.

@@ -295,7 +299,7 @@ void 
set_encryption_keyCreate the encryptor for the internal encryption key. The existing encryptor will be reset if it is not NULL.

Returns
OK on success, an error status otherwise.
-

Definition at line 176 of file encrypting_fragmenter.cc.

+

Definition at line 173 of file encrypting_fragmenter.cc.

@@ -331,7 +335,7 @@ void 
set_encryption_keyReimplemented from edash_packager::media::mp4::Fragmenter.

-

Definition at line 109 of file encrypting_fragmenter.cc.

+

Definition at line 106 of file encrypting_fragmenter.cc.

@@ -361,7 +365,7 @@ void 
set_encryption_keyReimplemented in edash_packager::media::mp4::KeyRotationFragmenter.

-

Definition at line 150 of file encrypting_fragmenter.cc.

+

Definition at line 147 of file encrypting_fragmenter.cc.

@@ -372,7 +376,7 @@ void 
set_encryption_key diff --git a/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html b/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html index 09e12b7264..0b685cf232 100644 --- a/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html +++ b/docs/d8/d21/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo.html @@ -115,7 +115,7 @@ uint32_t sample_descriptio diff --git a/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html b/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html index f659c61887..6b6cb703c4 100644 --- a/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html +++ b/docs/d8/d22/classedash__packager_1_1media_1_1HttpKeyFetcher-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
diff --git a/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html b/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html index 3cbe574b85..e0cbb3a7cc 100644 --- a/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html +++ b/docs/d8/d25/classedash__packager_1_1media_1_1ProducerConsumerQueue-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html b/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html index c85911b744..20840a1f45 100644 --- a/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html +++ b/docs/d8/d26/structedash__packager_1_1media_1_1mp4_1_1SegmentType-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html b/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html index 4b4d706e57..9572268235 100644 --- a/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html +++ b/docs/d8/d2e/classedash__packager_1_1media_1_1ByteQueue.html @@ -177,7 +177,7 @@ void  diff --git a/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html b/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html index 553520b9e8..70a72b5a94 100644 --- a/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html +++ b/docs/d8/d32/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d33/webm__content__encodings__client_8h_source.html b/docs/d8/d33/webm__content__encodings__client_8h_source.html index ccf278ecb5..b1c1d77b67 100644 --- a/docs/d8/d33/webm__content__encodings__client_8h_source.html +++ b/docs/d8/d33/webm__content__encodings__client_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html b/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html index f1e532c401..d34391cd7f 100644 --- a/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html +++ b/docs/d8/d34/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d37/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter.html b/docs/d8/d37/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter.html index 3f217cec30..0f63ffbe16 100644 --- a/docs/d8/d37/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter.html +++ b/docs/d8/d37/classedash__packager_1_1media_1_1mp2t_1_1ContinuityCounter.html @@ -129,7 +129,7 @@ Public Member Functions diff --git a/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html b/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html index fc3f9c4f97..8325a8df6c 100644 --- a/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html +++ b/docs/d8/d4a/structedash__packager_1_1media_1_1mp4_1_1EditList.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d8/d4d/aes__decryptor_8h_source.html b/docs/d8/d4d/aes__decryptor_8h_source.html index 59352edb4d..6ee018c720 100644 --- a/docs/d8/d4d/aes__decryptor_8h_source.html +++ b/docs/d8/d4d/aes__decryptor_8h_source.html @@ -137,17 +137,17 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
58 } // namespace edash_packager
59 
60 #endif // PACKAGER_MEDIA_BASE_AES_DECRYPTOR_H_
- +
Class which implements AES-CBC (Cipher block chaining) decryption.
Definition: aes_decryptor.h:25
bool SetIv(const std::vector< uint8_t > &iv) override
bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
AesCbcDecryptor(CbcPaddingScheme padding_scheme, bool chain_across_calls)
-
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:59
+
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:60
diff --git a/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html b/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html index e629f46fd4..9954405bbd 100644 --- a/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html +++ b/docs/d8/d6a/classedash__packager_1_1media_1_1AudioStreamInfo-members.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html b/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html index 6f34cd98ec..9fd46bfcb3 100644 --- a/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html +++ b/docs/d8/d6c/classedash__packager_1_1media_1_1MediaSample.html @@ -411,7 +411,7 @@ class base::RefCountedThre diff --git a/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html b/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html index 187fffef11..86c7d6ccf6 100644 --- a/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html +++ b/docs/d8/d6f/classedash__packager_1_1MockAdaptationSet-members.html @@ -126,7 +126,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html b/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html index bd919a4844..681ab85045 100644 --- a/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html +++ b/docs/d8/d6f/structedash__packager_1_1media_1_1mp4_1_1TrackFragment-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html b/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html index c550f634fd..a297ea8e9e 100644 --- a/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html +++ b/docs/d8/d71/classedash__packager_1_1media_1_1mp4_1_1ChunkInfoIterator.html @@ -320,7 +320,7 @@ Public Member Functions diff --git a/docs/d8/d74/classedash__packager_1_1Representation-members.html b/docs/d8/d74/classedash__packager_1_1Representation-members.html index 5af495396e..b4bc0f03c0 100644 --- a/docs/d8/d74/classedash__packager_1_1Representation-members.html +++ b/docs/d8/d74/classedash__packager_1_1Representation-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html b/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html index ed967f6097..f319daaf6a 100644 --- a/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html +++ b/docs/d8/d75/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html b/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html index 622a6b2280..d20c26f809 100644 --- a/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html +++ b/docs/d8/d78/classedash__packager_1_1MockAdaptationSet.html @@ -183,7 +183,7 @@ Additional Inherited Members diff --git a/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html b/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html index 277efd1295..14cba03f06 100644 --- a/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html +++ b/docs/d8/d78/classedash__packager_1_1media_1_1WebMContentEncodingsClient.html @@ -152,7 +152,7 @@ Additional Inherited Members diff --git a/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html b/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html index 1e99ab8980..3a87432bc5 100644 --- a/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html +++ b/docs/d8/d82/classedash__packager_1_1media_1_1MpdNotifyMuxerListener-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html b/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html index 8abfa20170..f80f5db240 100644 --- a/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html +++ b/docs/d8/d8e/classedash__packager_1_1media_1_1mp2t_1_1TsSection.html @@ -141,7 +141,7 @@ virtual void Reset ()= diff --git a/docs/d8/d94/adts__constants_8cc_source.html b/docs/d8/d94/adts__constants_8cc_source.html index 7569b0342b..93755bc230 100644 --- a/docs/d8/d94/adts__constants_8cc_source.html +++ b/docs/d8/d94/adts__constants_8cc_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d94/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html b/docs/d8/d94/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html index 7045c7a295..51face96d8 100644 --- a/docs/d8/d94/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html +++ b/docs/d8/d94/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d94/pes__packet_8h_source.html b/docs/d8/d94/pes__packet_8h_source.html index 1c46d2b4fe..2817fe313f 100644 --- a/docs/d8/d94/pes__packet_8h_source.html +++ b/docs/d8/d94/pes__packet_8h_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html b/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html index 94848e4889..b8cc80f0f1 100644 --- a/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html +++ b/docs/d8/d97/structedash__packager_1_1ContentProtectionElement-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9a/fragmenter_8cc_source.html b/docs/d8/d9a/fragmenter_8cc_source.html index 50e42c5c03..4d1b86c500 100644 --- a/docs/d8/d9a/fragmenter_8cc_source.html +++ b/docs/d8/d9a/fragmenter_8cc_source.html @@ -251,7 +251,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9c/webm__tracks__parser_8cc_source.html b/docs/d8/d9c/webm__tracks__parser_8cc_source.html index fdf803345d..27c2346095 100644 --- a/docs/d8/d9c/webm__tracks__parser_8cc_source.html +++ b/docs/d8/d9c/webm__tracks__parser_8cc_source.html @@ -440,7 +440,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/d9f/udp__file_8h_source.html b/docs/d8/d9f/udp__file_8h_source.html index 5ebcaf68de..cf53635446 100644 --- a/docs/d8/d9f/udp__file_8h_source.html +++ b/docs/d8/d9f/udp__file_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html b/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html index 73142c8301..82cfceda05 100644 --- a/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html +++ b/docs/d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html b/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html index fa3084d3ce..83c5aeca9a 100644 --- a/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html +++ b/docs/d8/da1/classedash__packager_1_1media_1_1WidevineKeySource-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html b/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html index 3df271bcd0..1996f1c635 100644 --- a/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html +++ b/docs/d8/da6/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/daa/stream__info_8h_source.html b/docs/d8/daa/stream__info_8h_source.html index a95693767e..d62ed295cc 100644 --- a/docs/d8/daa/stream__info_8h_source.html +++ b/docs/d8/daa/stream__info_8h_source.html @@ -185,7 +185,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html b/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html index 71de026a4d..cbe38661df 100644 --- a/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html +++ b/docs/d8/dbb/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html b/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html index 82aafddb43..e8d111b89b 100644 --- a/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html +++ b/docs/d8/dc7/classedash__packager_1_1media_1_1UdpFile.html @@ -463,7 +463,7 @@ Additional Inherited Members diff --git a/docs/d8/dca/ts__writer_8h_source.html b/docs/d8/dca/ts__writer_8h_source.html index 64deeef4bf..2fc5a4bd17 100644 --- a/docs/d8/dca/ts__writer_8h_source.html +++ b/docs/d8/dca/ts__writer_8h_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html b/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html index 2481fe96a2..468684fe6d 100644 --- a/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html +++ b/docs/d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html b/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html index bd6b9213c6..058d7f6897 100644 --- a/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html +++ b/docs/d8/dcf/classedash__packager_1_1media_1_1RsaRequestSigner-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/de5/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry.html b/docs/d8/de5/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry.html index c915af6914..f320469345 100644 --- a/docs/d8/de5/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry.html +++ b/docs/d8/de5/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry.html @@ -250,7 +250,7 @@ std::vector< diff --git a/docs/d8/de6/webm__crypto__helpers_8h_source.html b/docs/d8/de6/webm__crypto__helpers_8h_source.html index da02330692..d2b9d7c81f 100644 --- a/docs/d8/de6/webm__crypto__helpers_8h_source.html +++ b/docs/d8/de6/webm__crypto__helpers_8h_source.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html b/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html index 9e0e9c95d4..ba21384c18 100644 --- a/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html +++ b/docs/d8/df0/webm_2single__segment__segmenter_8cc_source.html @@ -176,11 +176,11 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
87 } // namespace webm
88 } // namespace media
89 } // namespace edash_packager
- + diff --git a/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html b/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html index 379fddf9b9..3fe4bdf431 100644 --- a/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html +++ b/docs/d8/df1/classedash__packager_1_1MpdWriter-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/df4/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter-members.html b/docs/d8/df4/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter-members.html index a02659590e..e48ebb8a3d 100644 --- a/docs/d8/df4/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter-members.html +++ b/docs/d8/df4/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dfa/nal__unit__to__byte__stream__converter_8h_source.html b/docs/d8/dfa/nal__unit__to__byte__stream__converter_8h_source.html index 8fbcc72008..6fcda55b3a 100644 --- a/docs/d8/dfa/nal__unit__to__byte__stream__converter_8h_source.html +++ b/docs/d8/dfa/nal__unit__to__byte__stream__converter_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html b/docs/d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html index d6e099ce83..728f34a826 100644 --- a/docs/d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html +++ b/docs/d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html @@ -333,7 +333,7 @@ void  diff --git a/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html b/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html index 9225ae03b3..66f1b00c3a 100644 --- a/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html +++ b/docs/d8/dfd/structedash__packager_1_1media_1_1VPxFrameInfo.html @@ -121,7 +121,7 @@ uint32_t height diff --git a/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html b/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html index 065d05be21..eba6bc69ff 100644 --- a/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html +++ b/docs/d9/d01/mp4_2single__segment__segmenter_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d08/mock__mpd__builder_8h_source.html b/docs/d9/d08/mock__mpd__builder_8h_source.html index 0867d7065c..38753e6e6b 100644 --- a/docs/d9/d08/mock__mpd__builder_8h_source.html +++ b/docs/d9/d08/mock__mpd__builder_8h_source.html @@ -180,7 +180,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html index e7956bee48..086671f0cd 100644 --- a/docs/d9/d15/key__rotation__fragmenter_8cc_source.html +++ b/docs/d9/d15/key__rotation__fragmenter_8cc_source.html @@ -106,20 +106,20 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
17 const bool kInitialEncryptionInfo = true;
18 } // namespace
19 
- +
21  scoped_refptr<StreamInfo> info,
22  TrackFragment* traf,
23  KeySource* encryption_key_source,
24  KeySource::TrackType track_type,
25  int64_t crypto_period_duration,
26  int64_t clear_time,
-
27  MuxerListener* muxer_listener,
-
28  EncryptionMode encryption_mode)
+
27  FourCC protection_scheme,
+
28  MuxerListener* muxer_listener)
29  : EncryptingFragmenter(info,
30  traf,
31  scoped_ptr<EncryptionKey>(new EncryptionKey()),
32  clear_time,
-
33  encryption_mode),
+
33  protection_scheme),
34  moof_(moof),
35  encryption_key_source_(encryption_key_source),
36  track_type_(track_type),
@@ -144,93 +144,100 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
55  current_crypto_period_index, track_type_, encryption_key.get());
56  if (!status.ok())
57  return status;
-
58  set_encryption_key(encryption_key.Pass());
-
59  prev_crypto_period_index_ = current_crypto_period_index;
-
60  need_to_refresh_encryptor = true;
-
61  }
-
62 
-
63  DCHECK(encryption_key());
-
64  const std::vector<ProtectionSystemSpecificInfo>& system_info =
-
65  encryption_key()->key_system_info;
-
66  moof_->pssh.resize(system_info.size());
-
67  for (size_t i = 0; i < system_info.size(); i++) {
-
68  moof_->pssh[i].raw_box = system_info[i].CreateBox();
-
69  }
-
70 
-
71  if (muxer_listener_) {
-
72  muxer_listener_->OnEncryptionInfoReady(!kInitialEncryptionInfo,
-
73  encryption_key()->key_id,
-
74  encryption_key()->key_system_info);
+
58  if (encryption_key->iv.empty()) {
+
59  if (!AesCryptor::GenerateRandomIv(protection_scheme(),
+
60  &encryption_key->iv)) {
+
61  return Status(error::INTERNAL_ERROR, "Failed to generate random iv.");
+
62  }
+
63  }
+
64  set_encryption_key(encryption_key.Pass());
+
65  prev_crypto_period_index_ = current_crypto_period_index;
+
66  need_to_refresh_encryptor = true;
+
67  }
+
68 
+
69  DCHECK(encryption_key());
+
70  const std::vector<ProtectionSystemSpecificInfo>& system_info =
+
71  encryption_key()->key_system_info;
+
72  moof_->pssh.resize(system_info.size());
+
73  for (size_t i = 0; i < system_info.size(); i++) {
+
74  moof_->pssh[i].raw_box = system_info[i].CreateBox();
75  }
76 
-
77  // Skip the following steps if the current fragment is not going to be
-
78  // encrypted. 'pssh' box needs to be included in the fragment, which is
-
79  // performed above, regardless of whether the fragment is encrypted. This is
-
80  // necessary for two reasons: 1) Requesting keys before reaching encrypted
-
81  // content avoids playback delay due to license requests; 2) In Chrome, CDM
-
82  // must be initialized before starting the playback and CDM can only be
-
83  // initialized with a valid 'pssh'.
-
84  if (!enable_encryption) {
-
85  DCHECK(!encryptor());
-
86  return Status::OK;
-
87  }
-
88 
-
89  if (need_to_refresh_encryptor) {
-
90  Status status = CreateEncryptor();
-
91  if (!status.ok())
-
92  return status;
+
77  if (muxer_listener_) {
+
78  muxer_listener_->OnEncryptionInfoReady(!kInitialEncryptionInfo,
+
79  encryption_key()->key_id,
+
80  encryption_key()->key_system_info);
+
81  }
+
82 
+
83  // Skip the following steps if the current fragment is not going to be
+
84  // encrypted. 'pssh' box needs to be included in the fragment, which is
+
85  // performed above, regardless of whether the fragment is encrypted. This is
+
86  // necessary for two reasons: 1) Requesting keys before reaching encrypted
+
87  // content avoids playback delay due to license requests; 2) In Chrome, CDM
+
88  // must be initialized before starting the playback and CDM can only be
+
89  // initialized with a valid 'pssh'.
+
90  if (!enable_encryption) {
+
91  DCHECK(!encryptor());
+
92  return Status::OK;
93  }
-
94  DCHECK(encryptor());
-
95 
-
96  // Key rotation happens in fragment boundary only in this implementation,
-
97  // i.e. there is at most one key for the fragment. So there should be only
-
98  // one entry in SampleGroupDescription box and one entry in SampleToGroup box.
-
99  // Fill in SampleGroupDescription box information.
-
100  traf()->sample_group_description.grouping_type = FOURCC_seig;
-
101  traf()->sample_group_description.entries.resize(1);
-
102  traf()->sample_group_description.entries[0].is_encrypted = true;
-
103  traf()->sample_group_description.entries[0].iv_size =
-
104  encryptor()->iv().size();
-
105  traf()->sample_group_description.entries[0].key_id = encryption_key()->key_id;
-
106 
-
107  // Fill in SampleToGroup box information.
-
108  traf()->sample_to_group.grouping_type = FOURCC_seig;
-
109  traf()->sample_to_group.entries.resize(1);
-
110  // sample_count is adjusted in |FinalizeFragment| later.
-
111  traf()->sample_to_group.entries[0].group_description_index =
-
112  SampleToGroupEntry::kTrackFragmentGroupDescriptionIndexBase + 1;
-
113 
-
114  return Status::OK;
-
115 }
-
116 
- - -
119  DCHECK_EQ(1u, traf()->sample_to_group.entries.size());
-
120  traf()->sample_to_group.entries[0].sample_count =
-
121  traf()->auxiliary_size.sample_count;
-
122 }
-
123 
-
124 } // namespace mp4
-
125 } // namespace media
-
126 } // namespace edash_packager
-
KeyRotationFragmenter(MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, MuxerListener *muxer_listener, EncryptionMode encryption_mode)
-
void FinalizeFragmentForEncryption() override
Finalize current fragment for encryption.
+
94 
+
95  if (need_to_refresh_encryptor) {
+
96  Status status = CreateEncryptor();
+
97  if (!status.ok())
+
98  return status;
+
99  }
+
100  DCHECK(encryptor());
+
101 
+
102  // Key rotation happens in fragment boundary only in this implementation,
+
103  // i.e. there is at most one key for the fragment. So there should be only
+
104  // one entry in SampleGroupDescription box and one entry in SampleToGroup box.
+
105  // Fill in SampleGroupDescription box information.
+
106  traf()->sample_group_description.grouping_type = FOURCC_seig;
+
107  traf()->sample_group_description.entries.resize(1);
+
108  traf()->sample_group_description.entries[0].is_encrypted = true;
+
109  traf()->sample_group_description.entries[0].iv_size =
+
110  encryptor()->iv().size();
+
111  traf()->sample_group_description.entries[0].key_id = encryption_key()->key_id;
+
112 
+
113  // Fill in SampleToGroup box information.
+
114  traf()->sample_to_group.grouping_type = FOURCC_seig;
+
115  traf()->sample_to_group.entries.resize(1);
+
116  // sample_count is adjusted in |FinalizeFragment| later.
+
117  traf()->sample_to_group.entries[0].group_description_index =
+
118  SampleToGroupEntry::kTrackFragmentGroupDescriptionIndexBase + 1;
+
119 
+
120  return Status::OK;
+
121 }
+
122 
+ + +
125  DCHECK_EQ(1u, traf()->sample_to_group.entries.size());
+
126  traf()->sample_to_group.entries[0].sample_count =
+
127  traf()->auxiliary_size.sample_count;
+
128 }
+
129 
+
130 } // namespace mp4
+
131 } // namespace media
+
132 } // namespace edash_packager
+
void FinalizeFragmentForEncryption() override
Finalize current fragment for encryption.
- +
EncryptingFragmenter generates MP4 fragments with sample encrypted.
+
static bool GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)
Definition: aes_cryptor.cc:58
Status PrepareFragmentForEncryption(bool enable_encryption) override
+
KeyRotationFragmenter(MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, FourCC protection_scheme, MuxerListener *muxer_listener)
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
-
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:59
-
virtual void FinalizeFragmentForEncryption()
Finalize current fragment for encryption.
+
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:60
+
virtual void FinalizeFragmentForEncryption()
Finalize current fragment for encryption.
virtual Status GetCryptoPeriodKey(uint32_t crypto_period_index, TrackType track_type, EncryptionKey *key)=0
diff --git a/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html b/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html index d4aac3c06c..ee03412173 100644 --- a/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html +++ b/docs/d9/d17/classedash__packager_1_1DashIopMpdNotifier-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html b/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html index 5c745b17fd..32514e7ca0 100644 --- a/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html +++ b/docs/d9/d18/structedash__packager_1_1media_1_1mp4_1_1SyncSample.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/d9/d21/structedash__packager_1_1media_1_1mp4_1_1ID3v2.html b/docs/d9/d21/structedash__packager_1_1media_1_1mp4_1_1ID3v2.html index c92092c795..6c43732b6f 100644 --- a/docs/d9/d21/structedash__packager_1_1media_1_1mp4_1_1ID3v2.html +++ b/docs/d9/d21/structedash__packager_1_1media_1_1mp4_1_1ID3v2.html @@ -189,7 +189,7 @@ Additional Inherited Members diff --git a/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html b/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html index 18735163b2..10862cb1fc 100644 --- a/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html +++ b/docs/d9/d2c/classedash__packager_1_1media_1_1ProgressListener.html @@ -146,7 +146,7 @@ Public Member Functions diff --git a/docs/d9/d3b/classedash__packager_1_1media_1_1MemoryFile-members.html b/docs/d9/d3b/classedash__packager_1_1media_1_1MemoryFile-members.html index f31cd98bca..99b4739bb0 100644 --- a/docs/d9/d3b/classedash__packager_1_1media_1_1MemoryFile-members.html +++ b/docs/d9/d3b/classedash__packager_1_1media_1_1MemoryFile-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d3b/webm__content__encodings_8h_source.html b/docs/d9/d3b/webm__content__encodings_8h_source.html index dca76b6f11..aa6767750b 100644 --- a/docs/d9/d3b/webm__content__encodings_8h_source.html +++ b/docs/d9/d3b/webm__content__encodings_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html b/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html index 6019eda22b..5861529a05 100644 --- a/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html +++ b/docs/d9/d46/classedash__packager_1_1media_1_1BufferReader.html @@ -276,7 +276,7 @@ bool ReadNBytesInto8s diff --git a/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html b/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html index 3d771c726e..0fa30cf15d 100644 --- a/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html +++ b/docs/d9/d47/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader.html @@ -222,7 +222,7 @@ Additional Inherited Members diff --git a/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html b/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html index c05ebf2597..4f3880d812 100644 --- a/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html +++ b/docs/d9/d5b/structedash__packager_1_1SegmentInfo-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d60/classedash__packager_1_1media_1_1AesCryptor.html b/docs/d9/d60/classedash__packager_1_1media_1_1AesCryptor.html index 4ea48292e2..17f43919d6 100644 --- a/docs/d9/d60/classedash__packager_1_1media_1_1AesCryptor.html +++ b/docs/d9/d60/classedash__packager_1_1media_1_1AesCryptor.html @@ -88,6 +88,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
@@ -130,6 +131,11 @@ bool Crypt (const std: bool Crypt (const uint8_t *text, size_t text_size, uint8_t *crypt_text)   + + + +

+Static Public Member Functions

static bool GenerateRandomIv (FourCC protection_scheme, std::vector< uint8_t > *iv)
 

Protected Member Functions

@@ -144,7 +150,7 @@ AES_KEY * mutable_aes_key<

Detailed Description

-

Definition at line 24 of file aes_cryptor.h.

+

Definition at line 25 of file aes_cryptor.h.

Member Function Documentation

@@ -190,7 +196,51 @@ AES_KEY * mutable_aes_key< -

Definition at line 43 of file aes_cryptor.h.

+

Definition at line 44 of file aes_cryptor.h.

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
bool edash_packager::media::AesCryptor::GenerateRandomIv (FourCC protection_scheme,
std::vector< uint8_t > * iv 
)
+
+static
+
+
Parameters
+ + + +
protection_schemespecifies the protection scheme: 'cenc', 'cens', 'cbc1', 'cbcs', which is useful to determine the random iv size.
ivpoints to generated initialization vector.
+
+
+
Returns
true on success, false otherwise.
+ +

Definition at line 58 of file aes_cryptor.cc.

@@ -254,7 +304,7 @@ AES_KEY * mutable_aes_key<
Returns
The current iv.
-

Definition at line 59 of file aes_cryptor.h.

+

Definition at line 60 of file aes_cryptor.h.

@@ -319,7 +369,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html b/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html index c89033a165..b739f8db3c 100644 --- a/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html +++ b/docs/d9/d65/classedash__packager_1_1media_1_1TextTrack-members.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html b/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html index 083fe3ba9e..8209755088 100644 --- a/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html +++ b/docs/d9/d76/structedash__packager_1_1media_1_1H264ModificationOfPicNum.html @@ -119,7 +119,7 @@ union { diff --git a/docs/d9/d76/ts__muxer_8cc_source.html b/docs/d9/d76/ts__muxer_8cc_source.html index f9ed954fa5..26d8531c69 100644 --- a/docs/d9/d76/ts__muxer_8cc_source.html +++ b/docs/d9/d76/ts__muxer_8cc_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html b/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html index d4df399888..bda24dd1c8 100644 --- a/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html +++ b/docs/d9/d7b/structedash__packager_1_1media_1_1wvm_1_1PrevSampleData.html @@ -132,7 +132,7 @@ int64_t video_sample_durat diff --git a/docs/d9/d86/limits_8h_source.html b/docs/d9/d86/limits_8h_source.html index 88536ac126..c21abc1fdf 100644 --- a/docs/d9/d86/limits_8h_source.html +++ b/docs/d9/d86/limits_8h_source.html @@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html b/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html index 569b1eabd9..e4091b4cfe 100644 --- a/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html +++ b/docs/d9/d8b/classedash__packager_1_1media_1_1KeySource.html @@ -407,7 +407,7 @@ static std::string  diff --git a/docs/d9/d90/text__track_8h_source.html b/docs/d9/d90/text__track_8h_source.html index 838b40634c..a912d8b6c7 100644 --- a/docs/d9/d90/text__track_8h_source.html +++ b/docs/d9/d90/text__track_8h_source.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d93/media__stream_8h_source.html b/docs/d9/d93/media__stream_8h_source.html index f737af135e..1ce66ac54c 100644 --- a/docs/d9/d93/media__stream_8h_source.html +++ b/docs/d9/d93/media__stream_8h_source.html @@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html b/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html index 3c58a5579b..a25c205b63 100644 --- a/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html +++ b/docs/d9/d95/classedash__packager_1_1media_1_1MediaStream-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html b/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html index ed42534bcd..c3f780cf53 100644 --- a/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html +++ b/docs/d9/d99/classedash__packager_1_1media_1_1DecryptConfig-members.html @@ -93,17 +93,18 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');

This is the complete list of members for edash_packager::media::DecryptConfig, including all inherited members.

- - + + - - + + +
DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, EncryptionMode decryption_mode)edash_packager::media::DecryptConfig
decryption_mode() const (defined in edash_packager::media::DecryptConfig)edash_packager::media::DecryptConfiginline
DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples)edash_packager::media::DecryptConfig
DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, FourCC protection_scheme)edash_packager::media::DecryptConfig
iv() const (defined in edash_packager::media::DecryptConfig)edash_packager::media::DecryptConfiginline
kDecryptionKeySizeedash_packager::media::DecryptConfigstatic
key_id() const (defined in edash_packager::media::DecryptConfig)edash_packager::media::DecryptConfiginline
subsamples() const (defined in edash_packager::media::DecryptConfig)edash_packager::media::DecryptConfiginline
~DecryptConfig() (defined in edash_packager::media::DecryptConfig)edash_packager::media::DecryptConfig
protection_scheme() const (defined in edash_packager::media::DecryptConfig)edash_packager::media::DecryptConfiginline
subsamples() const (defined in edash_packager::media::DecryptConfig)edash_packager::media::DecryptConfiginline
~DecryptConfig() (defined in edash_packager::media::DecryptConfig)edash_packager::media::DecryptConfig
diff --git a/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html b/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html index bbea0c21a1..b8bdefde44 100644 --- a/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html +++ b/docs/d9/d9b/structedash__packager_1_1SegmentInfo.html @@ -118,7 +118,7 @@ uint64_t repeat diff --git a/docs/d9/da4/stream__descriptor_8h_source.html b/docs/d9/da4/stream__descriptor_8h_source.html index 7c8d92f467..98fc04a379 100644 --- a/docs/d9/da4/stream__descriptor_8h_source.html +++ b/docs/d9/da4/stream__descriptor_8h_source.html @@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/da7/classedash__packager_1_1media_1_1H26xBitReader-members.html b/docs/d9/da7/classedash__packager_1_1media_1_1H26xBitReader-members.html index 976cf4debb..b3a2302e08 100644 --- a/docs/d9/da7/classedash__packager_1_1media_1_1H26xBitReader-members.html +++ b/docs/d9/da7/classedash__packager_1_1media_1_1H26xBitReader-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html b/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html index bb2548ca50..f0b53d4d67 100644 --- a/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html +++ b/docs/d9/db4/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener.html @@ -231,7 +231,7 @@ Additional Inherited Members diff --git a/docs/d9/db9/content__protection__element_8cc_source.html b/docs/d9/db9/content__protection__element_8cc_source.html index 7d2bdf9cda..d303c711c4 100644 --- a/docs/d9/db9/content__protection__element_8cc_source.html +++ b/docs/d9/db9/content__protection__element_8cc_source.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/db9/muxer_8cc_source.html b/docs/d9/db9/muxer_8cc_source.html index 8ed571401a..1c0af2884c 100644 --- a/docs/d9/db9/muxer_8cc_source.html +++ b/docs/d9/db9/muxer_8cc_source.html @@ -95,129 +95,130 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
6 
7 #include "packager/media/base/muxer.h"
8 
-
9 #include "packager/media/base/media_sample.h"
-
10 #include "packager/media/base/media_stream.h"
-
11 
-
12 namespace edash_packager {
-
13 namespace media {
-
14 
-
15 Muxer::Muxer(const MuxerOptions& options)
-
16  : options_(options),
-
17  initialized_(false),
-
18  encryption_key_source_(NULL),
-
19  max_sd_pixels_(0),
-
20  clear_lead_in_seconds_(0),
-
21  crypto_period_duration_in_seconds_(0),
-
22  encryption_mode_(kEncryptionModeUnknown),
-
23  cancelled_(false),
-
24  clock_(NULL) {}
-
25 
-
26 Muxer::~Muxer() {}
-
27 
-
28 void Muxer::SetKeySource(KeySource* encryption_key_source,
-
29  uint32_t max_sd_pixels,
-
30  double clear_lead_in_seconds,
-
31  double crypto_period_duration_in_seconds,
-
32  EncryptionMode encryption_mode) {
-
33  DCHECK(encryption_key_source);
-
34  encryption_key_source_ = encryption_key_source;
-
35  max_sd_pixels_ = max_sd_pixels;
-
36  clear_lead_in_seconds_ = clear_lead_in_seconds;
-
37  crypto_period_duration_in_seconds_ = crypto_period_duration_in_seconds;
-
38  encryption_mode_ = encryption_mode;
-
39 }
-
40 
- -
42  DCHECK(stream);
-
43  stream->Connect(this);
-
44  streams_.push_back(stream);
-
45 }
-
46 
- -
48  DCHECK(!streams_.empty());
-
49 
-
50  Status status;
-
51  // Start the streams.
-
52  for (std::vector<MediaStream*>::iterator it = streams_.begin();
-
53  it != streams_.end();
-
54  ++it) {
-
55  status = (*it)->Start(MediaStream::kPull);
-
56  if (!status.ok())
-
57  return status;
-
58  }
-
59 
-
60  uint32_t current_stream_id = 0;
-
61  while (status.ok()) {
-
62  if (cancelled_)
-
63  return Status(error::CANCELLED, "muxer run cancelled");
-
64 
-
65  scoped_refptr<MediaSample> sample;
-
66  status = streams_[current_stream_id]->PullSample(&sample);
-
67  if (!status.ok())
-
68  break;
-
69  status = AddSample(streams_[current_stream_id], sample);
-
70 
-
71  // Switch to next stream if the current stream is ready for fragmentation.
-
72  if (status.error_code() == error::FRAGMENT_FINALIZED) {
-
73  current_stream_id = (current_stream_id + 1) % streams_.size();
-
74  status.Clear();
-
75  }
-
76  }
-
77  // Finalize the muxer after reaching end of stream.
-
78  return status.error_code() == error::END_OF_STREAM ? Finalize() : status;
-
79 }
-
80 
-
81 void Muxer::Cancel() {
-
82  cancelled_ = true;
-
83 }
-
84 
-
85 void Muxer::SetMuxerListener(scoped_ptr<MuxerListener> muxer_listener) {
-
86  muxer_listener_ = muxer_listener.Pass();
-
87 }
-
88 
- -
90  scoped_ptr<ProgressListener> progress_listener) {
-
91  progress_listener_ = progress_listener.Pass();
-
92 }
-
93 
-
94 Status Muxer::AddSample(const MediaStream* stream,
-
95  scoped_refptr<MediaSample> sample) {
-
96  DCHECK(std::find(streams_.begin(), streams_.end(), stream) != streams_.end());
-
97 
-
98  if (!initialized_) {
-
99  Status status = Initialize();
-
100  if (!status.ok())
-
101  return status;
-
102  initialized_ = true;
-
103  }
-
104  if (sample->end_of_stream()) {
-
105  // EOS sample should be sent only when the sample was pushed from Demuxer
-
106  // to Muxer. In this case, there should be only one stream in Muxer.
-
107  DCHECK_EQ(1u, streams_.size());
-
108  return Finalize();
-
109  } else if (sample->is_encrypted()) {
-
110  LOG(ERROR) << "Unable to multiplex encrypted media sample";
-
111  return Status(error::INTERNAL_ERROR, "Encrypted media sample.");
-
112  }
-
113  return DoAddSample(stream, sample);
-
114 }
-
115 
-
116 } // namespace media
-
117 } // namespace edash_packager
-
void SetMuxerListener(scoped_ptr< MuxerListener > muxer_listener)
Definition: muxer.cc:85
+
9 #include "packager/media/base/fourccs.h"
+
10 #include "packager/media/base/media_sample.h"
+
11 #include "packager/media/base/media_stream.h"
+
12 
+
13 namespace edash_packager {
+
14 namespace media {
+
15 
+
16 Muxer::Muxer(const MuxerOptions& options)
+
17  : options_(options),
+
18  initialized_(false),
+
19  encryption_key_source_(NULL),
+
20  max_sd_pixels_(0),
+
21  clear_lead_in_seconds_(0),
+
22  crypto_period_duration_in_seconds_(0),
+
23  protection_scheme_(FOURCC_NULL),
+
24  cancelled_(false),
+
25  clock_(NULL) {}
+
26 
+
27 Muxer::~Muxer() {}
+
28 
+
29 void Muxer::SetKeySource(KeySource* encryption_key_source,
+
30  uint32_t max_sd_pixels,
+
31  double clear_lead_in_seconds,
+
32  double crypto_period_duration_in_seconds,
+
33  FourCC protection_scheme) {
+
34  DCHECK(encryption_key_source);
+
35  encryption_key_source_ = encryption_key_source;
+
36  max_sd_pixels_ = max_sd_pixels;
+
37  clear_lead_in_seconds_ = clear_lead_in_seconds;
+
38  crypto_period_duration_in_seconds_ = crypto_period_duration_in_seconds;
+
39  protection_scheme_ = protection_scheme;
+
40 }
+
41 
+ +
43  DCHECK(stream);
+
44  stream->Connect(this);
+
45  streams_.push_back(stream);
+
46 }
+
47 
+ +
49  DCHECK(!streams_.empty());
+
50 
+
51  Status status;
+
52  // Start the streams.
+
53  for (std::vector<MediaStream*>::iterator it = streams_.begin();
+
54  it != streams_.end();
+
55  ++it) {
+
56  status = (*it)->Start(MediaStream::kPull);
+
57  if (!status.ok())
+
58  return status;
+
59  }
+
60 
+
61  uint32_t current_stream_id = 0;
+
62  while (status.ok()) {
+
63  if (cancelled_)
+
64  return Status(error::CANCELLED, "muxer run cancelled");
+
65 
+
66  scoped_refptr<MediaSample> sample;
+
67  status = streams_[current_stream_id]->PullSample(&sample);
+
68  if (!status.ok())
+
69  break;
+
70  status = AddSample(streams_[current_stream_id], sample);
+
71 
+
72  // Switch to next stream if the current stream is ready for fragmentation.
+
73  if (status.error_code() == error::FRAGMENT_FINALIZED) {
+
74  current_stream_id = (current_stream_id + 1) % streams_.size();
+
75  status.Clear();
+
76  }
+
77  }
+
78  // Finalize the muxer after reaching end of stream.
+
79  return status.error_code() == error::END_OF_STREAM ? Finalize() : status;
+
80 }
+
81 
+
82 void Muxer::Cancel() {
+
83  cancelled_ = true;
+
84 }
+
85 
+
86 void Muxer::SetMuxerListener(scoped_ptr<MuxerListener> muxer_listener) {
+
87  muxer_listener_ = muxer_listener.Pass();
+
88 }
+
89 
+ +
91  scoped_ptr<ProgressListener> progress_listener) {
+
92  progress_listener_ = progress_listener.Pass();
+
93 }
+
94 
+
95 Status Muxer::AddSample(const MediaStream* stream,
+
96  scoped_refptr<MediaSample> sample) {
+
97  DCHECK(std::find(streams_.begin(), streams_.end(), stream) != streams_.end());
+
98 
+
99  if (!initialized_) {
+
100  Status status = Initialize();
+
101  if (!status.ok())
+
102  return status;
+
103  initialized_ = true;
+
104  }
+
105  if (sample->end_of_stream()) {
+
106  // EOS sample should be sent only when the sample was pushed from Demuxer
+
107  // to Muxer. In this case, there should be only one stream in Muxer.
+
108  DCHECK_EQ(1u, streams_.size());
+
109  return Finalize();
+
110  } else if (sample->is_encrypted()) {
+
111  LOG(ERROR) << "Unable to multiplex encrypted media sample";
+
112  return Status(error::INTERNAL_ERROR, "Encrypted media sample.");
+
113  }
+
114  return DoAddSample(stream, sample);
+
115 }
+
116 
+
117 } // namespace media
+
118 } // namespace edash_packager
+
void SetMuxerListener(scoped_ptr< MuxerListener > muxer_listener)
Definition: muxer.cc:86
+
void SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)
Definition: muxer.cc:29
-
void SetProgressListener(scoped_ptr< ProgressListener > progress_listener)
Definition: muxer.cc:89
-
void SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)
Definition: muxer.cc:28
+
void SetProgressListener(scoped_ptr< ProgressListener > progress_listener)
Definition: muxer.cc:90
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
-
Status Run()
Drive the remuxing from muxer side (pull).
Definition: muxer.cc:47
-
void AddStream(MediaStream *stream)
Add video/audio stream.
Definition: muxer.cc:41
+
Status Run()
Drive the remuxing from muxer side (pull).
Definition: muxer.cc:48
+
void AddStream(MediaStream *stream)
Add video/audio stream.
Definition: muxer.cc:42
- + diff --git a/docs/d9/dbf/classedash__packager_1_1media_1_1TextStreamInfo-members.html b/docs/d9/dbf/classedash__packager_1_1media_1_1TextStreamInfo-members.html index 095b6ddda0..f689da6817 100644 --- a/docs/d9/dbf/classedash__packager_1_1media_1_1TextStreamInfo-members.html +++ b/docs/d9/dbf/classedash__packager_1_1media_1_1TextStreamInfo-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dc8/webm__constants_8cc_source.html b/docs/d9/dc8/webm__constants_8cc_source.html index 644e8cd49f..4975afea29 100644 --- a/docs/d9/dc8/webm__constants_8cc_source.html +++ b/docs/d9/dc8/webm__constants_8cc_source.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html b/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html index d47dd65adb..7b01d9e6f3 100644 --- a/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html +++ b/docs/d9/dcc/structedash__packager_1_1media_1_1mp4_1_1ElementaryStreamDescriptor.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/d9/dcc/webm__video__client_8h_source.html b/docs/d9/dcc/webm__video__client_8h_source.html index 3be8f57d90..8efc250fc0 100644 --- a/docs/d9/dcc/webm__video__client_8h_source.html +++ b/docs/d9/dcc/webm__video__client_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/de3/muxer__listener__internal_8cc_source.html b/docs/d9/de3/muxer__listener__internal_8cc_source.html index 0988232897..972f2a1354 100644 --- a/docs/d9/de3/muxer__listener__internal_8cc_source.html +++ b/docs/d9/de3/muxer__listener__internal_8cc_source.html @@ -343,7 +343,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html b/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html index 6fd83d45fe..82a4fd0f49 100644 --- a/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html +++ b/docs/d9/dec/classedash__packager_1_1media_1_1RequestSigner-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/d9/ded/aac__audio__specific__config_8cc_source.html b/docs/d9/ded/aac__audio__specific__config_8cc_source.html index 272ce4397d..693e16a680 100644 --- a/docs/d9/ded/aac__audio__specific__config_8cc_source.html +++ b/docs/d9/ded/aac__audio__specific__config_8cc_source.html @@ -357,7 +357,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d00/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html b/docs/da/d00/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html index fbc333f8d1..f0cef9474f 100644 --- a/docs/da/d00/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html +++ b/docs/da/d00/structedash__packager_1_1media_1_1mp4_1_1SubtitleMediaHeader-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html b/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html index 96adcece04..8ccd9322d5 100644 --- a/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html +++ b/docs/da/d02/structedash__packager_1_1media_1_1H264WeightingFactors-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html b/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html index 09266a17a8..c545b6ef55 100644 --- a/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html +++ b/docs/da/d02/structedash__packager_1_1media_1_1mp4_1_1SyncSample-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d04/audio__stream__info_8cc_source.html b/docs/da/d04/audio__stream__info_8cc_source.html index 75e09e3baa..5364e5659e 100644 --- a/docs/da/d04/audio__stream__info_8cc_source.html +++ b/docs/da/d04/audio__stream__info_8cc_source.html @@ -225,7 +225,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d09/classedash__packager_1_1media_1_1SegmentTestBase-members.html b/docs/da/d09/classedash__packager_1_1media_1_1SegmentTestBase-members.html index c63f134c9b..5af4a26885 100644 --- a/docs/da/d09/classedash__packager_1_1media_1_1SegmentTestBase-members.html +++ b/docs/da/d09/classedash__packager_1_1media_1_1SegmentTestBase-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d0b/classedash__packager_1_1media_1_1FixedKeySource-members.html b/docs/da/d0b/classedash__packager_1_1media_1_1FixedKeySource-members.html index 7369eb9f03..126064b930 100644 --- a/docs/da/d0b/classedash__packager_1_1media_1_1FixedKeySource-members.html +++ b/docs/da/d0b/classedash__packager_1_1media_1_1FixedKeySource-members.html @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html b/docs/da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html index e7a9379984..264ecfcaad 100644 --- a/docs/da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html +++ b/docs/da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html @@ -427,7 +427,7 @@ virtual diff --git a/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html b/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html index aa0b4aa56f..25932205af 100644 --- a/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html +++ b/docs/da/d15/structedash__packager_1_1media_1_1mp4_1_1HandlerReference-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html b/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html index 22b066277d..71c746ffd4 100644 --- a/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html +++ b/docs/da/d17/structedash__packager_1_1media_1_1mp4_1_1MovieExtendsHeader.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html b/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html index 8ed150bc9a..0ad8550fb5 100644 --- a/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html +++ b/docs/da/d1e/classedash__packager_1_1media_1_1StreamInfo-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d22/key__rotation__fragmenter_8h_source.html b/docs/da/d22/key__rotation__fragmenter_8h_source.html index af73935526..b2eb110890 100644 --- a/docs/da/d22/key__rotation__fragmenter_8h_source.html +++ b/docs/da/d22/key__rotation__fragmenter_8h_source.html @@ -96,7 +96,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
7 #ifndef MEDIA_FORMATS_MP4_KEY_ROTATION_FRAGMENTER_H_
8 #define MEDIA_FORMATS_MP4_KEY_ROTATION_FRAGMENTER_H_
9 
-
10 #include "packager/media/base/encryption_modes.h"
+
10 #include "packager/media/base/fourccs.h"
11 #include "packager/media/base/key_source.h"
12 #include "packager/media/event/muxer_listener.h"
13 #include "packager/media/formats/mp4/encrypting_fragmenter.h"
@@ -109,45 +109,45 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
20 
24  public:
- -
38  scoped_refptr<StreamInfo> info,
-
39  TrackFragment* traf,
-
40  KeySource* encryption_key_source,
-
41  KeySource::TrackType track_type,
-
42  int64_t crypto_period_duration,
-
43  int64_t clear_time,
-
44  MuxerListener* muxer_listener,
-
45  EncryptionMode encryption_mode);
-
46  ~KeyRotationFragmenter() override;
-
47 
-
48  protected:
-
51  Status PrepareFragmentForEncryption(bool enable_encryption) override;
-
52  void FinalizeFragmentForEncryption() override;
-
54 
-
55  private:
-
56  MovieFragment* moof_;
-
57 
-
58  KeySource* encryption_key_source_;
-
59  KeySource::TrackType track_type_;
-
60  const int64_t crypto_period_duration_;
-
61  size_t prev_crypto_period_index_;
-
62 
-
63  // For notifying new pssh boxes to the event handler.
-
64  MuxerListener* const muxer_listener_;
-
65 
-
66  DISALLOW_COPY_AND_ASSIGN(KeyRotationFragmenter);
-
67 };
-
68 
-
69 } // namespace mp4
-
70 } // namespace media
-
71 } // namespace edash_packager
-
72 
-
73 #endif // MEDIA_FORMATS_MP4_KEY_ROTATION_FRAGMENTER_H_
-
KeyRotationFragmenter(MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, MuxerListener *muxer_listener, EncryptionMode encryption_mode)
-
void FinalizeFragmentForEncryption() override
Finalize current fragment for encryption.
+ +
40  scoped_refptr<StreamInfo> info,
+
41  TrackFragment* traf,
+
42  KeySource* encryption_key_source,
+
43  KeySource::TrackType track_type,
+
44  int64_t crypto_period_duration,
+
45  int64_t clear_time,
+
46  FourCC protection_scheme,
+
47  MuxerListener* muxer_listener);
+
48  ~KeyRotationFragmenter() override;
+
49 
+
50  protected:
+
53  Status PrepareFragmentForEncryption(bool enable_encryption) override;
+
54  void FinalizeFragmentForEncryption() override;
+
56 
+
57  private:
+
58  MovieFragment* moof_;
+
59 
+
60  KeySource* encryption_key_source_;
+
61  KeySource::TrackType track_type_;
+
62  const int64_t crypto_period_duration_;
+
63  size_t prev_crypto_period_index_;
+
64 
+
65  // For notifying new pssh boxes to the event handler.
+
66  MuxerListener* const muxer_listener_;
+
67 
+
68  DISALLOW_COPY_AND_ASSIGN(KeyRotationFragmenter);
+
69 };
+
70 
+
71 } // namespace mp4
+
72 } // namespace media
+
73 } // namespace edash_packager
+
74 
+
75 #endif // MEDIA_FORMATS_MP4_KEY_ROTATION_FRAGMENTER_H_
+
void FinalizeFragmentForEncryption() override
Finalize current fragment for encryption.
EncryptingFragmenter generates MP4 fragments with sample encrypted.
Status PrepareFragmentForEncryption(bool enable_encryption) override
+
KeyRotationFragmenter(MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, FourCC protection_scheme, MuxerListener *muxer_listener)
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
@@ -156,7 +156,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d23/ts__muxer_8h_source.html b/docs/da/d23/ts__muxer_8h_source.html index 1f5689504d..ead7c86d0c 100644 --- a/docs/da/d23/ts__muxer_8h_source.html +++ b/docs/da/d23/ts__muxer_8h_source.html @@ -135,7 +135,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d24/h265__parser_8h_source.html b/docs/da/d24/h265__parser_8h_source.html index a7ae46381e..503582883e 100644 --- a/docs/da/d24/h265__parser_8h_source.html +++ b/docs/da/d24/h265__parser_8h_source.html @@ -412,7 +412,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d25/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer-members.html b/docs/da/d25/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer-members.html index d0006f0d5b..b756957cc3 100644 --- a/docs/da/d25/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer-members.html +++ b/docs/da/d25/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer-members.html @@ -99,15 +99,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); clock() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected crypto_period_duration_in_seconds() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected encryption_key_source() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - encryption_mode() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - max_sd_pixels() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - Muxer(const MuxerOptions &options) (defined in edash_packager::media::Muxer)edash_packager::media::Muxerexplicit - muxer_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - options() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - progress_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + max_sd_pixels() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + Muxer(const MuxerOptions &options) (defined in edash_packager::media::Muxer)edash_packager::media::Muxerexplicit + muxer_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + options() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + progress_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + protection_scheme() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected Run()edash_packager::media::Muxer set_clock(base::Clock *clock)edash_packager::media::Muxerinline - SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)edash_packager::media::Muxer + SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)edash_packager::media::Muxer SetMuxerListener(scoped_ptr< MuxerListener > muxer_listener)edash_packager::media::Muxer SetProgressListener(scoped_ptr< ProgressListener > progress_listener)edash_packager::media::Muxer streams() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinline @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html b/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html index 700ba2814b..b03002520e 100644 --- a/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html +++ b/docs/da/d27/classedash__packager_1_1media_1_1AudioStreamInfo.html @@ -307,7 +307,7 @@ Static Public Member Functions diff --git a/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html b/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html index 8441f058c3..a2922424be 100644 --- a/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html +++ b/docs/da/d2a/structedash__packager_1_1media_1_1mp4_1_1ProtectionSystemSpecificHeader.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/d2a/text__stream__info_8h_source.html b/docs/da/d2a/text__stream__info_8h_source.html index 2c74a65a0e..b2092dd09d 100644 --- a/docs/da/d2a/text__stream__info_8h_source.html +++ b/docs/da/d2a/text__stream__info_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d2c/decoder__configuration_8cc_source.html b/docs/da/d2c/decoder__configuration_8cc_source.html index 562b4884c4..bf90358789 100644 --- a/docs/da/d2c/decoder__configuration_8cc_source.html +++ b/docs/da/d2c/decoder__configuration_8cc_source.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d2e/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser-members.html b/docs/da/d2e/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser-members.html index 603d2c8ba5..69465f817a 100644 --- a/docs/da/d2e/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser-members.html +++ b/docs/da/d2e/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html b/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html index 04f31b60ea..6f1c030e3c 100644 --- a/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html +++ b/docs/da/d37/classedash__packager_1_1media_1_1IoCache-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d38/classedash__packager_1_1MpdNotifier.html b/docs/da/d38/classedash__packager_1_1MpdNotifier.html index d6aa0d5bdf..a2d70f9a38 100644 --- a/docs/da/d38/classedash__packager_1_1MpdNotifier.html +++ b/docs/da/d38/classedash__packager_1_1MpdNotifier.html @@ -472,7 +472,7 @@ Public Member Functions diff --git a/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html b/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html index 6a9b85157a..ff224484ea 100644 --- a/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html +++ b/docs/da/d40/classedash__packager_1_1media_1_1RsaPrivateKey-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html b/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html index bb34b063e1..ed837586b1 100644 --- a/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html +++ b/docs/da/d41/mp4_2multi__segment__segmenter_8h_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html b/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html index ff7a17f3a1..1ac1966612 100644 --- a/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html +++ b/docs/da/d49/classedash__packager_1_1DashIopMpdNotifier.html @@ -473,7 +473,7 @@ class DashIopMpdNotifierTe diff --git a/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html b/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html index ba458546aa..c067f70d9c 100644 --- a/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html +++ b/docs/da/d4b/structedash__packager_1_1media_1_1mp4_1_1OriginalFormat.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html b/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html index 6e945e47f3..5961d79395 100644 --- a/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html +++ b/docs/da/d54/structedash__packager_1_1media_1_1mp4_1_1CompositionTimeToSample.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/d5c/widevine__key__source_8h_source.html b/docs/da/d5c/widevine__key__source_8h_source.html index aa41439722..d79fb6d8f0 100644 --- a/docs/da/d5c/widevine__key__source_8h_source.html +++ b/docs/da/d5c/widevine__key__source_8h_source.html @@ -218,7 +218,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html b/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html index fe38a9bc35..0e62f1abbb 100644 --- a/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html +++ b/docs/da/d5f/classedash__packager_1_1media_1_1VP9Parser.html @@ -238,7 +238,7 @@ Additional Inherited Members diff --git a/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html b/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html index dfa30a77cd..4eeac5e340 100644 --- a/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html +++ b/docs/da/d60/structedash__packager_1_1media_1_1EncryptionKey-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html b/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html index 05f7fbe5ce..6621e3595e 100644 --- a/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html +++ b/docs/da/d72/classedash__packager_1_1media_1_1mp2t_1_1EsParser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html b/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html index 6d1717a5be..ee4544ee46 100644 --- a/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html +++ b/docs/da/d75/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter.html @@ -119,8 +119,8 @@ Public Member Functions  Segmenter (const MuxerOptions &options, scoped_ptr< FileType > ftyp, scoped_ptr< Movie > moov)   -Status Initialize (const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode) -  +Status Initialize (const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme) +  Status Finalize ()   Status AddSample (const MediaStream *stream, scoped_refptr< MediaSample > sample) @@ -259,7 +259,7 @@ void set_progress_target diff --git a/docs/da/d78/structedash__packager_1_1media_1_1mp4_1_1Metadata-members.html b/docs/da/d78/structedash__packager_1_1media_1_1mp4_1_1Metadata-members.html index 9cfa458e1b..208927fd40 100644 --- a/docs/da/d78/structedash__packager_1_1media_1_1mp4_1_1Metadata-members.html +++ b/docs/da/d78/structedash__packager_1_1media_1_1mp4_1_1Metadata-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html b/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html index d9dee53728..6794f68e66 100644 --- a/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html +++ b/docs/da/d7a/classedash__packager_1_1media_1_1AVCDecoderConfiguration-members.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d7a/fixed__key__encryption__flags_8h_source.html b/docs/da/d7a/fixed__key__encryption__flags_8h_source.html index 3be8631a43..463c692722 100644 --- a/docs/da/d7a/fixed__key__encryption__flags_8h_source.html +++ b/docs/da/d7a/fixed__key__encryption__flags_8h_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html b/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html index 7f8672b497..5ed0a37365 100644 --- a/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html +++ b/docs/da/d7d/classedash__packager_1_1media_1_1StreamDescriptorCompareFn.html @@ -109,7 +109,7 @@ bool operator() (const diff --git a/docs/da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html b/docs/da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html index 3b9a1937b2..f83d677551 100644 --- a/docs/da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html +++ b/docs/da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html @@ -114,8 +114,6 @@ Public Member Functions bool SetIv (const std::vector< uint8_t > &iv) override   - Public Member Functions inherited from edash_packager::media::AesEncryptor -bool InitializeWithRandomIv (const std::vector< uint8_t > &key, uint8_t iv_size) -  bool InitializeWithIv (const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override   - Public Member Functions inherited from edash_packager::media::AesCryptor @@ -132,6 +130,9 @@ bool Crypt (const std: + + + @@ -145,7 +146,7 @@ AES_KEY * 

Additional Inherited Members

- Static Public Member Functions inherited from edash_packager::media::AesCryptor
static bool GenerateRandomIv (FourCC protection_scheme, std::vector< uint8_t > *iv)
 
- Protected Member Functions inherited from edash_packager::media::AesCryptor
void set_iv (const std::vector< uint8_t > &iv)
mutable_aes_key<

Detailed Description

-

Definition at line 87 of file aes_encryptor.h.

+

Definition at line 82 of file aes_encryptor.h.

Constructor & Destructor Documentation

@@ -178,7 +179,7 @@ AES_KEY * mutable_aes_key< -

Definition at line 149 of file aes_encryptor.cc.

+

Definition at line 136 of file aes_encryptor.cc.

@@ -209,7 +210,7 @@ AES_KEY * mutable_aes_key<

Implements edash_packager::media::AesCryptor.

-

Definition at line 170 of file aes_encryptor.cc.

+

Definition at line 157 of file aes_encryptor.cc.

@@ -237,7 +238,7 @@ AES_KEY * mutable_aes_key<

Implements edash_packager::media::AesCryptor.

-

Definition at line 160 of file aes_encryptor.cc.

+

Definition at line 147 of file aes_encryptor.cc.

@@ -248,7 +249,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/da/d7f/hevc__decoder__configuration_8h_source.html b/docs/da/d7f/hevc__decoder__configuration_8h_source.html index 078cf8cad6..659b9a5086 100644 --- a/docs/da/d7f/hevc__decoder__configuration_8h_source.html +++ b/docs/da/d7f/hevc__decoder__configuration_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html b/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html index 4c43dd1ebc..507dd95b83 100644 --- a/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html +++ b/docs/da/d81/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/da/d88/mp4__muxer_8cc_source.html b/docs/da/d88/mp4__muxer_8cc_source.html index 537d8e486e..fb9742a3c5 100644 --- a/docs/da/d88/mp4__muxer_8cc_source.html +++ b/docs/da/d88/mp4__muxer_8cc_source.html @@ -236,238 +236,233 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
147  new MultiSegmentSegmenter(options(), ftyp.Pass(), moov.Pass()));
148  }
149 
-
150  Status segmenter_initialized =
-
151  segmenter_->Initialize(streams(),
-
152  muxer_listener(),
-
153  progress_listener(),
-
154  encryption_key_source(),
-
155  max_sd_pixels(),
-
156  clear_lead_in_seconds(),
-
157  crypto_period_duration_in_seconds(),
-
158  encryption_mode());
-
159 
-
160  if (!segmenter_initialized.ok())
-
161  return segmenter_initialized;
-
162 
-
163  FireOnMediaStartEvent();
-
164  return Status::OK;
-
165 }
-
166 
-
167 Status MP4Muxer::Finalize() {
-
168  DCHECK(segmenter_);
-
169  Status segmenter_finalized = segmenter_->Finalize();
-
170 
-
171  if (!segmenter_finalized.ok())
-
172  return segmenter_finalized;
+
150  const Status segmenter_initialized = segmenter_->Initialize(
+
151  streams(), muxer_listener(), progress_listener(), encryption_key_source(),
+
152  max_sd_pixels(), clear_lead_in_seconds(),
+
153  crypto_period_duration_in_seconds(), protection_scheme());
+
154 
+
155  if (!segmenter_initialized.ok())
+
156  return segmenter_initialized;
+
157 
+
158  FireOnMediaStartEvent();
+
159  return Status::OK;
+
160 }
+
161 
+
162 Status MP4Muxer::Finalize() {
+
163  DCHECK(segmenter_);
+
164  Status segmenter_finalized = segmenter_->Finalize();
+
165 
+
166  if (!segmenter_finalized.ok())
+
167  return segmenter_finalized;
+
168 
+
169  FireOnMediaEndEvent();
+
170  LOG(INFO) << "MP4 file '" << options().output_file_name << "' finalized.";
+
171  return Status::OK;
+
172 }
173 
-
174  FireOnMediaEndEvent();
-
175  LOG(INFO) << "MP4 file '" << options().output_file_name << "' finalized.";
-
176  return Status::OK;
-
177 }
-
178 
-
179 Status MP4Muxer::DoAddSample(const MediaStream* stream,
-
180  scoped_refptr<MediaSample> sample) {
-
181  DCHECK(segmenter_);
-
182  return segmenter_->AddSample(stream, sample);
-
183 }
-
184 
-
185 void MP4Muxer::InitializeTrak(const StreamInfo* info, Track* trak) {
-
186  int64_t now = IsoTimeNow();
-
187  trak->header.creation_time = now;
-
188  trak->header.modification_time = now;
-
189  trak->header.duration = 0;
-
190  trak->media.header.creation_time = now;
-
191  trak->media.header.modification_time = now;
-
192  trak->media.header.timescale = info->time_scale();
-
193  trak->media.header.duration = 0;
-
194  if (!info->language().empty()) {
-
195  // Strip off the subtag, if any.
-
196  std::string main_language = info->language();
-
197  size_t dash = main_language.find('-');
-
198  if (dash != std::string::npos) {
-
199  main_language.erase(dash);
-
200  }
-
201 
-
202  // ISO-639-2/T main language code should be 3 characters.
-
203  if (main_language.size() != 3) {
-
204  LOG(WARNING) << "'" << main_language << "' is not a valid ISO-639-2 "
-
205  << "language code, ignoring.";
-
206  } else {
-
207  trak->media.header.language.code = main_language;
-
208  }
-
209  }
-
210 }
+
174 Status MP4Muxer::DoAddSample(const MediaStream* stream,
+
175  scoped_refptr<MediaSample> sample) {
+
176  DCHECK(segmenter_);
+
177  return segmenter_->AddSample(stream, sample);
+
178 }
+
179 
+
180 void MP4Muxer::InitializeTrak(const StreamInfo* info, Track* trak) {
+
181  int64_t now = IsoTimeNow();
+
182  trak->header.creation_time = now;
+
183  trak->header.modification_time = now;
+
184  trak->header.duration = 0;
+
185  trak->media.header.creation_time = now;
+
186  trak->media.header.modification_time = now;
+
187  trak->media.header.timescale = info->time_scale();
+
188  trak->media.header.duration = 0;
+
189  if (!info->language().empty()) {
+
190  // Strip off the subtag, if any.
+
191  std::string main_language = info->language();
+
192  size_t dash = main_language.find('-');
+
193  if (dash != std::string::npos) {
+
194  main_language.erase(dash);
+
195  }
+
196 
+
197  // ISO-639-2/T main language code should be 3 characters.
+
198  if (main_language.size() != 3) {
+
199  LOG(WARNING) << "'" << main_language << "' is not a valid ISO-639-2 "
+
200  << "language code, ignoring.";
+
201  } else {
+
202  trak->media.header.language.code = main_language;
+
203  }
+
204  }
+
205 }
+
206 
+
207 void MP4Muxer::GenerateVideoTrak(const VideoStreamInfo* video_info,
+
208  Track* trak,
+
209  uint32_t track_id) {
+
210  InitializeTrak(video_info, trak);
211 
-
212 void MP4Muxer::GenerateVideoTrak(const VideoStreamInfo* video_info,
-
213  Track* trak,
-
214  uint32_t track_id) {
-
215  InitializeTrak(video_info, trak);
-
216 
-
217  // width and height specify the track's visual presentation size as
-
218  // fixed-point 16.16 values.
-
219  uint32_t pixel_width = video_info->pixel_width();
-
220  uint32_t pixel_height = video_info->pixel_height();
-
221  if (pixel_width == 0 || pixel_height == 0) {
-
222  LOG(WARNING) << "pixel width/height are not set. Assuming 1:1.";
-
223  pixel_width = 1;
-
224  pixel_height = 1;
-
225  }
-
226  const double sample_aspect_ratio =
-
227  static_cast<double>(pixel_width) / pixel_height;
-
228  trak->header.width = video_info->width() * sample_aspect_ratio * 0x10000;
-
229  trak->header.height = video_info->height() * 0x10000;
-
230 
-
231  VideoSampleEntry video;
-
232  video.format = VideoCodecToFourCC(video_info->codec());
-
233  video.width = video_info->width();
-
234  video.height = video_info->height();
-
235  video.codec_config_record.data = video_info->extra_data();
-
236  if (pixel_width != 1 || pixel_height != 1) {
-
237  video.pixel_aspect.h_spacing = pixel_width;
-
238  video.pixel_aspect.v_spacing = pixel_height;
-
239  }
-
240 
-
241  SampleDescription& sample_description =
-
242  trak->media.information.sample_table.description;
-
243  sample_description.type = kVideo;
-
244  sample_description.video_entries.push_back(video);
-
245 }
+
212  // width and height specify the track's visual presentation size as
+
213  // fixed-point 16.16 values.
+
214  uint32_t pixel_width = video_info->pixel_width();
+
215  uint32_t pixel_height = video_info->pixel_height();
+
216  if (pixel_width == 0 || pixel_height == 0) {
+
217  LOG(WARNING) << "pixel width/height are not set. Assuming 1:1.";
+
218  pixel_width = 1;
+
219  pixel_height = 1;
+
220  }
+
221  const double sample_aspect_ratio =
+
222  static_cast<double>(pixel_width) / pixel_height;
+
223  trak->header.width = video_info->width() * sample_aspect_ratio * 0x10000;
+
224  trak->header.height = video_info->height() * 0x10000;
+
225 
+
226  VideoSampleEntry video;
+
227  video.format = VideoCodecToFourCC(video_info->codec());
+
228  video.width = video_info->width();
+
229  video.height = video_info->height();
+
230  video.codec_config_record.data = video_info->extra_data();
+
231  if (pixel_width != 1 || pixel_height != 1) {
+
232  video.pixel_aspect.h_spacing = pixel_width;
+
233  video.pixel_aspect.v_spacing = pixel_height;
+
234  }
+
235 
+
236  SampleDescription& sample_description =
+
237  trak->media.information.sample_table.description;
+
238  sample_description.type = kVideo;
+
239  sample_description.video_entries.push_back(video);
+
240 }
+
241 
+
242 void MP4Muxer::GenerateAudioTrak(const AudioStreamInfo* audio_info,
+
243  Track* trak,
+
244  uint32_t track_id) {
+
245  InitializeTrak(audio_info, trak);
246 
-
247 void MP4Muxer::GenerateAudioTrak(const AudioStreamInfo* audio_info,
-
248  Track* trak,
-
249  uint32_t track_id) {
-
250  InitializeTrak(audio_info, trak);
-
251 
-
252  trak->header.volume = 0x100;
-
253 
-
254  AudioSampleEntry audio;
-
255  audio.format = AudioCodecToFourCC(audio_info->codec());
-
256  switch(audio_info->codec()){
-
257  case kCodecAAC:
-
258  audio.esds.es_descriptor.set_object_type(kISO_14496_3); // MPEG4 AAC.
-
259  audio.esds.es_descriptor.set_esid(track_id);
-
260  audio.esds.es_descriptor.set_decoder_specific_info(
-
261  audio_info->extra_data());
-
262  audio.esds.es_descriptor.set_max_bitrate(audio_info->max_bitrate());
-
263  audio.esds.es_descriptor.set_avg_bitrate(audio_info->avg_bitrate());
-
264  break;
-
265  case kCodecDTSC:
-
266  case kCodecDTSH:
-
267  case kCodecDTSL:
-
268  case kCodecDTSE:
-
269  case kCodecDTSM:
-
270  audio.ddts.extra_data = audio_info->extra_data();
-
271  audio.ddts.max_bitrate = audio_info->max_bitrate();
-
272  audio.ddts.avg_bitrate = audio_info->avg_bitrate();
-
273  audio.ddts.sampling_frequency = audio_info->sampling_frequency();
-
274  audio.ddts.pcm_sample_depth = audio_info->sample_bits();
-
275  break;
-
276  case kCodecAC3:
-
277  audio.dac3.data = audio_info->extra_data();
-
278  break;
-
279  case kCodecEAC3:
-
280  audio.dec3.data = audio_info->extra_data();
-
281  break;
-
282  default:
-
283  NOTIMPLEMENTED();
-
284  break;
-
285  }
-
286 
-
287  audio.channelcount = audio_info->num_channels();
-
288  audio.samplesize = audio_info->sample_bits();
-
289  audio.samplerate = audio_info->sampling_frequency();
-
290  SampleDescription& sample_description =
-
291  trak->media.information.sample_table.description;
-
292  sample_description.type = kAudio;
-
293  sample_description.audio_entries.push_back(audio);
-
294 }
-
295 
-
296 bool MP4Muxer::GetInitRangeStartAndEnd(uint32_t* start, uint32_t* end) {
-
297  DCHECK(start && end);
-
298  size_t range_offset = 0;
-
299  size_t range_size = 0;
-
300  const bool has_range = segmenter_->GetInitRange(&range_offset, &range_size);
-
301 
-
302  if (!has_range)
-
303  return false;
-
304 
-
305  SetStartAndEndFromOffsetAndSize(range_offset, range_size, start, end);
-
306  return true;
-
307 }
-
308 
-
309 bool MP4Muxer::GetIndexRangeStartAndEnd(uint32_t* start, uint32_t* end) {
-
310  DCHECK(start && end);
-
311  size_t range_offset = 0;
-
312  size_t range_size = 0;
-
313  const bool has_range = segmenter_->GetIndexRange(&range_offset, &range_size);
-
314 
-
315  if (!has_range)
-
316  return false;
-
317 
-
318  SetStartAndEndFromOffsetAndSize(range_offset, range_size, start, end);
-
319  return true;
-
320 }
-
321 
-
322 void MP4Muxer::FireOnMediaStartEvent() {
-
323  if (!muxer_listener())
-
324  return;
-
325 
-
326  if (streams().size() > 1) {
-
327  LOG(ERROR) << "MuxerListener cannot take more than 1 stream.";
-
328  return;
-
329  }
-
330  DCHECK(!streams().empty()) << "Media started without a stream.";
-
331 
-
332  const uint32_t timescale = segmenter_->GetReferenceTimeScale();
-
333  muxer_listener()->OnMediaStart(options(),
-
334  *streams().front()->info(),
-
335  timescale,
-
336  MuxerListener::kContainerMp4);
-
337 }
-
338 
-
339 void MP4Muxer::FireOnMediaEndEvent() {
-
340  if (!muxer_listener())
-
341  return;
+
247  trak->header.volume = 0x100;
+
248 
+
249  AudioSampleEntry audio;
+
250  audio.format = AudioCodecToFourCC(audio_info->codec());
+
251  switch(audio_info->codec()){
+
252  case kCodecAAC:
+
253  audio.esds.es_descriptor.set_object_type(kISO_14496_3); // MPEG4 AAC.
+
254  audio.esds.es_descriptor.set_esid(track_id);
+
255  audio.esds.es_descriptor.set_decoder_specific_info(
+
256  audio_info->extra_data());
+
257  audio.esds.es_descriptor.set_max_bitrate(audio_info->max_bitrate());
+
258  audio.esds.es_descriptor.set_avg_bitrate(audio_info->avg_bitrate());
+
259  break;
+
260  case kCodecDTSC:
+
261  case kCodecDTSH:
+
262  case kCodecDTSL:
+
263  case kCodecDTSE:
+
264  case kCodecDTSM:
+
265  audio.ddts.extra_data = audio_info->extra_data();
+
266  audio.ddts.max_bitrate = audio_info->max_bitrate();
+
267  audio.ddts.avg_bitrate = audio_info->avg_bitrate();
+
268  audio.ddts.sampling_frequency = audio_info->sampling_frequency();
+
269  audio.ddts.pcm_sample_depth = audio_info->sample_bits();
+
270  break;
+
271  case kCodecAC3:
+
272  audio.dac3.data = audio_info->extra_data();
+
273  break;
+
274  case kCodecEAC3:
+
275  audio.dec3.data = audio_info->extra_data();
+
276  break;
+
277  default:
+
278  NOTIMPLEMENTED();
+
279  break;
+
280  }
+
281 
+
282  audio.channelcount = audio_info->num_channels();
+
283  audio.samplesize = audio_info->sample_bits();
+
284  audio.samplerate = audio_info->sampling_frequency();
+
285  SampleDescription& sample_description =
+
286  trak->media.information.sample_table.description;
+
287  sample_description.type = kAudio;
+
288  sample_description.audio_entries.push_back(audio);
+
289 }
+
290 
+
291 bool MP4Muxer::GetInitRangeStartAndEnd(uint32_t* start, uint32_t* end) {
+
292  DCHECK(start && end);
+
293  size_t range_offset = 0;
+
294  size_t range_size = 0;
+
295  const bool has_range = segmenter_->GetInitRange(&range_offset, &range_size);
+
296 
+
297  if (!has_range)
+
298  return false;
+
299 
+
300  SetStartAndEndFromOffsetAndSize(range_offset, range_size, start, end);
+
301  return true;
+
302 }
+
303 
+
304 bool MP4Muxer::GetIndexRangeStartAndEnd(uint32_t* start, uint32_t* end) {
+
305  DCHECK(start && end);
+
306  size_t range_offset = 0;
+
307  size_t range_size = 0;
+
308  const bool has_range = segmenter_->GetIndexRange(&range_offset, &range_size);
+
309 
+
310  if (!has_range)
+
311  return false;
+
312 
+
313  SetStartAndEndFromOffsetAndSize(range_offset, range_size, start, end);
+
314  return true;
+
315 }
+
316 
+
317 void MP4Muxer::FireOnMediaStartEvent() {
+
318  if (!muxer_listener())
+
319  return;
+
320 
+
321  if (streams().size() > 1) {
+
322  LOG(ERROR) << "MuxerListener cannot take more than 1 stream.";
+
323  return;
+
324  }
+
325  DCHECK(!streams().empty()) << "Media started without a stream.";
+
326 
+
327  const uint32_t timescale = segmenter_->GetReferenceTimeScale();
+
328  muxer_listener()->OnMediaStart(options(),
+
329  *streams().front()->info(),
+
330  timescale,
+
331  MuxerListener::kContainerMp4);
+
332 }
+
333 
+
334 void MP4Muxer::FireOnMediaEndEvent() {
+
335  if (!muxer_listener())
+
336  return;
+
337 
+
338  uint32_t init_range_start = 0;
+
339  uint32_t init_range_end = 0;
+
340  const bool has_init_range =
+
341  GetInitRangeStartAndEnd(&init_range_start, &init_range_end);
342 
-
343  uint32_t init_range_start = 0;
-
344  uint32_t init_range_end = 0;
-
345  const bool has_init_range =
-
346  GetInitRangeStartAndEnd(&init_range_start, &init_range_end);
+
343  uint32_t index_range_start = 0;
+
344  uint32_t index_range_end = 0;
+
345  const bool has_index_range =
+
346  GetIndexRangeStartAndEnd(&index_range_start, &index_range_end);
347 
-
348  uint32_t index_range_start = 0;
-
349  uint32_t index_range_end = 0;
-
350  const bool has_index_range =
-
351  GetIndexRangeStartAndEnd(&index_range_start, &index_range_end);
-
352 
-
353  const float duration_seconds = static_cast<float>(segmenter_->GetDuration());
-
354 
-
355  const int64_t file_size =
-
356  File::GetFileSize(options().output_file_name.c_str());
-
357  if (file_size <= 0) {
-
358  LOG(ERROR) << "Invalid file size: " << file_size;
-
359  return;
-
360  }
-
361 
-
362  muxer_listener()->OnMediaEnd(has_init_range,
-
363  init_range_start,
-
364  init_range_end,
-
365  has_index_range,
-
366  index_range_start,
-
367  index_range_end,
-
368  duration_seconds,
-
369  file_size);
-
370 }
-
371 
-
372 uint64_t MP4Muxer::IsoTimeNow() {
-
373  // Time in seconds from Jan. 1, 1904 to epoch time, i.e. Jan. 1, 1970.
-
374  const uint64_t kIsomTimeOffset = 2082844800l;
-
375  return kIsomTimeOffset +
-
376  (clock() ? clock()->Now() : base::Time::Now()).ToDoubleT();
-
377 }
-
378 
-
379 } // namespace mp4
-
380 } // namespace media
-
381 } // namespace edash_packager
+
348  const float duration_seconds = static_cast<float>(segmenter_->GetDuration());
+
349 
+
350  const int64_t file_size =
+
351  File::GetFileSize(options().output_file_name.c_str());
+
352  if (file_size <= 0) {
+
353  LOG(ERROR) << "Invalid file size: " << file_size;
+
354  return;
+
355  }
+
356 
+
357  muxer_listener()->OnMediaEnd(has_init_range,
+
358  init_range_start,
+
359  init_range_end,
+
360  has_index_range,
+
361  index_range_start,
+
362  index_range_end,
+
363  duration_seconds,
+
364  file_size);
+
365 }
+
366 
+
367 uint64_t MP4Muxer::IsoTimeNow() {
+
368  // Time in seconds from Jan. 1, 1904 to epoch time, i.e. Jan. 1, 1970.
+
369  const uint64_t kIsomTimeOffset = 2082844800l;
+
370  return kIsomTimeOffset +
+
371  (clock() ? clock()->Now() : base::Time::Now()).ToDoubleT();
+
372 }
+
373 
+
374 } // namespace mp4
+
375 } // namespace media
+
376 } // namespace edash_packager
MP4Muxer(const MuxerOptions &options)
Create a MP4Muxer object from MuxerOptions.
Definition: mp4_muxer.cc:87
@@ -477,7 +472,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d8e/container__names_8cc_source.html b/docs/da/d8e/container__names_8cc_source.html index e7c72fc68f..0a92b7fb49 100644 --- a/docs/da/d8e/container__names_8cc_source.html +++ b/docs/da/d8e/container__names_8cc_source.html @@ -1835,7 +1835,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d95/classedash__packager_1_1media_1_1MkvWriter-members.html b/docs/da/d95/classedash__packager_1_1media_1_1MkvWriter-members.html index 7ea474b30e..507c270b15 100644 --- a/docs/da/d95/classedash__packager_1_1media_1_1MkvWriter-members.html +++ b/docs/da/d95/classedash__packager_1_1media_1_1MkvWriter-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/d99/classedash__packager_1_1media_1_1webm_1_1Encryptor-members.html b/docs/da/d99/classedash__packager_1_1media_1_1webm_1_1Encryptor-members.html index 57c60ec23c..512e6d0323 100644 --- a/docs/da/d99/classedash__packager_1_1media_1_1webm_1_1Encryptor-members.html +++ b/docs/da/d99/classedash__packager_1_1media_1_1webm_1_1Encryptor-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html b/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html index 830c0a88a9..489b2c9052 100644 --- a/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html +++ b/docs/da/db0/structedash__packager_1_1media_1_1mp4_1_1SoundMediaHeader.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/da/dc3/status_8cc_source.html b/docs/da/dc3/status_8cc_source.html index a4fde5ea1b..1ca8370b12 100644 --- a/docs/da/dc3/status_8cc_source.html +++ b/docs/da/dc3/status_8cc_source.html @@ -168,7 +168,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dcb/es__descriptor_8h_source.html b/docs/da/dcb/es__descriptor_8h_source.html index a3502f09b3..af5c74197c 100644 --- a/docs/da/dcb/es__descriptor_8h_source.html +++ b/docs/da/dcb/es__descriptor_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd0/webm__info__parser_8h_source.html b/docs/da/dd0/webm__info__parser_8h_source.html index 4c186ca1fa..7f7f6b0093 100644 --- a/docs/da/dd0/webm__info__parser_8h_source.html +++ b/docs/da/dd0/webm__info__parser_8h_source.html @@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/dd1/fragmenter_8h_source.html b/docs/da/dd1/fragmenter_8h_source.html index f75a231551..4b065fdd23 100644 --- a/docs/da/dd1/fragmenter_8h_source.html +++ b/docs/da/dd1/fragmenter_8h_source.html @@ -197,7 +197,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/de2/mock__mpd__builder_8cc_source.html b/docs/da/de2/mock__mpd__builder_8cc_source.html index 67a2970e2d..9598234c90 100644 --- a/docs/da/de2/mock__mpd__builder_8cc_source.html +++ b/docs/da/de2/mock__mpd__builder_8cc_source.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html b/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html index ac8fc50486..759704b283 100644 --- a/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html +++ b/docs/da/de4/classedash__packager_1_1media_1_1AudioTimestampHelper.html @@ -131,7 +131,7 @@ int64_t GetFramesToTarget< diff --git a/docs/da/df0/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter-members.html b/docs/da/df0/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter-members.html index 2add8d2866..25f2e59d23 100644 --- a/docs/da/df0/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter-members.html +++ b/docs/da/df0/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/da/df4/aes__decryptor_8cc_source.html b/docs/da/df4/aes__decryptor_8cc_source.html index b7710f051a..887c2fb52a 100644 --- a/docs/da/df4/aes__decryptor_8cc_source.html +++ b/docs/da/df4/aes__decryptor_8cc_source.html @@ -251,11 +251,11 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
bool SetIv(const std::vector< uint8_t > &iv) override
bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
AesCbcDecryptor(CbcPaddingScheme padding_scheme, bool chain_across_calls)
-
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:59
+
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:60
diff --git a/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html b/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html index 956f10d84d..c052ace23b 100644 --- a/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html +++ b/docs/da/dfe/structedash__packager_1_1media_1_1mp4_1_1CompositionOffset.html @@ -112,7 +112,7 @@ int64_t sample_offset< diff --git a/docs/db/d01/avc__decoder__configuration_8cc_source.html b/docs/db/d01/avc__decoder__configuration_8cc_source.html index 22617bf521..31b9550059 100644 --- a/docs/db/d01/avc__decoder__configuration_8cc_source.html +++ b/docs/db/d01/avc__decoder__configuration_8cc_source.html @@ -203,7 +203,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html b/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html index 501c93796c..0559cf55d1 100644 --- a/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html +++ b/docs/db/d01/classedash__packager_1_1media_1_1mp4_1_1SyncSampleIterator.html @@ -177,7 +177,7 @@ Public Member Functions diff --git a/docs/db/d09/namespaceedash__packager.html b/docs/db/d09/namespaceedash__packager.html index 1a6d1f30af..4a9d906825 100644 --- a/docs/db/d09/namespaceedash__packager.html +++ b/docs/db/d09/namespaceedash__packager.html @@ -559,7 +559,7 @@ const char kEncryptedMp4Va diff --git a/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html b/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html index f1294f9934..d0ba4fed38 100644 --- a/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html +++ b/docs/db/d11/classedash__packager_1_1media_1_1ContentEncoding-members.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html b/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html index 2e437a4994..6b205b3a21 100644 --- a/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html +++ b/docs/db/d15/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html b/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html index bf160f3d86..b505841b4b 100644 --- a/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html +++ b/docs/db/d23/classedash__packager_1_1media_1_1WebMTracksParser.html @@ -225,7 +225,7 @@ The number of bytes parsed on success. diff --git a/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html b/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html index 3be4016a61..88609bd4a0 100644 --- a/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html +++ b/docs/db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html @@ -412,7 +412,7 @@ bool is_keyframe () co diff --git a/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html b/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html index d6deac05ca..20405eea13 100644 --- a/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html +++ b/docs/db/d2e/classedash__packager_1_1MockMpdBuilder.html @@ -153,7 +153,7 @@ Additional Inherited Members diff --git a/docs/db/d31/track__run__iterator_8cc_source.html b/docs/db/d31/track__run__iterator_8cc_source.html index 818cf2e869..a36a37c68b 100644 --- a/docs/db/d31/track__run__iterator_8cc_source.html +++ b/docs/db/d31/track__run__iterator_8cc_source.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
8 #include <limits>
9 
10 #include "packager/media/base/buffer_reader.h"
-
11 #include "packager/media/base/encryption_modes.h"
+
11 #include "packager/media/base/fourccs.h"
12 #include "packager/media/base/rcheck.h"
13 #include "packager/media/formats/mp4/chunk_info_iterator.h"
14 #include "packager/media/formats/mp4/composition_offset_iterator.h"
@@ -689,29 +689,15 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
600 
601  FourCC protection_scheme = is_audio() ? audio_description().sinf.type.type
602  : video_description().sinf.type.type;
-
603  EncryptionMode decryption_mode;
-
604  switch (protection_scheme) {
-
605  case FOURCC_cenc:
-
606  decryption_mode = kEncryptionModeAesCtr;
-
607  break;
-
608  case FOURCC_cbc1:
-
609  decryption_mode = kEncryptionModeAesCbc;
-
610  break;
-
611  default:
-
612  LOG(ERROR) << "Unsupported protection scheme.";
-
613  return scoped_ptr<DecryptConfig>();
-
614  }
-
615 
-
616  return scoped_ptr<DecryptConfig>(new DecryptConfig(
-
617  track_encryption().default_kid,
-
618  sample_encryption_entry.initialization_vector,
-
619  sample_encryption_entry.subsamples,
-
620  decryption_mode));
-
621 }
-
622 
-
623 } // namespace mp4
-
624 } // namespace media
-
625 } // namespace edash_packager
+
603  return scoped_ptr<DecryptConfig>(
+
604  new DecryptConfig(track_encryption().default_kid,
+
605  sample_encryption_entry.initialization_vector,
+
606  sample_encryption_entry.subsamples, protection_scheme));
+
607 }
+
608 
+
609 } // namespace mp4
+
610 } // namespace media
+
611 } // namespace edash_packager
const VideoSampleEntry & video_description() const
Only valid if is_video() is true.
@@ -763,7 +749,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html b/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html index 87cb498387..faf1333f33 100644 --- a/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html +++ b/docs/db/d44/structedash__packager_1_1media_1_1mp4_1_1DataReference-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d45/mpd__notify__muxer__listener_8h_source.html b/docs/db/d45/mpd__notify__muxer__listener_8h_source.html index 22f7ca0281..451c8ebda6 100644 --- a/docs/db/d45/mpd__notify__muxer__listener_8h_source.html +++ b/docs/db/d45/mpd__notify__muxer__listener_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html b/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html index 0ffd6a4e99..4a31d971bb 100644 --- a/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html +++ b/docs/db/d4e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi.html @@ -147,7 +147,7 @@ Additional Inherited Members diff --git a/docs/db/d51/mp2t__media__parser_8h_source.html b/docs/db/d51/mp2t__media__parser_8h_source.html index fa75bdec00..b35fed8521 100644 --- a/docs/db/d51/mp2t__media__parser_8h_source.html +++ b/docs/db/d51/mp2t__media__parser_8h_source.html @@ -193,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d51/two__pass__single__segment__segmenter_8h_source.html b/docs/db/d51/two__pass__single__segment__segmenter_8h_source.html index ee26ef8349..ddeb00e8ff 100644 --- a/docs/db/d51/two__pass__single__segment__segmenter_8h_source.html +++ b/docs/db/d51/two__pass__single__segment__segmenter_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d52/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo-members.html b/docs/db/d52/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo-members.html index 2c3e8a28d8..86e8810f55 100644 --- a/docs/db/d52/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo-members.html +++ b/docs/db/d52/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html b/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html index 5fecb3a8eb..8b50bdaacb 100644 --- a/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html +++ b/docs/db/d56/classedash__packager_1_1SimpleMpdNotifier.html @@ -471,7 +471,7 @@ class SimpleMpdNotifierTes diff --git a/docs/db/d5a/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html b/docs/db/d5a/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html index f36d374bb3..6569ec8cd5 100644 --- a/docs/db/d5a/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html +++ b/docs/db/d5a/structedash__packager_1_1media_1_1mp4_1_1SampleEncryptionEntry-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html b/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html index 8d501b7447..46361b6a12 100644 --- a/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html +++ b/docs/db/d5b/classedash__packager_1_1media_1_1HEVCDecoderConfiguration-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d60/mpd__options_8h_source.html b/docs/db/d60/mpd__options_8h_source.html index 1a82098632..ea06673788 100644 --- a/docs/db/d60/mpd__options_8h_source.html +++ b/docs/db/d60/mpd__options_8h_source.html @@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html b/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html index 2bdb82f06a..9373196296 100644 --- a/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html +++ b/docs/db/d61/classedash__packager_1_1media_1_1mp4_1_1SingleSegmentSegmenter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); GetIndexRange(size_t *offset, size_t *size) overrideedash_packager::media::mp4::SingleSegmentSegmentervirtual GetInitRange(size_t *offset, size_t *size) overrideedash_packager::media::mp4::SingleSegmentSegmentervirtual GetReferenceTimeScale() const (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenter - Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)edash_packager::media::mp4::Segmenter + Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)edash_packager::media::mp4::Segmenter moov() (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenterinlineprotected muxer_listener() (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenterinlineprotected options() const (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenterinlineprotected @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d64/webvtt__media__parser_8h_source.html b/docs/db/d64/webvtt__media__parser_8h_source.html index 690ca51af3..e32486e669 100644 --- a/docs/db/d64/webvtt__media__parser_8h_source.html +++ b/docs/db/d64/webvtt__media__parser_8h_source.html @@ -181,7 +181,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html b/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html index aa081b8553..f99d5f77dc 100644 --- a/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html +++ b/docs/db/d69/classedash__packager_1_1media_1_1mp2t_1_1AdtsHeader.html @@ -336,7 +336,7 @@ Static Public Member Functions diff --git a/docs/db/d6b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html b/docs/db/d6b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html index 8cbb29c3d3..10ae9e1cc9 100644 --- a/docs/db/d6b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html +++ b/docs/db/d6b/structedash__packager_1_1media_1_1mp4_1_1VTTAdditionalTextBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html b/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html index 209c4eea76..fa97e551af 100644 --- a/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html +++ b/docs/db/d6c/classedash__packager_1_1media_1_1mp4_1_1BoxReader.html @@ -497,7 +497,7 @@ template<typename T > diff --git a/docs/db/d71/http__key__fetcher_8h_source.html b/docs/db/d71/http__key__fetcher_8h_source.html index f66c7aac4a..fdf3ffb0d9 100644 --- a/docs/db/d71/http__key__fetcher_8h_source.html +++ b/docs/db/d71/http__key__fetcher_8h_source.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html b/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html index 46ddd6dd76..f49efc2f98 100644 --- a/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html +++ b/docs/db/d79/structedash__packager_1_1media_1_1mp4_1_1EditListEntry-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d7b/structedash__packager_1_1media_1_1H264Pps.html b/docs/db/d7b/structedash__packager_1_1media_1_1H264Pps.html index 56063a3106..350696661c 100644 --- a/docs/db/d7b/structedash__packager_1_1media_1_1H264Pps.html +++ b/docs/db/d7b/structedash__packager_1_1media_1_1H264Pps.html @@ -167,7 +167,7 @@ int second_chroma_qp_index diff --git a/docs/db/d7e/muxer__options_8cc_source.html b/docs/db/d7e/muxer__options_8cc_source.html index 78d7a0c1db..80ac737953 100644 --- a/docs/db/d7e/muxer__options_8cc_source.html +++ b/docs/db/d7e/muxer__options_8cc_source.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html b/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html index e898107e8a..49985c58f7 100644 --- a/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html +++ b/docs/db/d89/structedash__packager_1_1media_1_1mp4_1_1CompactSampleSize.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/db/d8f/mp4__muxer_8h_source.html b/docs/db/d8f/mp4__muxer_8h_source.html index b344fc9d5e..7c68b7dfe4 100644 --- a/docs/db/d8f/mp4__muxer_8h_source.html +++ b/docs/db/d8f/mp4__muxer_8h_source.html @@ -173,7 +173,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d96/wvm__media__parser_8h_source.html b/docs/db/d96/wvm__media__parser_8h_source.html index 1425033354..16d36dca11 100644 --- a/docs/db/d96/wvm__media__parser_8h_source.html +++ b/docs/db/d96/wvm__media__parser_8h_source.html @@ -363,7 +363,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html b/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html index fb69fa01e5..97d50ac3c2 100644 --- a/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html +++ b/docs/db/d97/classedash__packager_1_1media_1_1WebMContentEncodingsClient-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da0/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo.html b/docs/db/da0/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo.html index 2535e48aa3..98a4c196fe 100644 --- a/docs/db/da0/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo.html +++ b/docs/db/da0/classedash__packager_1_1media_1_1ProtectionSystemSpecificInfo.html @@ -222,7 +222,7 @@ Static Public Member Functions diff --git a/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html b/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html index c01010eaae..c3a4514fe2 100644 --- a/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html +++ b/docs/db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html @@ -365,7 +365,7 @@ The number of bytes parsed on success. diff --git a/docs/db/da4/classBandwidthEstimator-members.html b/docs/db/da4/classBandwidthEstimator-members.html index d8dd410a4f..260a5e1a7b 100644 --- a/docs/db/da4/classBandwidthEstimator-members.html +++ b/docs/db/da4/classBandwidthEstimator-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html b/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html index 8e70e60f5f..c34f54beb0 100644 --- a/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html +++ b/docs/db/da4/classedash__packager_1_1media_1_1WidevineKeySource.html @@ -550,7 +550,7 @@ static std::string  diff --git a/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html b/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html index 184695d546..8f51e5e961 100644 --- a/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html +++ b/docs/db/da5/structedash__packager_1_1media_1_1mp4_1_1CencSampleEncryptionInfoEntry-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/da6/memory__file_8h_source.html b/docs/db/da6/memory__file_8h_source.html index e68e84103b..3704a292d0 100644 --- a/docs/db/da6/memory__file_8h_source.html +++ b/docs/db/da6/memory__file_8h_source.html @@ -154,7 +154,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html b/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html index f1a2f6f537..2f94993011 100644 --- a/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html +++ b/docs/db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html @@ -299,7 +299,7 @@ template<typename T > diff --git a/docs/db/db8/structedash__packager_1_1media_1_1mp4_1_1ID3v2-members.html b/docs/db/db8/structedash__packager_1_1media_1_1mp4_1_1ID3v2-members.html index c7d6ddc669..38df8af7c0 100644 --- a/docs/db/db8/structedash__packager_1_1media_1_1mp4_1_1ID3v2-members.html +++ b/docs/db/db8/structedash__packager_1_1media_1_1mp4_1_1ID3v2-members.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html b/docs/db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html index afdd8a61b7..75983c7076 100644 --- a/docs/db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html +++ b/docs/db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html @@ -152,7 +152,7 @@ int64_t  diff --git a/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html b/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html index b47d1439f1..aaf4b00543 100644 --- a/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html +++ b/docs/db/dc8/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPmt-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd1/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption-members.html b/docs/db/dd1/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption-members.html index 748d6a3d3a..904e79679a 100644 --- a/docs/db/dd1/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption-members.html +++ b/docs/db/dd1/structedash__packager_1_1media_1_1mp4_1_1SampleEncryption-members.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd2/chunk__info__iterator_8h_source.html b/docs/db/dd2/chunk__info__iterator_8h_source.html index 1f9b97533b..5d2bd0d530 100644 --- a/docs/db/dd2/chunk__info__iterator_8h_source.html +++ b/docs/db/dd2/chunk__info__iterator_8h_source.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dd9/sync__sample__iterator_8h_source.html b/docs/db/dd9/sync__sample__iterator_8h_source.html index 01fe9225f0..f2eebf9c10 100644 --- a/docs/db/dd9/sync__sample__iterator_8h_source.html +++ b/docs/db/dd9/sync__sample__iterator_8h_source.html @@ -140,7 +140,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dde/h265__parser_8cc_source.html b/docs/db/dde/h265__parser_8cc_source.html index e46f7373c1..a341af2e46 100644 --- a/docs/db/dde/h265__parser_8cc_source.html +++ b/docs/db/dde/h265__parser_8cc_source.html @@ -948,7 +948,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/de4/classedash__packager_1_1AdaptationSet.html b/docs/db/de4/classedash__packager_1_1AdaptationSet.html index b2b74041cc..2e87b9046c 100644 --- a/docs/db/de4/classedash__packager_1_1AdaptationSet.html +++ b/docs/db/de4/classedash__packager_1_1AdaptationSet.html @@ -582,7 +582,7 @@ template<MpdBuilder::MpdType type> diff --git a/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html b/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html index d36f62d06f..a06a7262e9 100644 --- a/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html +++ b/docs/db/de9/classedash__packager_1_1media_1_1StreamDescriptorCompareFn-members.html @@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dec/audio__timestamp__helper_8cc_source.html b/docs/db/dec/audio__timestamp__helper_8cc_source.html index e3d114b6b2..f6894266a2 100644 --- a/docs/db/dec/audio__timestamp__helper_8cc_source.html +++ b/docs/db/dec/audio__timestamp__helper_8cc_source.html @@ -165,7 +165,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dee/pes__packet_8cc_source.html b/docs/db/dee/pes__packet_8cc_source.html index 4417a25219..c91a4f0175 100644 --- a/docs/db/dee/pes__packet_8cc_source.html +++ b/docs/db/dee/pes__packet_8cc_source.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html b/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html index 1860a97934..228859c384 100644 --- a/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html +++ b/docs/db/df2/classedash__packager_1_1media_1_1mp2t_1_1EsParser.html @@ -144,7 +144,7 @@ uint32_t pid () diff --git a/docs/db/df6/muxer_8h_source.html b/docs/db/df6/muxer_8h_source.html index 41d85d60c0..61bda27f56 100644 --- a/docs/db/df6/muxer_8h_source.html +++ b/docs/db/df6/muxer_8h_source.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
14 #include "packager/base/memory/ref_counted.h"
15 #include "packager/base/memory/scoped_ptr.h"
16 #include "packager/base/time/clock.h"
-
17 #include "packager/media/base/encryption_modes.h"
+
17 #include "packager/media/base/fourccs.h"
18 #include "packager/media/base/muxer_options.h"
19 #include "packager/media/base/status.h"
20 #include "packager/media/event/muxer_listener.h"
@@ -121,98 +121,98 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
35  explicit Muxer(const MuxerOptions& options);
36  virtual ~Muxer();
37 
-
48  void SetKeySource(KeySource* encryption_key_source,
-
49  uint32_t max_sd_pixels,
-
50  double clear_lead_in_seconds,
-
51  double crypto_period_duration_in_seconds,
-
52  EncryptionMode encryption_mode);
-
53 
-
55  void AddStream(MediaStream* stream);
-
56 
-
58  Status Run();
-
59 
-
62  void Cancel();
-
63 
-
66  void SetMuxerListener(scoped_ptr<MuxerListener> muxer_listener);
-
67 
-
70  void SetProgressListener(scoped_ptr<ProgressListener> progress_listener);
-
71 
-
72  const std::vector<MediaStream*>& streams() const { return streams_; }
+
50  void SetKeySource(KeySource* encryption_key_source,
+
51  uint32_t max_sd_pixels,
+
52  double clear_lead_in_seconds,
+
53  double crypto_period_duration_in_seconds,
+
54  FourCC protection_scheme);
+
55 
+
57  void AddStream(MediaStream* stream);
+
58 
+
60  Status Run();
+
61 
+
64  void Cancel();
+
65 
+
68  void SetMuxerListener(scoped_ptr<MuxerListener> muxer_listener);
+
69 
+
72  void SetProgressListener(scoped_ptr<ProgressListener> progress_listener);
73 
-
80  void set_clock(base::Clock* clock) {
-
81  clock_ = clock;
-
82  }
-
83 
-
84  protected:
-
85  const MuxerOptions& options() const { return options_; }
-
86  KeySource* encryption_key_source() {
-
87  return encryption_key_source_;
-
88  }
-
89  uint32_t max_sd_pixels() const { return max_sd_pixels_; }
-
90  double clear_lead_in_seconds() const { return clear_lead_in_seconds_; }
-
91  double crypto_period_duration_in_seconds() const {
-
92  return crypto_period_duration_in_seconds_;
-
93  }
-
94  MuxerListener* muxer_listener() { return muxer_listener_.get(); }
-
95  ProgressListener* progress_listener() { return progress_listener_.get(); }
-
96  base::Clock* clock() { return clock_; }
-
97  EncryptionMode encryption_mode() const { return encryption_mode_; }
-
98 
-
99  private:
-
100  friend class MediaStream; // Needed to access AddSample.
-
101 
-
102  // Add new media sample.
-
103  Status AddSample(const MediaStream* stream,
-
104  scoped_refptr<MediaSample> sample);
-
105 
-
106  // Initialize the muxer.
-
107  virtual Status Initialize() = 0;
-
108 
-
109  // Final clean up.
-
110  virtual Status Finalize() = 0;
-
111 
-
112  // AddSample implementation.
-
113  virtual Status DoAddSample(const MediaStream* stream,
-
114  scoped_refptr<MediaSample> sample) = 0;
-
115 
-
116  MuxerOptions options_;
-
117  bool initialized_;
-
118  std::vector<MediaStream*> streams_;
-
119  KeySource* encryption_key_source_;
-
120  uint32_t max_sd_pixels_;
-
121  double clear_lead_in_seconds_;
-
122  double crypto_period_duration_in_seconds_;
-
123  EncryptionMode encryption_mode_;
-
124  bool cancelled_;
-
125 
-
126  scoped_ptr<MuxerListener> muxer_listener_;
-
127  scoped_ptr<ProgressListener> progress_listener_;
-
128  // An external injected clock, can be NULL.
-
129  base::Clock* clock_;
-
130 
-
131  DISALLOW_COPY_AND_ASSIGN(Muxer);
-
132 };
-
133 
-
134 } // namespace media
-
135 } // namespace edash_packager
-
136 
-
137 #endif // MEDIA_BASE_MUXER_H_
-
void SetMuxerListener(scoped_ptr< MuxerListener > muxer_listener)
Definition: muxer.cc:85
+
74  const std::vector<MediaStream*>& streams() const { return streams_; }
+
75 
+
82  void set_clock(base::Clock* clock) {
+
83  clock_ = clock;
+
84  }
+
85 
+
86  protected:
+
87  const MuxerOptions& options() const { return options_; }
+
88  KeySource* encryption_key_source() {
+
89  return encryption_key_source_;
+
90  }
+
91  uint32_t max_sd_pixels() const { return max_sd_pixels_; }
+
92  double clear_lead_in_seconds() const { return clear_lead_in_seconds_; }
+
93  double crypto_period_duration_in_seconds() const {
+
94  return crypto_period_duration_in_seconds_;
+
95  }
+
96  MuxerListener* muxer_listener() { return muxer_listener_.get(); }
+
97  ProgressListener* progress_listener() { return progress_listener_.get(); }
+
98  base::Clock* clock() { return clock_; }
+
99  FourCC protection_scheme() const { return protection_scheme_; }
+
100 
+
101  private:
+
102  friend class MediaStream; // Needed to access AddSample.
+
103 
+
104  // Add new media sample.
+
105  Status AddSample(const MediaStream* stream,
+
106  scoped_refptr<MediaSample> sample);
+
107 
+
108  // Initialize the muxer.
+
109  virtual Status Initialize() = 0;
+
110 
+
111  // Final clean up.
+
112  virtual Status Finalize() = 0;
+
113 
+
114  // AddSample implementation.
+
115  virtual Status DoAddSample(const MediaStream* stream,
+
116  scoped_refptr<MediaSample> sample) = 0;
+
117 
+
118  MuxerOptions options_;
+
119  bool initialized_;
+
120  std::vector<MediaStream*> streams_;
+
121  KeySource* encryption_key_source_;
+
122  uint32_t max_sd_pixels_;
+
123  double clear_lead_in_seconds_;
+
124  double crypto_period_duration_in_seconds_;
+
125  FourCC protection_scheme_;
+
126  bool cancelled_;
+
127 
+
128  scoped_ptr<MuxerListener> muxer_listener_;
+
129  scoped_ptr<ProgressListener> progress_listener_;
+
130  // An external injected clock, can be NULL.
+
131  base::Clock* clock_;
+
132 
+
133  DISALLOW_COPY_AND_ASSIGN(Muxer);
+
134 };
+
135 
+
136 } // namespace media
+
137 } // namespace edash_packager
+
138 
+
139 #endif // MEDIA_BASE_MUXER_H_
+
void SetMuxerListener(scoped_ptr< MuxerListener > muxer_listener)
Definition: muxer.cc:86
+
void SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)
Definition: muxer.cc:29
-
void set_clock(base::Clock *clock)
Definition: muxer.h:80
-
void SetProgressListener(scoped_ptr< ProgressListener > progress_listener)
Definition: muxer.cc:89
-
void SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)
Definition: muxer.cc:28
+
void set_clock(base::Clock *clock)
Definition: muxer.h:82
+
void SetProgressListener(scoped_ptr< ProgressListener > progress_listener)
Definition: muxer.cc:90
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
-
Status Run()
Drive the remuxing from muxer side (pull).
Definition: muxer.cc:47
-
void AddStream(MediaStream *stream)
Add video/audio stream.
Definition: muxer.cc:41
+
Status Run()
Drive the remuxing from muxer side (pull).
Definition: muxer.cc:48
+
void AddStream(MediaStream *stream)
Add video/audio stream.
Definition: muxer.cc:42
- +
This structure contains the list of configuration options for Muxer.
Definition: muxer_options.h:18
diff --git a/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html b/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html index 057eabc642..ffd4d1ea0c 100644 --- a/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html +++ b/docs/db/df7/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPsi-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html b/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html index 463a1b91dd..e02e00c084 100644 --- a/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html +++ b/docs/db/df7/structedash__packager_1_1media_1_1mp4_1_1VideoMediaHeader.html @@ -191,7 +191,7 @@ Additional Inherited Members diff --git a/docs/db/dfb/mpd__utils_8cc_source.html b/docs/db/dfb/mpd__utils_8cc_source.html index e0175c8d27..8d33aa852f 100644 --- a/docs/db/dfb/mpd__utils_8cc_source.html +++ b/docs/db/dfb/mpd__utils_8cc_source.html @@ -443,7 +443,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html index 6b6a8ab1d8..49183f5928 100644 --- a/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html +++ b/docs/db/dfc/mpd__notify__muxer__listener_8cc_source.html @@ -259,7 +259,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html b/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html index 8ea80fa998..47fc5e5608 100644 --- a/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html +++ b/docs/dc/d05/classedash__packager_1_1xml_1_1RepresentationXmlNode.html @@ -311,7 +311,7 @@ Additional Inherited Members diff --git a/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html b/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html index 40eaf1ac0a..a84deb0820 100644 --- a/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html +++ b/docs/dc/d0c/classedash__packager_1_1media_1_1WebMVideoClient.html @@ -190,7 +190,7 @@ An empty scoped_refptr if there was unexpected values in the provided parameters diff --git a/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html b/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html index 529cac7137..72a2d7f8e1 100644 --- a/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html +++ b/docs/dc/d0d/structedash__packager_1_1media_1_1mp4_1_1EditListEntry.html @@ -118,7 +118,7 @@ int16_t media_rate_fractio diff --git a/docs/dc/d19/box_8h_source.html b/docs/dc/d19/box_8h_source.html index 0c54d3f969..481487ed50 100644 --- a/docs/dc/d19/box_8h_source.html +++ b/docs/dc/d19/box_8h_source.html @@ -184,7 +184,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html index 2dc2be7d8e..432bb97dae 100644 --- a/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html +++ b/docs/dc/d22/dash__iop__mpd__notifier_8cc_source.html @@ -397,7 +397,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html b/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html index 871f83e082..c21539322c 100644 --- a/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html +++ b/docs/dc/d23/classedash__packager_1_1MockMpdNotifier-members.html @@ -115,7 +115,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html b/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html index 8347680794..577842dd12 100644 --- a/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html +++ b/docs/dc/d2f/classedash__packager_1_1media_1_1KeySource-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html b/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html index 60d231ad0c..7cbf2912b5 100644 --- a/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html +++ b/docs/dc/d31/classedash__packager_1_1media_1_1ClusterBuilder-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html b/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html index cd6444af47..9e10307934 100644 --- a/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html +++ b/docs/dc/d35/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html b/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html index ccb26e9297..6489381b75 100644 --- a/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html +++ b/docs/dc/d3b/fixed__key__encryption__flags_8cc_source.html @@ -157,7 +157,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3c/webm__cluster__parser_8h_source.html b/docs/dc/d3c/webm__cluster__parser_8h_source.html index ee0e07b91a..c94969fd8c 100644 --- a/docs/dc/d3c/webm__cluster__parser_8h_source.html +++ b/docs/dc/d3c/webm__cluster__parser_8h_source.html @@ -298,7 +298,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d3f/key__source_8h_source.html b/docs/dc/d3f/key__source_8h_source.html index b87d9ae21c..e0e5228c33 100644 --- a/docs/dc/d3f/key__source_8h_source.html +++ b/docs/dc/d3f/key__source_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html b/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html index 4e2290eb75..e7500daf47 100644 --- a/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html +++ b/docs/dc/d41/classedash__packager_1_1xml_1_1RepresentationXmlNode-members.html @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html b/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html index 393c7becbe..6a591af2b7 100644 --- a/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html +++ b/docs/dc/d44/classedash__packager_1_1xml_1_1XmlNode-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html b/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html index dc9bc8ae93..7b76545670 100644 --- a/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html +++ b/docs/dc/d46/classedash__packager_1_1media_1_1Cluster-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html b/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html index a5afe4c66c..fdf8560370 100644 --- a/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html +++ b/docs/dc/d48/classedash__packager_1_1media_1_1MediaParser.html @@ -298,7 +298,7 @@ Public Member Functions diff --git a/docs/dc/d4a/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html b/docs/dc/d4a/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html index 79de1b1d23..5fdbeacad0 100644 --- a/docs/dc/d4a/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html +++ b/docs/dc/d4a/structedash__packager_1_1media_1_1mp4_1_1WebVTTConfigurationBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d52/decoding__time__iterator_8h_source.html b/docs/dc/d52/decoding__time__iterator_8h_source.html index 5a9c80e7a7..9498fd5490 100644 --- a/docs/dc/d52/decoding__time__iterator_8h_source.html +++ b/docs/dc/d52/decoding__time__iterator_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d53/webm_2segmenter_8cc_source.html b/docs/dc/d53/webm_2segmenter_8cc_source.html index 9f94a57e33..46a8b9a404 100644 --- a/docs/dc/d53/webm_2segmenter_8cc_source.html +++ b/docs/dc/d53/webm_2segmenter_8cc_source.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
43 
44 Segmenter::~Segmenter() {}
45 
-
46 Status Segmenter::Initialize(scoped_ptr<MkvWriter> writer,
+
46 Status Segmenter::Initialize(scoped_ptr<MkvWriter> writer,
47  StreamInfo* info,
48  ProgressListener* progress_listener,
49  MuxerListener* muxer_listener,
@@ -516,19 +516,19 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); +
Status Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)
Definition: segmenter.cc:130
Abstract class holds stream information.
Definition: stream_info.h:26
- - + +
std::string packager_version_string
Specify the version string to be embedded in the output files.
Definition: muxer_options.h:71
This class listens to progress updates events.
-
Status AddSample(const MediaStream *stream, scoped_refptr< MediaSample > sample)
Definition: segmenter.cc:268
-
Status Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)
Definition: segmenter.cc:133
+
Status AddSample(const MediaStream *stream, scoped_refptr< MediaSample > sample)
Definition: segmenter.cc:271
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
virtual void OnProgress(double progress)=0
-
void UpdateProgress(uint64_t progress)
Update segmentation progress using ProgressListener.
Definition: segmenter.cc:335
+
void UpdateProgress(uint64_t progress)
Update segmentation progress using ProgressListener.
Definition: segmenter.cc:338
Holds video stream information.
virtual void OnSampleDurationReady(uint32_t sample_duration)=0
@@ -536,7 +536,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html b/docs/dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html index d2bbff1479..6886ab0908 100644 --- a/docs/dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html +++ b/docs/dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html @@ -155,6 +155,12 @@ const AES_KEY * aes_key AES_KEY * mutable_aes_key ()   + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from edash_packager::media::AesCryptor
static bool GenerateRandomIv (FourCC protection_scheme, std::vector< uint8_t > *iv)
 

Detailed Description

Implements pattern-based encryption/decryption.

@@ -316,7 +322,7 @@ AES_KEY * mutable_aes_key<
diff --git a/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html b/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html index db1e5d736a..f6214b8e16 100644 --- a/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html +++ b/docs/dc/d55/structedash__packager_1_1media_1_1H264SEIMessage-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d58/webm__media__parser_8h_source.html b/docs/dc/d58/webm__media__parser_8h_source.html index ea6c55ff85..9b2abdb950 100644 --- a/docs/dc/d58/webm__media__parser_8h_source.html +++ b/docs/dc/d58/webm__media__parser_8h_source.html @@ -179,7 +179,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html b/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html index 48f53f94a8..0d73cc9ccf 100644 --- a/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html +++ b/docs/dc/d73/classedash__packager_1_1media_1_1RequestSigner.html @@ -180,7 +180,7 @@ Protected Member Functions diff --git a/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html b/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html index d520f9a6b0..e462a8a426 100644 --- a/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html +++ b/docs/dc/d7a/classedash__packager_1_1media_1_1mp4_1_1MultiSegmentSegmenter.html @@ -119,8 +119,8 @@ Public Member Functions  Segmenter (const MuxerOptions &options, scoped_ptr< FileType > ftyp, scoped_ptr< Movie > moov)   -Status Initialize (const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode) -  +Status Initialize (const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme) +  Status Finalize ()   Status AddSample (const MediaStream *stream, scoped_refptr< MediaSample > sample) @@ -259,7 +259,7 @@ void set_progress_target diff --git a/docs/dc/d7b/closure__thread_8cc_source.html b/docs/dc/d7b/closure__thread_8cc_source.html index c664d2fa3b..a6125a1c62 100644 --- a/docs/dc/d7b/closure__thread_8cc_source.html +++ b/docs/dc/d7b/closure__thread_8cc_source.html @@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d7b/h264__parser_8cc_source.html b/docs/dc/d7b/h264__parser_8cc_source.html index 24c5b0182d..c13408609f 100644 --- a/docs/dc/d7b/h264__parser_8cc_source.html +++ b/docs/dc/d7b/h264__parser_8cc_source.html @@ -1267,7 +1267,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/d81/classedash__packager_1_1MpdWriter.html b/docs/dc/d81/classedash__packager_1_1MpdWriter.html index 45f0f7b456..0b1a70ba34 100644 --- a/docs/dc/d81/classedash__packager_1_1MpdWriter.html +++ b/docs/dc/d81/classedash__packager_1_1MpdWriter.html @@ -123,7 +123,7 @@ class MpdWriterTest diff --git a/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html b/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html index 0901713408..207b5d2be6 100644 --- a/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html +++ b/docs/dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html @@ -108,11 +108,11 @@ Inheritance diagram for edash_packager::media::mp4::KeyRotationFragmenter: - - + + - - + + @@ -159,12 +159,15 @@ void  - - - - + + + + + + @@ -181,7 +184,7 @@ void 

Public Member Functions

 KeyRotationFragmenter (MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, MuxerListener *muxer_listener, EncryptionMode encryption_mode)
 
 KeyRotationFragmenter (MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, FourCC protection_scheme, MuxerListener *muxer_listener)
 
- Public Member Functions inherited from edash_packager::media::mp4::EncryptingFragmenter
 EncryptingFragmenter (scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, EncryptionMode encryption_mode)
 
 EncryptingFragmenter (scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, FourCC protection_scheme)
 
Status AddSample (scoped_refptr< MediaSample > sample) override
 
Status InitializeFragment (int64_t first_sample_dts) override
- Protected Member Functions inherited from edash_packager::media::mp4::EncryptingFragmenter
Status CreateEncryptor ()
 
-EncryptionKeyencryption_key ()
 
-AesEncryptorencryptor ()
 
+const EncryptionKeyencryption_key () const
 
+AesCryptorencryptor ()
 
+FourCC protection_scheme () const
 
void set_encryption_key (scoped_ptr< EncryptionKey > encryption_key)
 
set_encryption_keyDefinition at line 23 of file key_rotation_fragmenter.h.

Constructor & Destructor Documentation

- +
@@ -230,14 +233,14 @@ void  - - + + - - + + @@ -254,6 +257,7 @@ void  +
set_encryption_key MuxerListenermuxer_listener, FourCC protection_scheme,
EncryptionMode encryption_mode MuxerListenermuxer_listener 
set_encryption_keytrack_typeindicates whether SD key or HD key should be used to encrypt the video content.
crypto_period_durationspecifies crypto period duration in units of the current track's timescale.
clear_timespecifies clear lead duration in units of the current track's timescale.
protection_schemespecifies the protection scheme: 'cenc', 'cens', 'cbc1', 'cbcs'.
muxer_listeneris a pointer to MuxerListener for notifying muxer related events. This may be null.
@@ -301,7 +305,7 @@ void 
set_encryption_key diff --git a/docs/dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html b/docs/dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html index 69d18ef84c..c4c127519a 100644 --- a/docs/dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html +++ b/docs/dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html @@ -107,8 +107,6 @@ Inheritance diagram for edash_packager::media::AesEncryptor: - - @@ -129,6 +127,9 @@ bool 

Public Member Functions

bool InitializeWithRandomIv (const std::vector< uint8_t > &key, uint8_t iv_size)
 
bool InitializeWithIv (const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
 
- Public Member Functions inherited from edash_packager::media::AesCryptor
Crypt (const std:
+ + + @@ -180,37 +181,7 @@ AES_KEY *  diff --git a/docs/dc/dbf/box__buffer_8h_source.html b/docs/dc/dbf/box__buffer_8h_source.html index 60c812c38f..209c24ec88 100644 --- a/docs/dc/dbf/box__buffer_8h_source.html +++ b/docs/dc/dbf/box__buffer_8h_source.html @@ -294,7 +294,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html b/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html index 9dbce0d7f8..e2301820fc 100644 --- a/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html +++ b/docs/dc/dc6/classedash__packager_1_1media_1_1mp4_1_1AACAudioSpecificConfig.html @@ -329,7 +329,7 @@ static const size_t 

Additional Inherited Members

- Static Public Member Functions inherited from edash_packager::media::AesCryptor
static bool GenerateRandomIv (FourCC protection_scheme, std::vector< uint8_t > *iv)
 
- Protected Member Functions inherited from edash_packager::media::AesCryptor
void set_iv (const std::vector< uint8_t > &iv)
mutable_aes_key<

Implements edash_packager::media::AesCryptor.

-

Definition at line 54 of file aes_encryptor.cc.

- - - - -
-
- - - - - - - - - - - - - - - - - - -
bool edash_packager::media::AesEncryptor::InitializeWithRandomIv (const std::vector< uint8_t > & key,
uint8_t iv_size 
)
-
-

Initialize the encryptor with specified key and a random generated IV of the specified size.

-
Returns
true on successful initialization, false otherwise.
- -

Definition at line 43 of file aes_encryptor.cc.

+

Definition at line 41 of file aes_encryptor.cc.

@@ -221,7 +192,7 @@ AES_KEY * 
mutable_aes_key< diff --git a/docs/dc/d96/structedash__packager_1_1media_1_1H265Sps.html b/docs/dc/d96/structedash__packager_1_1media_1_1H265Sps.html index 0cbf094480..edfa381f65 100644 --- a/docs/dc/d96/structedash__packager_1_1media_1_1H265Sps.html +++ b/docs/dc/d96/structedash__packager_1_1media_1_1H265Sps.html @@ -250,7 +250,7 @@ bool strong_intra_smoothin diff --git a/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html b/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html index 14b25fde39..ee6ff8b40a 100644 --- a/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html +++ b/docs/dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html b/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html index f24e953554..dc8d10697a 100644 --- a/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html +++ b/docs/dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html @@ -182,7 +182,7 @@ Additional Inherited Members
diff --git a/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html b/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html index e1b733f687..08baa2639c 100644 --- a/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html +++ b/docs/dc/dc8/classedash__packager_1_1media_1_1WebMWebVTTParser.html @@ -111,7 +111,7 @@ static void  diff --git a/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html b/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html index 961df9f39e..9bed9433fd 100644 --- a/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html +++ b/docs/dc/dd4/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
diff --git a/docs/dc/dd9/rsa__key_8cc_source.html b/docs/dc/dd9/rsa__key_8cc_source.html index 00a4352a17..6b0407f154 100644 --- a/docs/dc/dd9/rsa__key_8cc_source.html +++ b/docs/dc/dd9/rsa__key_8cc_source.html @@ -350,7 +350,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html b/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html index e1050f4297..bf39dc604c 100644 --- a/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html +++ b/docs/dc/ddf/classedash__packager_1_1media_1_1WebMInfoParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
diff --git a/docs/dc/ddf/udp__file__posix_8cc_source.html b/docs/dc/ddf/udp__file__posix_8cc_source.html index 67be837219..5914c45695 100644 --- a/docs/dc/ddf/udp__file__posix_8cc_source.html +++ b/docs/dc/ddf/udp__file__posix_8cc_source.html @@ -322,7 +322,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html b/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html index a983867347..0c6c170f44 100644 --- a/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html +++ b/docs/dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html @@ -112,8 +112,8 @@ Public Member Functions  Segmenter (const MuxerOptions &options, scoped_ptr< FileType > ftyp, scoped_ptr< Movie > moov)   -Status Initialize (const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode) -  +Status Initialize (const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme) +  Status Finalize ()   Status AddSample (const MediaStream *stream, scoped_refptr< MediaSample > sample) @@ -203,7 +203,7 @@ void set_progress_target
Returns
OK on success, an error status otherwise.
-

Definition at line 268 of file segmenter.cc.

+

Definition at line 271 of file segmenter.cc.

@@ -222,7 +222,7 @@ void set_progress_targetFinalize the segmenter.

Returns
OK on success, an error status otherwise.
-

Definition at line 242 of file segmenter.cc.

+

Definition at line 245 of file segmenter.cc.

@@ -240,7 +240,7 @@ void set_progress_target
Returns
The total length, in seconds, of segmented media files.
-

Definition at line 326 of file segmenter.cc.

+

Definition at line 329 of file segmenter.cc.

@@ -318,7 +318,7 @@ void set_progress_target - +
@@ -367,8 +367,8 @@ void  - - + + @@ -387,12 +387,13 @@ void  +
set_progress_target EncryptionMode encryption_mode FourCC protection_scheme 
set_progress_targetmax_sd_pixelsspecifies the threshold to determine whether a video track should be considered as SD or HD. If the track has more pixels per frame than max_sd_pixels, it is HD, SD otherwise.
clear_timespecifies clear lead duration in seconds.
crypto_period_durationspecifies crypto period duration in seconds.
protection_schemespecifies the protection scheme: 'senc', 'sens', 'cbc1', 'cbcs'.
Returns
OK on success, an error status otherwise.
-

Definition at line 133 of file segmenter.cc.

+

Definition at line 130 of file segmenter.cc.

@@ -418,7 +419,7 @@ void set_progress_target
Returns
The sample duration in the timescale of the media. Returns 0 if no samples are added yet.
-

Definition at line 99 of file segmenter.h.

+

Definition at line 101 of file segmenter.h.

@@ -429,7 +430,7 @@ void set_progress_target diff --git a/docs/dc/dec/ts__section__pmt_8cc_source.html b/docs/dc/dec/ts__section__pmt_8cc_source.html index 92d459630c..be429eef23 100644 --- a/docs/dc/dec/ts__section__pmt_8cc_source.html +++ b/docs/dc/dec/ts__section__pmt_8cc_source.html @@ -207,7 +207,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html b/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html index 484c6bf32b..895b917430 100644 --- a/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html +++ b/docs/dc/def/structedash__packager_1_1media_1_1mp4_1_1DataInformation-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html b/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html index 9bd91ba195..326fd0e6fe 100644 --- a/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html +++ b/docs/dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html @@ -119,7 +119,7 @@ bool DecryptSampleBuffer diff --git a/docs/dc/df8/closure__thread_8h_source.html b/docs/dc/df8/closure__thread_8h_source.html index 6b1fd0d006..2bd42aeaea 100644 --- a/docs/dc/df8/closure__thread_8h_source.html +++ b/docs/dc/df8/closure__thread_8h_source.html @@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html b/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html index b82741e4af..8e8c9c6933 100644 --- a/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html +++ b/docs/dc/dfa/classedash__packager_1_1media_1_1ThreadedIoFile.html @@ -438,7 +438,7 @@ Additional Inherited Members diff --git a/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html b/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html index 179724aea5..3a5919ebde 100644 --- a/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html +++ b/docs/dc/dfc/classedash__packager_1_1media_1_1Muxer-members.html @@ -99,16 +99,16 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); clock() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected crypto_period_duration_in_seconds() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected encryption_key_source() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - encryption_mode() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - max_sd_pixels() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - MediaStream (defined in edash_packager::media::Muxer)edash_packager::media::Muxerfriend - Muxer(const MuxerOptions &options) (defined in edash_packager::media::Muxer)edash_packager::media::Muxerexplicit - muxer_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - options() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - progress_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + max_sd_pixels() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + MediaStream (defined in edash_packager::media::Muxer)edash_packager::media::Muxerfriend + Muxer(const MuxerOptions &options) (defined in edash_packager::media::Muxer)edash_packager::media::Muxerexplicit + muxer_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + options() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + progress_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + protection_scheme() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected Run()edash_packager::media::Muxer set_clock(base::Clock *clock)edash_packager::media::Muxerinline - SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)edash_packager::media::Muxer + SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)edash_packager::media::Muxer SetMuxerListener(scoped_ptr< MuxerListener > muxer_listener)edash_packager::media::Muxer SetProgressListener(scoped_ptr< ProgressListener > progress_listener)edash_packager::media::Muxer streams() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinline @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d0c/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html b/docs/dd/d0c/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html index 4f88cbb82f..b2f4133309 100644 --- a/docs/dd/d0c/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html +++ b/docs/dd/d0c/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html index bc585f9082..859f3c5021 100644 --- a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html +++ b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264.html @@ -149,7 +149,7 @@ const scoped_refptr
diff --git a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html index a7fae8e24e..8e11c71ede 100644 --- a/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html +++ b/docs/dd/d0e/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat.html @@ -155,7 +155,7 @@ void Reset () override diff --git a/docs/dd/d11/mpd__builder_8cc_source.html b/docs/dd/d11/mpd__builder_8cc_source.html index 7b47c6cfb1..516caa6696 100644 --- a/docs/dd/d11/mpd__builder_8cc_source.html +++ b/docs/dd/d11/mpd__builder_8cc_source.html @@ -1503,7 +1503,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d12/mpd__writer_8cc_source.html b/docs/dd/d12/mpd__writer_8cc_source.html index 7821735ae9..8aff221d4e 100644 --- a/docs/dd/d12/mpd__writer_8cc_source.html +++ b/docs/dd/d12/mpd__writer_8cc_source.html @@ -224,7 +224,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d12/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox.html b/docs/dd/d12/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox.html index b7504b3b77..45f0a22caa 100644 --- a/docs/dd/d12/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox.html +++ b/docs/dd/d12/structedash__packager_1_1media_1_1mp4_1_1CueTimeBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html b/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html index c3fc5c3132..68dddb33b3 100644 --- a/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html +++ b/docs/dd/d14/structedash__packager_1_1media_1_1mp4_1_1MovieHeader.html @@ -200,7 +200,7 @@ Additional Inherited Members diff --git a/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html b/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html index 21aac3e821..8c6b318895 100644 --- a/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html +++ b/docs/dd/d15/structedash__packager_1_1media_1_1mp4_1_1TrackHeader.html @@ -215,7 +215,7 @@ Additional Inherited Members diff --git a/docs/dd/d18/es__parser__adts_8h_source.html b/docs/dd/d18/es__parser__adts_8h_source.html index 682c39e86e..ec360c12db 100644 --- a/docs/dd/d18/es__parser__adts_8h_source.html +++ b/docs/dd/d18/es__parser__adts_8h_source.html @@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d19/video__stream__info_8cc_source.html b/docs/dd/d19/video__stream__info_8cc_source.html index a694844048..5c8b499be0 100644 --- a/docs/dd/d19/video__stream__info_8cc_source.html +++ b/docs/dd/d19/video__stream__info_8cc_source.html @@ -197,7 +197,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html b/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html index f76b02b723..e5bd0b9306 100644 --- a/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html +++ b/docs/dd/d1a/classedash__packager_1_1media_1_1H264ByteToUnitStreamConverter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html b/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html index 5f71374a37..5c53f40642 100644 --- a/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html +++ b/docs/dd/d2b/classedash__packager_1_1media_1_1ClosureThread.html @@ -179,7 +179,7 @@ void  diff --git a/docs/dd/d30/wvm__media__parser_8cc_source.html b/docs/dd/d30/wvm__media__parser_8cc_source.html index 55d03508ec..9f20c934d3 100644 --- a/docs/dd/d30/wvm__media__parser_8cc_source.html +++ b/docs/dd/d30/wvm__media__parser_8cc_source.html @@ -1261,7 +1261,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html b/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html index ccb59348c9..ea3f95fae7 100644 --- a/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html +++ b/docs/dd/d36/classedash__packager_1_1media_1_1MediaSample-members.html @@ -123,7 +123,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d3b/mp4_2segmenter_8h_source.html b/docs/dd/d3b/mp4_2segmenter_8h_source.html index 616db62369..cca2916024 100644 --- a/docs/dd/d3b/mp4_2segmenter_8h_source.html +++ b/docs/dd/d3b/mp4_2segmenter_8h_source.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
12 
13 #include "packager/base/memory/ref_counted.h"
14 #include "packager/base/memory/scoped_ptr.h"
-
15 #include "packager/media/base/encryption_modes.h"
+
15 #include "packager/media/base/fourccs.h"
16 #include "packager/media/base/status.h"
17 #include "packager/media/formats/mp4/box_definitions.h"
18 
@@ -128,100 +128,100 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
45  scoped_ptr<Movie> moov);
46  virtual ~Segmenter();
47 
-
63  Status Initialize(const std::vector<MediaStream*>& streams,
-
64  MuxerListener* muxer_listener,
-
65  ProgressListener* progress_listener,
-
66  KeySource* encryption_key_source,
-
67  uint32_t max_sd_pixels,
-
68  double clear_lead_in_seconds,
-
69  double crypto_period_duration_in_seconds,
-
70  EncryptionMode encryption_mode);
-
71 
-
74  Status Finalize();
-
75 
-
81  Status AddSample(const MediaStream* stream,
-
82  scoped_refptr<MediaSample> sample);
-
83 
-
86  virtual bool GetInitRange(size_t* offset, size_t* size) = 0;
-
87 
-
90  virtual bool GetIndexRange(size_t* offset, size_t* size) = 0;
-
91 
-
92  uint32_t GetReferenceTimeScale() const;
+
65  Status Initialize(const std::vector<MediaStream*>& streams,
+
66  MuxerListener* muxer_listener,
+
67  ProgressListener* progress_listener,
+
68  KeySource* encryption_key_source,
+
69  uint32_t max_sd_pixels,
+
70  double clear_lead_in_seconds,
+
71  double crypto_period_duration_in_seconds,
+
72  FourCC protection_scheme);
+
73 
+
76  Status Finalize();
+
77 
+
83  Status AddSample(const MediaStream* stream,
+
84  scoped_refptr<MediaSample> sample);
+
85 
+
88  virtual bool GetInitRange(size_t* offset, size_t* size) = 0;
+
89 
+
92  virtual bool GetIndexRange(size_t* offset, size_t* size) = 0;
93 
-
95  double GetDuration() const;
-
96 
-
99  uint32_t sample_duration() const { return sample_duration_; }
-
100 
-
101  protected:
-
103  void UpdateProgress(uint64_t progress);
-
105  void SetComplete();
-
106 
-
107  const MuxerOptions& options() const { return options_; }
-
108  FileType* ftyp() { return ftyp_.get(); }
-
109  Movie* moov() { return moov_.get(); }
-
110  BufferWriter* fragment_buffer() { return fragment_buffer_.get(); }
-
111  SegmentIndex* sidx() { return sidx_.get(); }
-
112  MuxerListener* muxer_listener() { return muxer_listener_; }
-
113  uint64_t progress_target() { return progress_target_; }
-
114 
-
115  void set_progress_target(uint64_t progress_target) {
-
116  progress_target_ = progress_target;
-
117  }
-
118 
-
119  private:
-
120  virtual Status DoInitialize() = 0;
-
121  virtual Status DoFinalize() = 0;
-
122  virtual Status DoFinalizeSegment() = 0;
-
123 
-
124  Status FinalizeSegment();
-
125  uint32_t GetReferenceStreamId();
-
126 
-
127  Status FinalizeFragment(bool finalize_segment, Fragmenter* fragment);
+
94  uint32_t GetReferenceTimeScale() const;
+
95 
+
97  double GetDuration() const;
+
98 
+
101  uint32_t sample_duration() const { return sample_duration_; }
+
102 
+
103  protected:
+
105  void UpdateProgress(uint64_t progress);
+
107  void SetComplete();
+
108 
+
109  const MuxerOptions& options() const { return options_; }
+
110  FileType* ftyp() { return ftyp_.get(); }
+
111  Movie* moov() { return moov_.get(); }
+
112  BufferWriter* fragment_buffer() { return fragment_buffer_.get(); }
+
113  SegmentIndex* sidx() { return sidx_.get(); }
+
114  MuxerListener* muxer_listener() { return muxer_listener_; }
+
115  uint64_t progress_target() { return progress_target_; }
+
116 
+
117  void set_progress_target(uint64_t progress_target) {
+
118  progress_target_ = progress_target;
+
119  }
+
120 
+
121  private:
+
122  virtual Status DoInitialize() = 0;
+
123  virtual Status DoFinalize() = 0;
+
124  virtual Status DoFinalizeSegment() = 0;
+
125 
+
126  Status FinalizeSegment();
+
127  uint32_t GetReferenceStreamId();
128 
-
129  const MuxerOptions& options_;
-
130  scoped_ptr<FileType> ftyp_;
-
131  scoped_ptr<Movie> moov_;
-
132  scoped_ptr<MovieFragment> moof_;
-
133  scoped_ptr<BufferWriter> fragment_buffer_;
-
134  scoped_ptr<SegmentIndex> sidx_;
-
135  std::vector<Fragmenter*> fragmenters_;
-
136  std::vector<uint64_t> segment_durations_;
-
137  std::map<const MediaStream*, uint32_t> stream_map_;
-
138  bool end_of_segment_;
-
139  MuxerListener* muxer_listener_;
-
140  ProgressListener* progress_listener_;
-
141  uint64_t progress_target_;
-
142  uint64_t accumulated_progress_;
-
143  uint32_t sample_duration_;
-
144 
-
145  DISALLOW_COPY_AND_ASSIGN(Segmenter);
-
146 };
-
147 
-
148 } // namespace mp4
-
149 } // namespace media
-
150 } // namespace edash_packager
-
151 
-
152 #endif // MEDIA_FORMATS_MP4_SEGMENTER_H_
- - +
129  Status FinalizeFragment(bool finalize_segment, Fragmenter* fragment);
+
130 
+
131  const MuxerOptions& options_;
+
132  scoped_ptr<FileType> ftyp_;
+
133  scoped_ptr<Movie> moov_;
+
134  scoped_ptr<MovieFragment> moof_;
+
135  scoped_ptr<BufferWriter> fragment_buffer_;
+
136  scoped_ptr<SegmentIndex> sidx_;
+
137  std::vector<Fragmenter*> fragmenters_;
+
138  std::vector<uint64_t> segment_durations_;
+
139  std::map<const MediaStream*, uint32_t> stream_map_;
+
140  bool end_of_segment_;
+
141  MuxerListener* muxer_listener_;
+
142  ProgressListener* progress_listener_;
+
143  uint64_t progress_target_;
+
144  uint64_t accumulated_progress_;
+
145  uint32_t sample_duration_;
+
146 
+
147  DISALLOW_COPY_AND_ASSIGN(Segmenter);
+
148 };
+
149 
+
150 } // namespace mp4
+
151 } // namespace media
+
152 } // namespace edash_packager
+
153 
+
154 #endif // MEDIA_FORMATS_MP4_SEGMENTER_H_
+
Status Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)
Definition: segmenter.cc:130
+ +
This class listens to progress updates events.
-
Status AddSample(const MediaStream *stream, scoped_refptr< MediaSample > sample)
Definition: segmenter.cc:268
-
Status Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)
Definition: segmenter.cc:133
+
Status AddSample(const MediaStream *stream, scoped_refptr< MediaSample > sample)
Definition: segmenter.cc:271
virtual bool GetInitRange(size_t *offset, size_t *size)=0
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
- -
void UpdateProgress(uint64_t progress)
Update segmentation progress using ProgressListener.
Definition: segmenter.cc:335
+ +
void UpdateProgress(uint64_t progress)
Update segmentation progress using ProgressListener.
Definition: segmenter.cc:338
virtual bool GetIndexRange(size_t *offset, size_t *size)=0
-
void SetComplete()
Set progress to 100%.
Definition: segmenter.cc:351
+
void SetComplete()
Set progress to 100%.
Definition: segmenter.cc:354
This structure contains the list of configuration options for Muxer.
Definition: muxer_options.h:18
diff --git a/docs/dd/d42/encryptor_8h_source.html b/docs/dd/d42/encryptor_8h_source.html index 278481fba3..5afb22ae20 100644 --- a/docs/dd/d42/encryptor_8h_source.html +++ b/docs/dd/d42/encryptor_8h_source.html @@ -141,17 +141,17 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
62 } // namespace edash_packager
63 
64 #endif // MEDIA_FORMATS_WEBM_ENCRYPTOR_H_
-
Status EncryptFrame(scoped_refptr< MediaSample > sample, bool encrypt_frame)
Definition: encryptor.cc:69
+
Status EncryptFrame(scoped_refptr< MediaSample > sample, bool encrypt_frame)
Definition: encryptor.cc:67
KeySource is responsible for encryption key acquisition.
Definition: key_source.h:31
-
Status Initialize(MuxerListener *muxer_listener, KeySource::TrackType track_type, KeySource *key_source)
Definition: encryptor.cc:57
-
Status AddTrackInfo(mkvmuxer::Track *track)
Definition: encryptor.cc:64
+
Status Initialize(MuxerListener *muxer_listener, KeySource::TrackType track_type, KeySource *key_source)
Definition: encryptor.cc:55
+
Status AddTrackInfo(mkvmuxer::Track *track)
Definition: encryptor.cc:62
diff --git a/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html b/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html index 991e68ce4b..c1a49dc25e 100644 --- a/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html +++ b/docs/dd/d44/structedash__packager_1_1media_1_1mp4_1_1SegmentReference-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d46/webm__parser_8h_source.html b/docs/dd/d46/webm__parser_8h_source.html index 7dc462b380..42164da25e 100644 --- a/docs/dd/d46/webm__parser_8h_source.html +++ b/docs/dd/d46/webm__parser_8h_source.html @@ -227,7 +227,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html b/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html index f64babc082..b98b20bdd6 100644 --- a/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html +++ b/docs/dd/d47/classedash__packager_1_1media_1_1WebMInfoParser.html @@ -175,7 +175,7 @@ The number of bytes parsed on success. diff --git a/docs/dd/d48/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer.html b/docs/dd/d48/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer.html index 6eb7aaa36b..8efb105e28 100644 --- a/docs/dd/d48/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer.html +++ b/docs/dd/d48/classedash__packager_1_1media_1_1mp2t_1_1TsMuxer.html @@ -114,8 +114,8 @@ Public Member Functions  Muxer (const MuxerOptions &options)   -void SetKeySource (KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode) -  +void SetKeySource (KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme) +  void AddStream (MediaStream *stream)  Add video/audio stream.
@@ -163,9 +163,9 @@ double crypto_period_durat base::Clock * clock ()   - -EncryptionMode encryption_mode () const -  + +FourCC protection_scheme () const + 

Detailed Description

MPEG2 TS muxer. This is a single program, single elementary stream TS muxer.

@@ -178,7 +178,7 @@ EncryptionMode encryption_
diff --git a/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html b/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html index 7878acd83e..2370dbf0b9 100644 --- a/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html +++ b/docs/dd/d4c/structedash__packager_1_1media_1_1mp4_1_1FullBox-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html b/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html index f47f7c4dda..8beb5848f4 100644 --- a/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html +++ b/docs/dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html @@ -589,7 +589,7 @@ bool ReadWriteInt64 (i diff --git a/docs/dd/d54/widevine__encryption__flags_8h_source.html b/docs/dd/d54/widevine__encryption__flags_8h_source.html index 68546458ad..137d260d1c 100644 --- a/docs/dd/d54/widevine__encryption__flags_8h_source.html +++ b/docs/dd/d54/widevine__encryption__flags_8h_source.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d5e/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox-members.html b/docs/dd/d5e/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox-members.html index 33dbbd5912..3c056d808e 100644 --- a/docs/dd/d5e/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox-members.html +++ b/docs/dd/d5e/structedash__packager_1_1media_1_1mp4_1_1CuePayloadBox-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d60/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html b/docs/dd/d60/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html index 035a378a9e..f0a697bc6d 100644 --- a/docs/dd/d60/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html +++ b/docs/dd/d60/structedash__packager_1_1media_1_1mp4_1_1VTTEmptyCueBox-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d65/vp8__parser_8h_source.html b/docs/dd/d65/vp8__parser_8h_source.html index 0d2119f407..4fde156b30 100644 --- a/docs/dd/d65/vp8__parser_8h_source.html +++ b/docs/dd/d65/vp8__parser_8h_source.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html b/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html index 8374578209..d68b564fab 100644 --- a/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html +++ b/docs/dd/d67/h264__byte__to__unit__stream__converter_8cc_source.html @@ -215,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html b/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html index d946ca5ad7..e5d1ed14b0 100644 --- a/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html +++ b/docs/dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html @@ -117,8 +117,6 @@ uint32_t block_offset bool SetIv (const std::vector< uint8_t > &iv) override   - Public Member Functions inherited from edash_packager::media::AesEncryptor -bool InitializeWithRandomIv (const std::vector< uint8_t > &key, uint8_t iv_size) -  bool InitializeWithIv (const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override   - Public Member Functions inherited from edash_packager::media::AesCryptor @@ -135,6 +133,9 @@ bool Crypt (const std: + + + @@ -148,7 +149,7 @@ AES_KEY * 

Additional Inherited Members

- Static Public Member Functions inherited from edash_packager::media::AesCryptor
static bool GenerateRandomIv (FourCC protection_scheme, std::vector< uint8_t > *iv)
 
- Protected Member Functions inherited from edash_packager::media::AesCryptor
void set_iv (const std::vector< uint8_t > &iv)
mutable_aes_key<

Detailed Description

-

Definition at line 42 of file aes_encryptor.h.

+

Definition at line 37 of file aes_encryptor.h.

Member Function Documentation

@@ -176,7 +177,7 @@ AES_KEY * mutable_aes_key<

Implements edash_packager::media::AesCryptor.

-

Definition at line 103 of file aes_encryptor.cc.

+

Definition at line 90 of file aes_encryptor.cc.

@@ -204,7 +205,7 @@ AES_KEY * mutable_aes_key<

Implements edash_packager::media::AesCryptor.

-

Definition at line 73 of file aes_encryptor.cc.

+

Definition at line 60 of file aes_encryptor.cc.

@@ -215,7 +216,7 @@ AES_KEY * mutable_aes_key< diff --git a/docs/dd/d7d/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry.html b/docs/dd/d7d/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry.html index e997c3d084..7571fca5e9 100644 --- a/docs/dd/d7d/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry.html +++ b/docs/dd/d7d/structedash__packager_1_1media_1_1mp4_1_1TextSampleEntry.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/dd/d7f/classedash__packager_1_1media_1_1DecoderConfiguration-members.html b/docs/dd/d7f/classedash__packager_1_1media_1_1DecoderConfiguration-members.html index 11a313d3d7..021fd7e33e 100644 --- a/docs/dd/d7f/classedash__packager_1_1media_1_1DecoderConfiguration-members.html +++ b/docs/dd/d7f/classedash__packager_1_1media_1_1DecoderConfiguration-members.html @@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d80/media__sample_8h_source.html b/docs/dd/d80/media__sample_8h_source.html index 54f0d8cbac..07b561d1d0 100644 --- a/docs/dd/d80/media__sample_8h_source.html +++ b/docs/dd/d80/media__sample_8h_source.html @@ -260,7 +260,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html b/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html index f9c67cde1e..e79985e09f 100644 --- a/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html +++ b/docs/dd/d85/classedash__packager_1_1xml_1_1XmlNode.html @@ -419,7 +419,7 @@ bool  diff --git a/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html b/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html index ef08c53da0..ffaebe0543 100644 --- a/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html +++ b/docs/dd/d85/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentHeader-members.html @@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d87/memory__file_8cc_source.html b/docs/dd/d87/memory__file_8cc_source.html index 797e451893..1d7d0e816f 100644 --- a/docs/dd/d87/memory__file_8cc_source.html +++ b/docs/dd/d87/memory__file_8cc_source.html @@ -241,7 +241,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d88/pes__packet__generator_8h_source.html b/docs/dd/d88/pes__packet__generator_8h_source.html index fdb333a7c9..be24e39d09 100644 --- a/docs/dd/d88/pes__packet__generator_8h_source.html +++ b/docs/dd/d88/pes__packet__generator_8h_source.html @@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d8c/file__test__util_8h_source.html b/docs/dd/d8c/file__test__util_8h_source.html index cd24e2a922..6b2af6cac0 100644 --- a/docs/dd/d8c/file__test__util_8h_source.html +++ b/docs/dd/d8c/file__test__util_8h_source.html @@ -119,7 +119,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html b/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html index 0019842122..bbb11af0b9 100644 --- a/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html +++ b/docs/dd/d8e/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter-members.html @@ -97,8 +97,8 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); CreateEncryptor()edash_packager::media::mp4::EncryptingFragmenterprotected data() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmenterinline earliest_presentation_time() const (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmenterinline - EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, EncryptionMode encryption_mode)edash_packager::media::mp4::EncryptingFragmenter - encryption_key() (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected + EncryptingFragmenter(scoped_refptr< StreamInfo > info, TrackFragment *traf, scoped_ptr< EncryptionKey > encryption_key, int64_t clear_time, FourCC protection_scheme)edash_packager::media::mp4::EncryptingFragmenter + encryption_key() const (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected encryptor() (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected FinalizeFragment() overrideedash_packager::media::mp4::EncryptingFragmentervirtual FinalizeFragmentForEncryption() overrideedash_packager::media::mp4::KeyRotationFragmenterprotectedvirtual @@ -109,18 +109,19 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Fragmenter(TrackFragment *traf)edash_packager::media::mp4::Fragmenter GenerateSegmentReference(SegmentReference *reference)edash_packager::media::mp4::Fragmenter InitializeFragment(int64_t first_sample_dts) overrideedash_packager::media::mp4::EncryptingFragmentervirtual - KeyRotationFragmenter(MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, MuxerListener *muxer_listener, EncryptionMode encryption_mode)edash_packager::media::mp4::KeyRotationFragmenter + KeyRotationFragmenter(MovieFragment *moof, scoped_refptr< StreamInfo > info, TrackFragment *traf, KeySource *encryption_key_source, KeySource::TrackType track_type, int64_t crypto_period_duration, int64_t clear_time, FourCC protection_scheme, MuxerListener *muxer_listener)edash_packager::media::mp4::KeyRotationFragmenter OptimizeSampleEntries(std::vector< T > *entries, T *default_value)edash_packager::media::mp4::Fragmenterprotected PrepareFragmentForEncryption(bool enable_encryption) overrideedash_packager::media::mp4::KeyRotationFragmenterprotectedvirtual - set_encryption_key(scoped_ptr< EncryptionKey > encryption_key) (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected - traf() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmenterinlineprotected - ~EncryptingFragmenter() override (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenter - ~Fragmenter() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmentervirtual - ~KeyRotationFragmenter() override (defined in edash_packager::media::mp4::KeyRotationFragmenter)edash_packager::media::mp4::KeyRotationFragmenter + protection_scheme() const (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected + set_encryption_key(scoped_ptr< EncryptionKey > encryption_key) (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenterinlineprotected + traf() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmenterinlineprotected + ~EncryptingFragmenter() override (defined in edash_packager::media::mp4::EncryptingFragmenter)edash_packager::media::mp4::EncryptingFragmenter + ~Fragmenter() (defined in edash_packager::media::mp4::Fragmenter)edash_packager::media::mp4::Fragmentervirtual + ~KeyRotationFragmenter() override (defined in edash_packager::media::mp4::KeyRotationFragmenter)edash_packager::media::mp4::KeyRotationFragmenter diff --git a/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html b/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html index 5bedbdd7bb..c12ba1d3b4 100644 --- a/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html +++ b/docs/dd/d98/classedash__packager_1_1media_1_1LocalFile.html @@ -502,7 +502,7 @@ bool  diff --git a/docs/dd/d98/structedash__packager_1_1media_1_1H264Sps-members.html b/docs/dd/d98/structedash__packager_1_1media_1_1H264Sps-members.html index 8efce07ce7..8a33695ef4 100644 --- a/docs/dd/d98/structedash__packager_1_1media_1_1H264Sps-members.html +++ b/docs/dd/d98/structedash__packager_1_1media_1_1H264Sps-members.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html b/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html index 33b9de80b7..16ddbbd23b 100644 --- a/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html +++ b/docs/dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html @@ -256,7 +256,7 @@ track_id, const scoped_refptr
diff --git a/docs/dd/d9a/audio__timestamp__helper_8h_source.html b/docs/dd/d9a/audio__timestamp__helper_8h_source.html index ba3d17559c..0abee67788 100644 --- a/docs/dd/d9a/audio__timestamp__helper_8h_source.html +++ b/docs/dd/d9a/audio__timestamp__helper_8h_source.html @@ -167,7 +167,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html b/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html index 8684b87ebf..128d3ec6f2 100644 --- a/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html +++ b/docs/dd/da2/structedash__packager_1_1media_1_1mp4_1_1MovieFragment.html @@ -180,7 +180,7 @@ Additional Inherited Members diff --git a/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html b/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html index 8e3d38dcf8..e0c1706656 100644 --- a/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html +++ b/docs/dd/da6/structedash__packager_1_1media_1_1mp4_1_1SegmentType.html @@ -177,7 +177,7 @@ std::vector< FourCC > < diff --git a/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html b/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html index 3628ba6b19..28b6d9c3f1 100644 --- a/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html +++ b/docs/dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html b/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html index 8728e146b5..b2862aec5a 100644 --- a/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html +++ b/docs/dd/daa/vod__media__info__dump__muxer__listener_8h_source.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html b/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html index f69d65b4ca..0fc5476c63 100644 --- a/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html +++ b/docs/dd/dab/structedash__packager_1_1media_1_1mp4_1_1SampleToGroupEntry.html @@ -120,7 +120,7 @@ uint32_t group_description diff --git a/docs/dd/dab/webm__muxer_8h_source.html b/docs/dd/dab/webm__muxer_8h_source.html index 76f132c912..2809deabda 100644 --- a/docs/dd/dab/webm__muxer_8h_source.html +++ b/docs/dd/dab/webm__muxer_8h_source.html @@ -130,7 +130,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
43 
44 #endif // MEDIA_FORMATS_WEBM_WEBM_MUXER_H_
-
WebMMuxer(const MuxerOptions &options)
Create a WebMMuxer object from MuxerOptions.
Definition: webm_muxer.cc:21
+
WebMMuxer(const MuxerOptions &options)
Create a WebMMuxer object from MuxerOptions.
Definition: webm_muxer.cc:22
This structure contains the list of configuration options for Muxer.
Definition: muxer_options.h:18
@@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html b/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html index 60e547f987..ee1716ceed 100644 --- a/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html +++ b/docs/dd/dad/classedash__packager_1_1media_1_1WebMParserClient-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbc/buffer__reader_8cc_source.html b/docs/dd/dbc/buffer__reader_8cc_source.html index 4510ca3a37..2fa69e9423 100644 --- a/docs/dd/dbc/buffer__reader_8cc_source.html +++ b/docs/dd/dbc/buffer__reader_8cc_source.html @@ -196,7 +196,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html b/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html index 09bf9ea4fd..9338b06305 100644 --- a/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html +++ b/docs/dd/dbd/classedash__packager_1_1media_1_1AesCtrEncryptor-members.html @@ -101,8 +101,8 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); Crypt(const std::vector< uint8_t > &text, std::vector< uint8_t > *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const std::string &text, std::string *crypt_text) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptor Crypt(const uint8_t *text, size_t text_size, uint8_t *crypt_text)edash_packager::media::AesCryptorinline - InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesEncryptorvirtual - InitializeWithRandomIv(const std::vector< uint8_t > &key, uint8_t iv_size)edash_packager::media::AesEncryptor + GenerateRandomIv(FourCC protection_scheme, std::vector< uint8_t > *iv)edash_packager::media::AesCryptorstatic + InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) overrideedash_packager::media::AesEncryptorvirtual iv() const edash_packager::media::AesCryptorinline mutable_aes_key() (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected set_iv(const std::vector< uint8_t > &iv) (defined in edash_packager::media::AesCryptor)edash_packager::media::AesCryptorinlineprotected @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html b/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html index 41f6c49d62..2c340a171d 100644 --- a/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html +++ b/docs/dd/dbd/structedash__packager_1_1media_1_1mp4_1_1MediaInformation.html @@ -185,7 +185,7 @@ Additional Inherited Members diff --git a/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html b/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html index f91144e785..1b45793617 100644 --- a/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html +++ b/docs/dd/dbf/classedash__packager_1_1MpdNotifier-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dbf/webm__webvtt__parser_8h_source.html b/docs/dd/dbf/webm__webvtt__parser_8h_source.html index 604d09234a..a8dd331ac9 100644 --- a/docs/dd/dbf/webm__webvtt__parser_8h_source.html +++ b/docs/dd/dbf/webm__webvtt__parser_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html b/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html index 447a59f47c..081fbc3fcc 100644 --- a/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html +++ b/docs/dd/dc9/structedash__packager_1_1media_1_1mp4_1_1ProtectionSchemeInfo.html @@ -179,7 +179,7 @@ Additional Inherited Members diff --git a/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html b/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html index b74ef6bb14..096e977461 100644 --- a/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html +++ b/docs/dd/dcb/classedash__packager_1_1MpdNotifierFactory.html @@ -112,7 +112,7 @@ virtual scoped_ptr< diff --git a/docs/dd/dd2/buffer__writer_8h_source.html b/docs/dd/dd2/buffer__writer_8h_source.html index 03406d8008..81f5c35a27 100644 --- a/docs/dd/dd2/buffer__writer_8h_source.html +++ b/docs/dd/dd2/buffer__writer_8h_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dd3/buffer__writer_8cc_source.html b/docs/dd/dd3/buffer__writer_8cc_source.html index 5142a2b38c..f4e2fcd7a8 100644 --- a/docs/dd/dd3/buffer__writer_8cc_source.html +++ b/docs/dd/dd3/buffer__writer_8cc_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/ddb/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser-members.html b/docs/dd/ddb/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser-members.html index 3fb6641407..0148dc5fc8 100644 --- a/docs/dd/ddb/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser-members.html +++ b/docs/dd/ddb/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/de7/xml__node_8h_source.html b/docs/dd/de7/xml__node_8h_source.html index 0e8200142c..d5609d11fc 100644 --- a/docs/dd/de7/xml__node_8h_source.html +++ b/docs/dd/de7/xml__node_8h_source.html @@ -230,7 +230,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html b/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html index a9f9ce3905..d642232c97 100644 --- a/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html +++ b/docs/dd/dec/structedash__packager_1_1media_1_1OnMediaEndParameters-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dee/box__definitions_8cc_source.html b/docs/dd/dee/box__definitions_8cc_source.html index c3e50bc22f..480aa783b0 100644 --- a/docs/dd/dee/box__definitions_8cc_source.html +++ b/docs/dd/dee/box__definitions_8cc_source.html @@ -2751,7 +2751,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html b/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html index b44c31cb4f..80973ceb9c 100644 --- a/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html +++ b/docs/dd/def/classedash__packager_1_1media_1_1TextTrackConfig.html @@ -125,7 +125,7 @@ const std::string & id diff --git a/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html b/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html index b8222caf62..5fa4b3a4d8 100644 --- a/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html +++ b/docs/dd/df2/webm_2multi__segment__segmenter_8h_source.html @@ -149,7 +149,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html b/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html index fe8faeba18..c023a98995 100644 --- a/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html +++ b/docs/dd/dfa/structedash__packager_1_1media_1_1MuxerOptions-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d07/structedash__packager_1_1media_1_1mp4_1_1CueIDBox.html b/docs/de/d07/structedash__packager_1_1media_1_1mp4_1_1CueIDBox.html index ecc250148d..de9ccce9d3 100644 --- a/docs/de/d07/structedash__packager_1_1media_1_1mp4_1_1CueIDBox.html +++ b/docs/de/d07/structedash__packager_1_1media_1_1mp4_1_1CueIDBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/de/d0b/structedash__packager_1_1media_1_1H265ReferencePictureSet.html b/docs/de/d0b/structedash__packager_1_1media_1_1H265ReferencePictureSet.html index 0f565ac7c7..e72e2d7b23 100644 --- a/docs/de/d0b/structedash__packager_1_1media_1_1H265ReferencePictureSet.html +++ b/docs/de/d0b/structedash__packager_1_1media_1_1H265ReferencePictureSet.html @@ -127,7 +127,7 @@ int num_delta_pocs diff --git a/docs/de/d0f/local__file_8h_source.html b/docs/de/d0f/local__file_8h_source.html index 6449ef41d8..821ee29da9 100644 --- a/docs/de/d0f/local__file_8h_source.html +++ b/docs/de/d0f/local__file_8h_source.html @@ -152,7 +152,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d12/container__names_8h_source.html b/docs/de/d12/container__names_8h_source.html index c65b658f97..74f9bc45c5 100644 --- a/docs/de/d12/container__names_8h_source.html +++ b/docs/de/d12/container__names_8h_source.html @@ -159,7 +159,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d13/ts__writer_8cc_source.html b/docs/de/d13/ts__writer_8cc_source.html index a8dae145da..7b2a17ec90 100644 --- a/docs/de/d13/ts__writer_8cc_source.html +++ b/docs/de/d13/ts__writer_8cc_source.html @@ -584,7 +584,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d15/media__stream_8cc_source.html b/docs/de/d15/media__stream_8cc_source.html index 173e2761ee..44f68681bb 100644 --- a/docs/de/d15/media__stream_8cc_source.html +++ b/docs/de/d15/media__stream_8cc_source.html @@ -210,7 +210,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d17/cluster__builder_8cc_source.html b/docs/de/d17/cluster__builder_8cc_source.html index 0c1739d735..d49aaf0026 100644 --- a/docs/de/d17/cluster__builder_8cc_source.html +++ b/docs/de/d17/cluster__builder_8cc_source.html @@ -330,7 +330,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d18/classedash__packager_1_1media_1_1WebVttMediaParser-members.html b/docs/de/d18/classedash__packager_1_1media_1_1WebVttMediaParser-members.html index 1104745347..dd51820d09 100644 --- a/docs/de/d18/classedash__packager_1_1media_1_1WebVttMediaParser-members.html +++ b/docs/de/d18/classedash__packager_1_1media_1_1WebVttMediaParser-members.html @@ -105,7 +105,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d19/classedash__packager_1_1media_1_1File.html b/docs/de/d19/classedash__packager_1_1media_1_1File.html index b4d2d1540e..46a1ae7b36 100644 --- a/docs/de/d19/classedash__packager_1_1media_1_1File.html +++ b/docs/de/d19/classedash__packager_1_1media_1_1File.html @@ -811,7 +811,7 @@ class ThreadedIoFile diff --git a/docs/de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html b/docs/de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html index 0ac7b04091..aa777d1c68 100644 --- a/docs/de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html +++ b/docs/de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html @@ -270,7 +270,7 @@ class PesPacketGeneratorTe diff --git a/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html b/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html index 452f263d8a..6c5a98204a 100644 --- a/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html +++ b/docs/de/d1e/mp4_2single__segment__segmenter_8cc_source.html @@ -333,7 +333,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html b/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html index f68031fff5..ec32df5b88 100644 --- a/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html +++ b/docs/de/d1f/structedash__packager_1_1media_1_1StreamDescriptor.html @@ -131,7 +131,7 @@ MediaContainerName output_ diff --git a/docs/de/d22/aes__pattern__cryptor_8cc_source.html b/docs/de/d22/aes__pattern__cryptor_8cc_source.html index 8e2edb8b87..1d407a6cb4 100644 --- a/docs/de/d22/aes__pattern__cryptor_8cc_source.html +++ b/docs/de/d22/aes__pattern__cryptor_8cc_source.html @@ -174,12 +174,12 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
bool SetIv(const std::vector< uint8_t > &iv) override
bool InitializeWithIv(const std::vector< uint8_t > &key, const std::vector< uint8_t > &iv) override
-
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:59
+
const std::vector< uint8_t > & iv() const
Definition: aes_cryptor.h:60
AesPatternCryptor(uint8_t crypt_byte_block, uint8_t skip_byte_block, ConstantIvFlag constant_iv_flag, scoped_ptr< AesCryptor > cryptor)
diff --git a/docs/de/d34/offset__byte__queue_8h_source.html b/docs/de/d34/offset__byte__queue_8h_source.html index 66904a77de..81e5464114 100644 --- a/docs/de/d34/offset__byte__queue_8h_source.html +++ b/docs/de/d34/offset__byte__queue_8h_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d3c/macros_8h_source.html b/docs/de/d3c/macros_8h_source.html index 29fdc0389b..b8e9bfec8f 100644 --- a/docs/de/d3c/macros_8h_source.html +++ b/docs/de/d3c/macros_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d3e/buffer__reader_8h_source.html b/docs/de/d3e/buffer__reader_8h_source.html index 2bbff54f32..a34ee09dc9 100644 --- a/docs/de/d3e/buffer__reader_8h_source.html +++ b/docs/de/d3e/buffer__reader_8h_source.html @@ -163,7 +163,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html b/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html index f0269e2544..2903970143 100644 --- a/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html +++ b/docs/de/d44/structedash__packager_1_1media_1_1mp4_1_1TrackEncryption.html @@ -188,7 +188,7 @@ Additional Inherited Members diff --git a/docs/de/d48/classedash__packager_1_1media_1_1VP8Parser-members.html b/docs/de/d48/classedash__packager_1_1media_1_1VP8Parser-members.html index c080eda66b..6e440fd8da 100644 --- a/docs/de/d48/classedash__packager_1_1media_1_1VP8Parser-members.html +++ b/docs/de/d48/classedash__packager_1_1media_1_1VP8Parser-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d4a/muxer__listener__internal_8h_source.html b/docs/de/d4a/muxer__listener__internal_8h_source.html index 52a963b0ea..61441fcd2a 100644 --- a/docs/de/d4a/muxer__listener__internal_8h_source.html +++ b/docs/de/d4a/muxer__listener__internal_8h_source.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html b/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html index 2e3082b828..5a328bd34f 100644 --- a/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html +++ b/docs/de/d4c/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPat-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html b/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html index c66c21c9b6..8002e25cda 100644 --- a/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html +++ b/docs/de/d57/structedash__packager_1_1media_1_1MuxerOptions.html @@ -275,7 +275,7 @@ std::string  diff --git a/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html b/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html index 90f7348ac2..b2cae41591 100644 --- a/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html +++ b/docs/de/d59/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts.html @@ -148,7 +148,7 @@ const scoped_refptr
diff --git a/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html b/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html index 5553152baa..d45d72c5bc 100644 --- a/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html +++ b/docs/de/d5a/structedash__packager_1_1media_1_1mp4_1_1SchemeType-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d5b/adts__header_8cc_source.html b/docs/de/d5b/adts__header_8cc_source.html index b88a6ba8e4..22507ea2d6 100644 --- a/docs/de/d5b/adts__header_8cc_source.html +++ b/docs/de/d5b/adts__header_8cc_source.html @@ -207,7 +207,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d5c/mpd__flags_8h_source.html b/docs/de/d5c/mpd__flags_8h_source.html index 7fbd6875a3..f246918f23 100644 --- a/docs/de/d5c/mpd__flags_8h_source.html +++ b/docs/de/d5c/mpd__flags_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html b/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html index 75590ebc97..bf72ef8c59 100644 --- a/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html +++ b/docs/de/d68/structedash__packager_1_1media_1_1mp4_1_1Track-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d6a/classedash__packager_1_1media_1_1webm_1_1WebMMuxer.html b/docs/de/d6a/classedash__packager_1_1media_1_1webm_1_1WebMMuxer.html index 27de114dc8..9c990f9546 100644 --- a/docs/de/d6a/classedash__packager_1_1media_1_1webm_1_1WebMMuxer.html +++ b/docs/de/d6a/classedash__packager_1_1media_1_1webm_1_1WebMMuxer.html @@ -118,8 +118,8 @@ Public Member Functions  Muxer (const MuxerOptions &options)   -void SetKeySource (KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode) -  +void SetKeySource (KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme) +  void AddStream (MediaStream *stream)  Add video/audio stream.
@@ -167,9 +167,9 @@ double crypto_period_durat base::Clock * clock ()   - -EncryptionMode encryption_mode () const -  + +FourCC protection_scheme () const + 

Detailed Description

Implements WebM Muxer.

@@ -182,7 +182,7 @@ EncryptionMode encryption_
diff --git a/docs/de/d6e/language__utils_8h_source.html b/docs/de/d6e/language__utils_8h_source.html index 25b4f0e0e8..e9a45d8ac2 100644 --- a/docs/de/d6e/language__utils_8h_source.html +++ b/docs/de/d6e/language__utils_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d70/http__key__fetcher_8cc_source.html b/docs/de/d70/http__key__fetcher_8cc_source.html index 71c2f60801..aac0c0be83 100644 --- a/docs/de/d70/http__key__fetcher_8cc_source.html +++ b/docs/de/d70/http__key__fetcher_8cc_source.html @@ -238,7 +238,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html b/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html index 9c94f46c95..6c41947a83 100644 --- a/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html +++ b/docs/de/d77/classedash__packager_1_1media_1_1VodMediaInfoDumpMuxerListener-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d77/webm__content__encodings__client_8cc_source.html b/docs/de/d77/webm__content__encodings__client_8cc_source.html index 15a5ee7d84..b46526ff21 100644 --- a/docs/de/d77/webm__content__encodings__client_8cc_source.html +++ b/docs/de/d77/webm__content__encodings__client_8cc_source.html @@ -361,7 +361,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d7b/mp4__media__parser_8h_source.html b/docs/de/d7b/mp4__media__parser_8h_source.html index b3b3a64db7..fa0b3d1cd4 100644 --- a/docs/de/d7b/mp4__media__parser_8h_source.html +++ b/docs/de/d7b/mp4__media__parser_8h_source.html @@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d83/box__definitions__comparison_8h_source.html b/docs/de/d83/box__definitions__comparison_8h_source.html index 984cf676a1..9d8ee7b92d 100644 --- a/docs/de/d83/box__definitions__comparison_8h_source.html +++ b/docs/de/d83/box__definitions__comparison_8h_source.html @@ -575,7 +575,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html b/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html index 86cf05ddb4..6c109a1ee4 100644 --- a/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html +++ b/docs/de/d87/structedash__packager_1_1media_1_1mp4_1_1ChunkInfo-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html b/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html index c4f3ab5752..87166d1b2e 100644 --- a/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html +++ b/docs/de/d8b/classedash__packager_1_1media_1_1mp2t_1_1TsSectionPes.html @@ -142,7 +142,7 @@ Additional Inherited Members diff --git a/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html b/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html index 63dfcf4faf..217483ac53 100644 --- a/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html +++ b/docs/de/d8d/structedash__packager_1_1media_1_1H264SliceHeader.html @@ -276,7 +276,7 @@ int slice_beta_offset_div2 diff --git a/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html b/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html index 847b164bfe..45924ea8f8 100644 --- a/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html +++ b/docs/de/d93/classedash__packager_1_1media_1_1ByteQueue-members.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html b/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html index c3c1a4b851..b1b3ed36a9 100644 --- a/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html +++ b/docs/de/d98/classedash__packager_1_1media_1_1WebMAudioClient.html @@ -199,7 +199,7 @@ An empty scoped_refptr if there was unexpected values in the provided parameters diff --git a/docs/de/d9b/structedash__packager_1_1media_1_1H264Sps.html b/docs/de/d9b/structedash__packager_1_1media_1_1H264Sps.html index 6e67c5f2a6..53628d4671 100644 --- a/docs/de/d9b/structedash__packager_1_1media_1_1H264Sps.html +++ b/docs/de/d9b/structedash__packager_1_1media_1_1H264Sps.html @@ -242,7 +242,7 @@ int chroma_array_type< diff --git a/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html b/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html index 47923a3623..dd60f134cf 100644 --- a/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html +++ b/docs/de/d9d/classedash__packager_1_1media_1_1TracksBuilder-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html b/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html index 6a83f737af..9fb5f6c248 100644 --- a/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html +++ b/docs/de/d9e/classedash__packager_1_1media_1_1TextTrack.html @@ -109,7 +109,7 @@ virtual void addWebVTTCue< diff --git a/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html b/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html index 15c93e865d..1fbbfe9772 100644 --- a/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html +++ b/docs/de/da5/classedash__packager_1_1media_1_1WebMParserClient.html @@ -151,7 +151,7 @@ Protected Member Functions diff --git a/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html b/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html index ca311b42d2..7525e8d9f5 100644 --- a/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html +++ b/docs/de/da6/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator-members.html @@ -103,7 +103,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html b/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html index 57c372d021..b4a57c9f1b 100644 --- a/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html +++ b/docs/de/da7/classedash__packager_1_1media_1_1AudioTimestampHelper-members.html @@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html b/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html index b66e43fd3b..3eed3077e0 100644 --- a/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html +++ b/docs/de/dab/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun-members.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dad/validate__flag_8cc_source.html b/docs/de/dad/validate__flag_8cc_source.html index db396a006b..7571f4f5dc 100644 --- a/docs/de/dad/validate__flag_8cc_source.html +++ b/docs/de/dad/validate__flag_8cc_source.html @@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html b/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html index 0f3c9982e3..ae6900c8b6 100644 --- a/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html +++ b/docs/de/db1/classedash__packager_1_1media_1_1mp4_1_1ESDescriptor.html @@ -181,7 +181,7 @@ bool IsDTS () const diff --git a/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html b/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html index b8b5639758..64e320916e 100644 --- a/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html +++ b/docs/de/db4/structedash__packager_1_1media_1_1mp4_1_1SchemeInfo-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dc1/demuxer_8h_source.html b/docs/de/dc1/demuxer_8h_source.html index a595434bdd..3b66ef30c1 100644 --- a/docs/de/dc1/demuxer_8h_source.html +++ b/docs/de/dc1/demuxer_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html b/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html index 8dde5a1fa3..dcd81a94ad 100644 --- a/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html +++ b/docs/de/dc4/structedash__packager_1_1media_1_1mp4_1_1SampleAuxiliaryInformationOffset.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/de/dcb/ts__segmenter_8h_source.html b/docs/de/dcb/ts__segmenter_8h_source.html index d0c5bfdf81..3d570619d9 100644 --- a/docs/de/dcb/ts__segmenter_8h_source.html +++ b/docs/de/dcb/ts__segmenter_8h_source.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dcc/mock__mpd__notifier_8cc_source.html b/docs/de/dcc/mock__mpd__notifier_8cc_source.html index eee1169271..be12e8dce8 100644 --- a/docs/de/dcc/mock__mpd__notifier_8cc_source.html +++ b/docs/de/dcc/mock__mpd__notifier_8cc_source.html @@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dcf/file__closer_8h_source.html b/docs/de/dcf/file__closer_8h_source.html index 91f63b8099..fd35fde263 100644 --- a/docs/de/dcf/file__closer_8h_source.html +++ b/docs/de/dcf/file__closer_8h_source.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html b/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html index 0bcf402a3f..68409cf8d9 100644 --- a/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html +++ b/docs/de/dd4/classedash__packager_1_1media_1_1mp4_1_1MP4Muxer-members.html @@ -99,16 +99,16 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); clock() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected crypto_period_duration_in_seconds() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected encryption_key_source() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - encryption_mode() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - max_sd_pixels() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - MP4Muxer(const MuxerOptions &options)edash_packager::media::mp4::MP4Muxerexplicit - Muxer(const MuxerOptions &options) (defined in edash_packager::media::Muxer)edash_packager::media::Muxerexplicit - muxer_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - options() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected - progress_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + max_sd_pixels() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + MP4Muxer(const MuxerOptions &options)edash_packager::media::mp4::MP4Muxerexplicit + Muxer(const MuxerOptions &options) (defined in edash_packager::media::Muxer)edash_packager::media::Muxerexplicit + muxer_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + options() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + progress_listener() (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected + protection_scheme() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinlineprotected Run()edash_packager::media::Muxer set_clock(base::Clock *clock)edash_packager::media::Muxerinline - SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)edash_packager::media::Muxer + SetKeySource(KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)edash_packager::media::Muxer SetMuxerListener(scoped_ptr< MuxerListener > muxer_listener)edash_packager::media::Muxer SetProgressListener(scoped_ptr< ProgressListener > progress_listener)edash_packager::media::Muxer streams() const (defined in edash_packager::media::Muxer)edash_packager::media::Muxerinline @@ -117,7 +117,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd6/content__protection__element_8h_source.html b/docs/de/dd6/content__protection__element_8h_source.html index 91193f3c9e..9317981a6b 100644 --- a/docs/de/dd6/content__protection__element_8h_source.html +++ b/docs/de/dd6/content__protection__element_8h_source.html @@ -142,7 +142,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html index edd68d80f0..ca2dd30ed2 100644 --- a/docs/de/dd6/muxer__listener__test__helper_8cc_source.html +++ b/docs/de/dd6/muxer__listener__test__helper_8cc_source.html @@ -221,7 +221,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html b/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html index c3dd5583ff..4465e90ac1 100644 --- a/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html +++ b/docs/de/de7/structedash__packager_1_1media_1_1mp4_1_1Media.html @@ -179,7 +179,7 @@ Additional Inherited Members diff --git a/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html b/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html index 09db2fda50..5eaa6aab8a 100644 --- a/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html +++ b/docs/de/de9/classedash__packager_1_1media_1_1LibcryptoThreading.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfa/muxer__listener_8h_source.html b/docs/de/dfa/muxer__listener_8h_source.html index 7c9828443c..772083564e 100644 --- a/docs/de/dfa/muxer__listener_8h_source.html +++ b/docs/de/dfa/muxer__listener_8h_source.html @@ -198,7 +198,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html b/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html index 1708c00595..fc6e69f901 100644 --- a/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html +++ b/docs/de/dfb/structedash__packager_1_1media_1_1H264ModificationOfPicNum-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html b/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html index b9ac251d43..db176a026b 100644 --- a/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html +++ b/docs/de/dfc/classedash__packager_1_1media_1_1mp2t_1_1EsParserH264-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/de/dfd/stream__info_8cc_source.html b/docs/de/dfd/stream__info_8cc_source.html index 88f4027af6..d13f88da96 100644 --- a/docs/de/dfd/stream__info_8cc_source.html +++ b/docs/de/dfd/stream__info_8cc_source.html @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html b/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html index 9ccb6a020c..b7c41f96d3 100644 --- a/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html +++ b/docs/df/d0c/classedash__packager_1_1media_1_1VPCodecConfiguration-members.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d1a/offset__byte__queue_8cc_source.html b/docs/df/d1a/offset__byte__queue_8cc_source.html index 06b3a5eeb8..73c97a5c56 100644 --- a/docs/df/d1a/offset__byte__queue_8cc_source.html +++ b/docs/df/d1a/offset__byte__queue_8cc_source.html @@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d1c/composition__offset__iterator_8h_source.html b/docs/df/d1c/composition__offset__iterator_8h_source.html index f6f53d96f0..72e26ea2ea 100644 --- a/docs/df/d1c/composition__offset__iterator_8h_source.html +++ b/docs/df/d1c/composition__offset__iterator_8h_source.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html b/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html index 4402510353..9208569928 100644 --- a/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html +++ b/docs/df/d1f/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator-members.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html b/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html index fe9504330d..ba1425d76b 100644 --- a/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html +++ b/docs/df/d21/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentRun.html @@ -212,7 +212,7 @@ Additional Inherited Members diff --git a/docs/df/d22/validate__flag_8h_source.html b/docs/df/d22/validate__flag_8h_source.html index a7c75dfd20..fa235cccf4 100644 --- a/docs/df/d22/validate__flag_8h_source.html +++ b/docs/df/d22/validate__flag_8h_source.html @@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d2f/structedash__packager_1_1media_1_1mp4_1_1Language.html b/docs/df/d2f/structedash__packager_1_1media_1_1mp4_1_1Language.html index 9a8daff39b..b19e87cd36 100644 --- a/docs/df/d2f/structedash__packager_1_1media_1_1mp4_1_1Language.html +++ b/docs/df/d2f/structedash__packager_1_1media_1_1mp4_1_1Language.html @@ -120,7 +120,7 @@ std::string code< diff --git a/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html b/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html index 7d713373a3..68ac79dad1 100644 --- a/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html +++ b/docs/df/d30/classedash__packager_1_1media_1_1ContentEncoding.html @@ -208,7 +208,7 @@ Static Public Attributes diff --git a/docs/df/d31/muxer__util_8cc_source.html b/docs/df/d31/muxer__util_8cc_source.html index 1674537eef..1094dc96e5 100644 --- a/docs/df/d31/muxer__util_8cc_source.html +++ b/docs/df/d31/muxer__util_8cc_source.html @@ -247,7 +247,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d32/audio__stream__info_8h_source.html b/docs/df/d32/audio__stream__info_8h_source.html index 665b31dd0d..8882bb6826 100644 --- a/docs/df/d32/audio__stream__info_8h_source.html +++ b/docs/df/d32/audio__stream__info_8h_source.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html b/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html index f6466b897a..c51caffedf 100644 --- a/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html +++ b/docs/df/d3c/structedash__packager_1_1media_1_1mp4_1_1TrackFragmentDecodeTime-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html b/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html index d9afd137ef..e6cc08e795 100644 --- a/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html +++ b/docs/df/d40/classedash__packager_1_1media_1_1Cluster.html @@ -116,7 +116,7 @@ int size () const diff --git a/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html b/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html index e0328c7bf9..f78e03682d 100644 --- a/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html +++ b/docs/df/d43/classedash__packager_1_1media_1_1mp4_1_1Segmenter-members.html @@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); GetIndexRange(size_t *offset, size_t *size)=0edash_packager::media::mp4::Segmenterpure virtual GetInitRange(size_t *offset, size_t *size)=0edash_packager::media::mp4::Segmenterpure virtual GetReferenceTimeScale() const (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenter - Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, EncryptionMode encryption_mode)edash_packager::media::mp4::Segmenter + Initialize(const std::vector< MediaStream * > &streams, MuxerListener *muxer_listener, ProgressListener *progress_listener, KeySource *encryption_key_source, uint32_t max_sd_pixels, double clear_lead_in_seconds, double crypto_period_duration_in_seconds, FourCC protection_scheme)edash_packager::media::mp4::Segmenter moov() (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenterinlineprotected muxer_listener() (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenterinlineprotected options() const (defined in edash_packager::media::mp4::Segmenter)edash_packager::media::mp4::Segmenterinlineprotected @@ -116,7 +116,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d4e/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter.html b/docs/df/d4e/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter.html index 0365d91672..fab6af6190 100644 --- a/docs/df/d4e/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter.html +++ b/docs/df/d4e/classedash__packager_1_1media_1_1webm_1_1MultiSegmentSegmenter.html @@ -277,7 +277,7 @@ double cluster_length_sec< diff --git a/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html b/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html index 307796bc5f..0207896941 100644 --- a/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html +++ b/docs/df/d5b/classedash__packager_1_1media_1_1mp2t_1_1EsParserAdts-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html b/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html index cb597a18fc..46afe2efac 100644 --- a/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html +++ b/docs/df/d5e/classedash__packager_1_1media_1_1mp2t_1_1TsSection-members.html @@ -106,7 +106,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html b/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html index 31dc62ed75..778f6fb9f5 100644 --- a/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html +++ b/docs/df/d62/structedash__packager_1_1media_1_1mp4_1_1AudioSampleEntry.html @@ -203,7 +203,7 @@ Additional Inherited Members diff --git a/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html b/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html index 4e9d3d27f5..c8a0787a35 100644 --- a/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html +++ b/docs/df/d6a/structedash__packager_1_1media_1_1mp4_1_1VideoSampleEntry.html @@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/docs/df/d6e/structedash__packager_1_1media_1_1mp4_1_1Language-members.html b/docs/df/d6e/structedash__packager_1_1media_1_1mp4_1_1Language-members.html index e8ffb4faf5..894794b2cc 100644 --- a/docs/df/d6e/structedash__packager_1_1media_1_1mp4_1_1Language-members.html +++ b/docs/df/d6e/structedash__packager_1_1media_1_1mp4_1_1Language-members.html @@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html b/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html index a3a2046bee..8260008134 100644 --- a/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html +++ b/docs/df/d76/structedash__packager_1_1media_1_1mp4_1_1SampleToChunk.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/df/d7d/webm__info__parser_8cc_source.html b/docs/df/d7d/webm__info__parser_8cc_source.html index 02271f78c7..43c7aa768c 100644 --- a/docs/df/d7d/webm__info__parser_8cc_source.html +++ b/docs/df/d7d/webm__info__parser_8cc_source.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html b/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html index 83eacd1f7c..59f53738bb 100644 --- a/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html +++ b/docs/df/d86/structedash__packager_1_1media_1_1mp4_1_1MovieFragmentHeader.html @@ -182,7 +182,7 @@ Additional Inherited Members diff --git a/docs/df/d89/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser.html b/docs/df/d89/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser.html index 452e1ac0a9..837f8458b8 100644 --- a/docs/df/d89/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser.html +++ b/docs/df/d89/classedash__packager_1_1media_1_1SegmentTestBase_1_1ClusterParser.html @@ -128,7 +128,7 @@ int cluster_count () c diff --git a/docs/df/d8a/vp9__parser_8h_source.html b/docs/df/d8a/vp9__parser_8h_source.html index 3b632b7f41..a588e56119 100644 --- a/docs/df/d8a/vp9__parser_8h_source.html +++ b/docs/df/d8a/vp9__parser_8h_source.html @@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d8a/vpx__parser_8h_source.html b/docs/df/d8a/vpx__parser_8h_source.html index 78310016f9..7b1cd033f5 100644 --- a/docs/df/d8a/vpx__parser_8h_source.html +++ b/docs/df/d8a/vpx__parser_8h_source.html @@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/d96/xml__node_8cc_source.html b/docs/df/d96/xml__node_8cc_source.html index b94cf00f15..832d3eec2b 100644 --- a/docs/df/d96/xml__node_8cc_source.html +++ b/docs/df/d96/xml__node_8cc_source.html @@ -492,7 +492,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html b/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html index 638f9c8398..637100e2b7 100644 --- a/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html +++ b/docs/df/da9/classedash__packager_1_1media_1_1mp4_1_1Fragmenter-members.html @@ -110,7 +110,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/da9/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html b/docs/df/da9/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html index 2a4b70b302..d3824b7b08 100644 --- a/docs/df/da9/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html +++ b/docs/df/da9/structedash__packager_1_1media_1_1mp4_1_1WebVTTSourceLabelBox.html @@ -173,7 +173,7 @@ Additional Inherited Members diff --git a/docs/df/dad/decrypt__config_8h_source.html b/docs/df/dad/decrypt__config_8h_source.html index 85cd8ff8a6..3189daf8aa 100644 --- a/docs/df/dad/decrypt__config_8h_source.html +++ b/docs/df/dad/decrypt__config_8h_source.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
11 #include <vector>
12 
13 #include "packager/base/memory/scoped_ptr.h"
-
14 #include "packager/media/base/encryption_modes.h"
+
14 #include "packager/media/base/fourccs.h"
15 
16 namespace edash_packager {
17 namespace media {
@@ -119,44 +119,49 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
41  public:
43  static const size_t kDecryptionKeySize = 16;
44 
-
52  DecryptConfig(const std::vector<uint8_t>& key_id,
-
53  const std::vector<uint8_t>& iv,
-
54  const std::vector<SubsampleEntry>& subsamples,
-
55  EncryptionMode decryption_mode);
-
56  ~DecryptConfig();
-
57 
-
58  const std::vector<uint8_t>& key_id() const { return key_id_; }
-
59  const std::vector<uint8_t>& iv() const { return iv_; }
-
60  const std::vector<SubsampleEntry>& subsamples() const { return subsamples_; }
-
61  EncryptionMode decryption_mode() const { return decryption_mode_; }
-
62 
-
63  private:
-
64  const std::vector<uint8_t> key_id_;
-
65 
-
66  // Initialization vector.
-
67  const std::vector<uint8_t> iv_;
-
68 
-
69  // Subsample information. May be empty for some formats, meaning entire frame
-
70  // (less data ignored by data_offset_) is encrypted.
-
71  const std::vector<SubsampleEntry> subsamples_;
-
72 
-
73  EncryptionMode decryption_mode_;
+
51  DecryptConfig(const std::vector<uint8_t>& key_id,
+
52  const std::vector<uint8_t>& iv,
+
53  const std::vector<SubsampleEntry>& subsamples);
+
54 
+
63  DecryptConfig(const std::vector<uint8_t>& key_id,
+
64  const std::vector<uint8_t>& iv,
+
65  const std::vector<SubsampleEntry>& subsamples,
+
66  FourCC protection_scheme);
+
67 
+
68  ~DecryptConfig();
+
69 
+
70  const std::vector<uint8_t>& key_id() const { return key_id_; }
+
71  const std::vector<uint8_t>& iv() const { return iv_; }
+
72  const std::vector<SubsampleEntry>& subsamples() const { return subsamples_; }
+
73  FourCC protection_scheme() const { return protection_scheme_; }
74 
-
75  DISALLOW_COPY_AND_ASSIGN(DecryptConfig);
-
76 };
+
75  private:
+
76  const std::vector<uint8_t> key_id_;
77 
-
78 } // namespace media
-
79 } // namespace edash_packager
+
78  // Initialization vector.
+
79  const std::vector<uint8_t> iv_;
80 
-
81 #endif // MEDIA_BASE_DECRYPT_CONFIG_H_
+
81  // Subsample information. May be empty for some formats, meaning entire frame
+
82  // (less data ignored by data_offset_) is encrypted.
+
83  const std::vector<SubsampleEntry> subsamples_;
+
84 
+
85  const FourCC protection_scheme_;
+
86 
+
87  DISALLOW_COPY_AND_ASSIGN(DecryptConfig);
+
88 };
+
89 
+
90 } // namespace media
+
91 } // namespace edash_packager
+
92 
+
93 #endif // MEDIA_BASE_DECRYPT_CONFIG_H_
-
DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, EncryptionMode decryption_mode)
static const size_t kDecryptionKeySize
Keys are always 128 bits.
+
DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples)
diff --git a/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html b/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html index 85d2efa7d7..59a18e08d4 100644 --- a/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html +++ b/docs/df/db4/classedash__packager_1_1media_1_1BitReader.html @@ -362,7 +362,7 @@ template<typename T > diff --git a/docs/df/db8/structedash__packager_1_1media_1_1mp4_1_1AC3Specific-members.html b/docs/df/db8/structedash__packager_1_1media_1_1mp4_1_1AC3Specific-members.html index 3472080acf..e2d63ea970 100644 --- a/docs/df/db8/structedash__packager_1_1media_1_1mp4_1_1AC3Specific-members.html +++ b/docs/df/db8/structedash__packager_1_1media_1_1mp4_1_1AC3Specific-members.html @@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html b/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html index 1edf4f29ae..ee9d838162 100644 --- a/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html +++ b/docs/df/dbc/structedash__packager_1_1media_1_1mp4_1_1ChunkLargeOffset-members.html @@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html b/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html index 90c909cacb..1b009c0471 100644 --- a/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html +++ b/docs/df/dd1/structedash__packager_1_1media_1_1mp4_1_1FileType-members.html @@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html b/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html index 90efb6d411..e8da456102 100644 --- a/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html +++ b/docs/df/dd2/classedash__packager_1_1MockMpdBuilder-members.html @@ -112,7 +112,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dd2/mpd__utils_8h_source.html b/docs/df/dd2/mpd__utils_8h_source.html index 040412548b..e7cd4aba83 100644 --- a/docs/df/dd2/mpd__utils_8h_source.html +++ b/docs/df/dd2/mpd__utils_8h_source.html @@ -175,7 +175,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dda/structedash__packager_1_1media_1_1Cue.html b/docs/df/dda/structedash__packager_1_1media_1_1Cue.html index 0e6eab778d..f63be10ea6 100644 --- a/docs/df/dda/structedash__packager_1_1media_1_1Cue.html +++ b/docs/df/dda/structedash__packager_1_1media_1_1Cue.html @@ -125,7 +125,7 @@ std::vector< std::string >  diff --git a/docs/df/ddc/webm_2segmenter_8h_source.html b/docs/df/ddc/webm_2segmenter_8h_source.html index 3331d4cbeb..2f7af450cb 100644 --- a/docs/df/ddc/webm_2segmenter_8h_source.html +++ b/docs/df/ddc/webm_2segmenter_8h_source.html @@ -250,7 +250,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html b/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html index 6b5170c6e8..cc466f5e1a 100644 --- a/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html +++ b/docs/df/dde/classedash__packager_1_1media_1_1BufferWriter.html @@ -301,7 +301,7 @@ void AppendInt (int64_ diff --git a/docs/df/dde/ts__section__psi_8cc_source.html b/docs/df/dde/ts__section__psi_8cc_source.html index 35469a0587..6541bb9aa8 100644 --- a/docs/df/dde/ts__section__psi_8cc_source.html +++ b/docs/df/dde/ts__section__psi_8cc_source.html @@ -228,7 +228,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html b/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html index 4eb3dd6649..09f06ee7a1 100644 --- a/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html +++ b/docs/df/de3/structedash__packager_1_1media_1_1mp4_1_1TrackHeader-members.html @@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de3/text__track__config_8cc_source.html b/docs/df/de3/text__track__config_8cc_source.html index 3a4974846d..45cbebad11 100644 --- a/docs/df/de3/text__track__config_8cc_source.html +++ b/docs/df/de3/text__track__config_8cc_source.html @@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de6/classedash__packager_1_1media_1_1mp2t_1_1PesPacket-members.html b/docs/df/de6/classedash__packager_1_1media_1_1mp2t_1_1PesPacket-members.html index 8e3303fb1b..2eb13ec84c 100644 --- a/docs/df/de6/classedash__packager_1_1media_1_1mp2t_1_1PesPacket-members.html +++ b/docs/df/de6/classedash__packager_1_1media_1_1mp2t_1_1PesPacket-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html b/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html index c42c713968..9662449acd 100644 --- a/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html +++ b/docs/df/de7/classedash__packager_1_1media_1_1MuxerListener.html @@ -177,7 +177,7 @@ virtual void OnNewSegment< diff --git a/docs/df/de9/segment__info_8h_source.html b/docs/df/de9/segment__info_8h_source.html index 50df872f4f..a677696f48 100644 --- a/docs/df/de9/segment__info_8h_source.html +++ b/docs/df/de9/segment__info_8h_source.html @@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html b/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html index a63825fcde..b75036d27e 100644 --- a/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html +++ b/docs/df/dec/classedash__packager_1_1media_1_1MuxerListener-members.html @@ -108,7 +108,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html b/docs/df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html index 9a4e27af17..aa818b1fa1 100644 --- a/docs/df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html +++ b/docs/df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html @@ -231,7 +231,7 @@ void  diff --git a/docs/df/df4/classedash__packager_1_1media_1_1SeekHead.html b/docs/df/df4/classedash__packager_1_1media_1_1SeekHead.html index 5ce6a12ee6..2bbb7e669f 100644 --- a/docs/df/df4/classedash__packager_1_1media_1_1SeekHead.html +++ b/docs/df/df4/classedash__packager_1_1media_1_1SeekHead.html @@ -148,7 +148,7 @@ void set_tracks_pos (u diff --git a/docs/df/df8/classedash__packager_1_1media_1_1Nalu-members.html b/docs/df/df8/classedash__packager_1_1media_1_1Nalu-members.html index a9172151dc..40060cbc20 100644 --- a/docs/df/df8/classedash__packager_1_1media_1_1Nalu-members.html +++ b/docs/df/df8/classedash__packager_1_1media_1_1Nalu-members.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html b/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html index 0b4449e04a..632d2f572d 100644 --- a/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html +++ b/docs/df/dfa/classedash__packager_1_1media_1_1RsaPublicKey-members.html @@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "../../search",false,'Search'); diff --git a/docs/dir_2618cd273dea54f184e42d7a562af818.html b/docs/dir_2618cd273dea54f184e42d7a562af818.html index 828f84c066..0b9d9bbd20 100644 --- a/docs/dir_2618cd273dea54f184e42d7a562af818.html +++ b/docs/dir_2618cd273dea54f184e42d7a562af818.html @@ -140,7 +140,7 @@ Files diff --git a/docs/dir_279fd47bebb21302c25cfb685e84c359.html b/docs/dir_279fd47bebb21302c25cfb685e84c359.html index 78ef18f9ec..a6201905f3 100644 --- a/docs/dir_279fd47bebb21302c25cfb685e84c359.html +++ b/docs/dir_279fd47bebb21302c25cfb685e84c359.html @@ -119,7 +119,7 @@ Files diff --git a/docs/dir_2eceb70145328c029a5f43350007537a.html b/docs/dir_2eceb70145328c029a5f43350007537a.html index 94ce03c371..635cbdf855 100644 --- a/docs/dir_2eceb70145328c029a5f43350007537a.html +++ b/docs/dir_2eceb70145328c029a5f43350007537a.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html b/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html index 527378396b..fa0160e9f7 100644 --- a/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html +++ b/docs/dir_39dc0668bd5a501998f94e8b4e546c71.html @@ -99,7 +99,7 @@ Directories diff --git a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html index 956b987fa5..eef0519421 100644 --- a/docs/dir_3e9291fd7a18fdecc763294cb2628910.html +++ b/docs/dir_3e9291fd7a18fdecc763294cb2628910.html @@ -169,7 +169,7 @@ Files diff --git a/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html b/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html index 409e53f1e7..c5b9fb042b 100644 --- a/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html +++ b/docs/dir_49627ef5ef0630f6cf11dd06344c4cf0.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html b/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html index 970bfa56a7..15038b1722 100644 --- a/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html +++ b/docs/dir_5039d854a18988ed1f1dbebc120ffbf7.html @@ -181,7 +181,7 @@ Files diff --git a/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html b/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html index b536563b3d..16e0ad08b9 100644 --- a/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html +++ b/docs/dir_5eb2e460866db0ed29e32d64402e5c22.html @@ -145,7 +145,7 @@ Files diff --git a/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html b/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html index e294a528f6..e36620c351 100644 --- a/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html +++ b/docs/dir_65f7acfa8cf3a5f1edc11faa2428b914.html @@ -101,7 +101,7 @@ Directories diff --git a/docs/dir_679a6f4e9fa092b388fc986148018f2a.html b/docs/dir_679a6f4e9fa092b388fc986148018f2a.html index 42a5ed0bd3..3e003ffe41 100644 --- a/docs/dir_679a6f4e9fa092b388fc986148018f2a.html +++ b/docs/dir_679a6f4e9fa092b388fc986148018f2a.html @@ -95,7 +95,7 @@ Files diff --git a/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html b/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html index 9e95cd9d42..0797a4c0cc 100644 --- a/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html +++ b/docs/dir_7f5e01ba7faf319a30cabd201b6ef121.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_89dd766eb2df7d7257dbe806a34404af.html b/docs/dir_89dd766eb2df7d7257dbe806a34404af.html index 649a3258f9..2e28e63e5e 100644 --- a/docs/dir_89dd766eb2df7d7257dbe806a34404af.html +++ b/docs/dir_89dd766eb2df7d7257dbe806a34404af.html @@ -93,7 +93,7 @@ Directories diff --git a/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html b/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html index ce04b5d9ee..780f03ea55 100644 --- a/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html +++ b/docs/dir_aa73376d632f252584a1c0dfbefab2c4.html @@ -109,7 +109,7 @@ Files diff --git a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html index c4476d8541..bf2c3ea8a0 100644 --- a/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html +++ b/docs/dir_c6ada2450b25ab5438a4dba6c9b890af.html @@ -145,8 +145,6 @@ Files   file  demuxer.h [code]   -file  encryption_modes.h [code] -  file  fixed_key_source.cc [code]   file  fixed_key_source.h [code] @@ -247,7 +245,7 @@ Files diff --git a/docs/dir_d422163b96683743ed3963d4aac17747.html b/docs/dir_d422163b96683743ed3963d4aac17747.html index 0319375606..21c1251aff 100644 --- a/docs/dir_d422163b96683743ed3963d4aac17747.html +++ b/docs/dir_d422163b96683743ed3963d4aac17747.html @@ -131,7 +131,7 @@ Files diff --git a/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html b/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html index e01f204f80..b2bb672d18 100644 --- a/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html +++ b/docs/dir_eeaeb49ac3913fcfb450d3ce9cc0141b.html @@ -93,7 +93,7 @@ Files diff --git a/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html b/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html index 40e79f8772..44e54daf05 100644 --- a/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html +++ b/docs/dir_f7dcbe7025bbacfc4b9a7dff6ad41d72.html @@ -151,7 +151,7 @@ Files diff --git a/docs/files.html b/docs/files.html index c01fee8033..dfabfd11a9 100644 --- a/docs/files.html +++ b/docs/files.html @@ -139,55 +139,54 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); ||o*decryptor_source.h ||o*demuxer.cc ||o*demuxer.h -||o*encryption_modes.h -||o*fixed_key_source.cc -||o*fixed_key_source.h -||o*fourccs.h -||o*http_key_fetcher.cc -||o*http_key_fetcher.h -||o*key_fetcher.cc -||o*key_fetcher.h -||o*key_source.cc -||o*key_source.h -||o*limits.h -||o*macros.h -||o*media_parser.h -||o*media_sample.cc -||o*media_sample.h -||o*media_stream.cc -||o*media_stream.h -||o*muxer.cc -||o*muxer.h -||o*muxer_options.cc -||o*muxer_options.h -||o*muxer_util.cc -||o*muxer_util.h -||o*network_util.cc -||o*network_util.h -||o*offset_byte_queue.cc -||o*offset_byte_queue.h -||o*producer_consumer_queue.h -||o*protection_system_specific_info.cc -||o*protection_system_specific_info.h -||o*rcheck.h -||o*request_signer.cc -||o*request_signer.h -||o*rsa_key.cc -||o*rsa_key.h -||o*status.cc -||o*status.h -||o*stream_info.cc -||o*stream_info.h -||o*text_stream_info.cc -||o*text_stream_info.h -||o*text_track.h -||o*text_track_config.cc -||o*text_track_config.h -||o*timestamp.h -||o*video_stream_info.cc -||o*video_stream_info.h -||o*widevine_key_source.cc -||\*widevine_key_source.h +||o*fixed_key_source.cc +||o*fixed_key_source.h +||o*fourccs.h +||o*http_key_fetcher.cc +||o*http_key_fetcher.h +||o*key_fetcher.cc +||o*key_fetcher.h +||o*key_source.cc +||o*key_source.h +||o*limits.h +||o*macros.h +||o*media_parser.h +||o*media_sample.cc +||o*media_sample.h +||o*media_stream.cc +||o*media_stream.h +||o*muxer.cc +||o*muxer.h +||o*muxer_options.cc +||o*muxer_options.h +||o*muxer_util.cc +||o*muxer_util.h +||o*network_util.cc +||o*network_util.h +||o*offset_byte_queue.cc +||o*offset_byte_queue.h +||o*producer_consumer_queue.h +||o*protection_system_specific_info.cc +||o*protection_system_specific_info.h +||o*rcheck.h +||o*request_signer.cc +||o*request_signer.h +||o*rsa_key.cc +||o*rsa_key.h +||o*status.cc +||o*status.h +||o*stream_info.cc +||o*stream_info.h +||o*text_stream_info.cc +||o*text_stream_info.h +||o*text_track.h +||o*text_track_config.cc +||o*text_track_config.h +||o*timestamp.h +||o*video_stream_info.cc +||o*video_stream_info.h +||o*widevine_key_source.cc +||\*widevine_key_source.h |o+event ||o*mpd_notify_muxer_listener.cc ||o*mpd_notify_muxer_listener.h @@ -411,7 +410,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions.html b/docs/functions.html index 75548f79aa..206a11b264 100644 --- a/docs/functions.html +++ b/docs/functions.html @@ -233,7 +233,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_b.html b/docs/functions_b.html index d195b911fe..37eabd1aef 100644 --- a/docs/functions_b.html +++ b/docs/functions_b.html @@ -238,7 +238,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_c.html b/docs/functions_c.html index bf0ceefe02..e13fdd5d08 100644 --- a/docs/functions_c.html +++ b/docs/functions_c.html @@ -234,7 +234,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_d.html b/docs/functions_d.html index bd7f23eab8..3568bf8392 100644 --- a/docs/functions_d.html +++ b/docs/functions_d.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : edash_packager::media::RsaPrivateKey
  • DecryptConfig() -: edash_packager::media::DecryptConfig +: edash_packager::media::DecryptConfig
  • Delete() : edash_packager::media::File @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_e.html b/docs/functions_e.html index 123c59b935..d672459cc6 100644 --- a/docs/functions_e.html +++ b/docs/functions_e.html @@ -134,13 +134,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : edash_packager::media::webm::Encryptor
  • EncryptingFragmenter() -: edash_packager::media::mp4::EncryptingFragmenter +: edash_packager::media::mp4::EncryptingFragmenter
  • diff --git a/docs/functions_eval.html b/docs/functions_eval.html index 2df60e95a5..bd117d2920 100644 --- a/docs/functions_eval.html +++ b/docs/functions_eval.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_f.html b/docs/functions_f.html index 5ce4701fe9..9cd09c7516 100644 --- a/docs/functions_f.html +++ b/docs/functions_f.html @@ -193,7 +193,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func.html b/docs/functions_func.html index f16c93dd4a..88d50f3e26 100644 --- a/docs/functions_func.html +++ b/docs/functions_func.html @@ -233,7 +233,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_b.html b/docs/functions_func_b.html index f5dccd9831..d50139acaf 100644 --- a/docs/functions_func_b.html +++ b/docs/functions_func_b.html @@ -235,7 +235,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_c.html b/docs/functions_func_c.html index ad2065e55e..441d42bd22 100644 --- a/docs/functions_func_c.html +++ b/docs/functions_func_c.html @@ -234,7 +234,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_d.html b/docs/functions_func_d.html index 72721eb085..d3f0af1c3a 100644 --- a/docs/functions_func_d.html +++ b/docs/functions_func_d.html @@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : edash_packager::media::RsaPrivateKey
  • DecryptConfig() -: edash_packager::media::DecryptConfig +: edash_packager::media::DecryptConfig
  • Delete() : edash_packager::media::File @@ -160,7 +160,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_e.html b/docs/functions_func_e.html index b055eb6acd..9824ea1774 100644 --- a/docs/functions_func_e.html +++ b/docs/functions_func_e.html @@ -134,13 +134,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : edash_packager::media::webm::Encryptor
  • EncryptingFragmenter() -: edash_packager::media::mp4::EncryptingFragmenter +: edash_packager::media::mp4::EncryptingFragmenter
  • diff --git a/docs/functions_func_f.html b/docs/functions_func_f.html index 0ab338ec8f..e6a4b2ab27 100644 --- a/docs/functions_func_f.html +++ b/docs/functions_func_f.html @@ -187,7 +187,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_g.html b/docs/functions_func_g.html index 1409b86395..c42215c108 100644 --- a/docs/functions_func_g.html +++ b/docs/functions_func_g.html @@ -121,6 +121,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');  

    - g -

      +
    • GenerateRandomIv() +: edash_packager::media::AesCryptor +
    • GenerateSegmentReference() : edash_packager::media::mp4::Fragmenter
    • @@ -153,7 +156,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
    • GetCodecString() : edash_packager::media::AudioStreamInfo -, edash_packager::media::AVCDecoderConfiguration +, edash_packager::media::AVCDecoderConfiguration , edash_packager::media::HEVCDecoderConfiguration , edash_packager::media::VPCodecConfiguration
    • @@ -200,7 +203,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
    • GetKey() : edash_packager::media::FixedKeySource , edash_packager::media::KeySource -, edash_packager::media::WidevineKeySource +, edash_packager::media::WidevineKeySource
    • GetMaxClearOffset() : edash_packager::media::mp4::TrackRunIterator @@ -253,7 +256,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_h.html b/docs/functions_func_h.html index b3cb24ec37..eb769d60ae 100644 --- a/docs/functions_func_h.html +++ b/docs/functions_func_h.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_i.html b/docs/functions_func_i.html index 6219ec7405..ab0316dd3b 100644 --- a/docs/functions_func_i.html +++ b/docs/functions_func_i.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , edash_packager::media::mp2t::TsWriter , edash_packager::media::mp4::H264VideoSliceHeaderParser , edash_packager::media::mp4::H265VideoSliceHeaderParser -, edash_packager::media::mp4::Segmenter +, edash_packager::media::mp4::Segmenter , edash_packager::media::mp4::VideoSliceHeaderParser , edash_packager::media::NalUnitToByteStreamConverter , edash_packager::media::webm::Encryptor @@ -163,9 +163,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , edash_packager::media::AesEncryptor , edash_packager::media::AesPatternCryptor
    • -
    • InitializeWithRandomIv() -: edash_packager::media::AesEncryptor -
    • InjectClockForTesting() : edash_packager::MpdBuilder
    • @@ -215,7 +212,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_k.html b/docs/functions_func_k.html index ffdf674612..46890eb5a6 100644 --- a/docs/functions_func_k.html +++ b/docs/functions_func_k.html @@ -122,13 +122,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');

      - k -

      diff --git a/docs/functions_func_l.html b/docs/functions_func_l.html index dd9068520f..25b5742d71 100644 --- a/docs/functions_func_l.html +++ b/docs/functions_func_l.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_m.html b/docs/functions_func_m.html index f53fa104b5..e7daff47c1 100644 --- a/docs/functions_func_m.html +++ b/docs/functions_func_m.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_n.html b/docs/functions_func_n.html index a451d6e753..a53abc9c2d 100644 --- a/docs/functions_func_n.html +++ b/docs/functions_func_n.html @@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_o.html b/docs/functions_func_o.html index 36014f3968..023a36c999 100644 --- a/docs/functions_func_o.html +++ b/docs/functions_func_o.html @@ -161,7 +161,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_p.html b/docs/functions_func_p.html index 2e5dae2284..8cdbf138f8 100644 --- a/docs/functions_func_p.html +++ b/docs/functions_func_p.html @@ -219,7 +219,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_r.html b/docs/functions_func_r.html index d7cd6d19e6..e40b5875db 100644 --- a/docs/functions_func_r.html +++ b/docs/functions_func_r.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_s.html b/docs/functions_func_s.html index 5a34bb9f28..b34238682a 100644 --- a/docs/functions_func_s.html +++ b/docs/functions_func_s.html @@ -206,7 +206,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
    • SetKeySource() : edash_packager::media::Demuxer -, edash_packager::media::Muxer +, edash_packager::media::Muxer
    • SetMuxerListener() : edash_packager::media::Muxer @@ -276,7 +276,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_t.html b/docs/functions_func_t.html index f602191b7d..6c5b579cea 100644 --- a/docs/functions_func_t.html +++ b/docs/functions_func_t.html @@ -177,7 +177,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_u.html b/docs/functions_func_u.html index d6bd4e0778..0e7bbc508f 100644 --- a/docs/functions_func_u.html +++ b/docs/functions_func_u.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_v.html b/docs/functions_func_v.html index 7e014cf968..babe04920a 100644 --- a/docs/functions_func_v.html +++ b/docs/functions_func_v.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_w.html b/docs/functions_func_w.html index 698270b3a8..bacf79f11b 100644 --- a/docs/functions_func_w.html +++ b/docs/functions_func_w.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_x.html b/docs/functions_func_x.html index 8f5b4c94b6..16cc40672f 100644 --- a/docs/functions_func_x.html +++ b/docs/functions_func_x.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_func_~.html b/docs/functions_func_~.html index 3d19b4ae60..674954d0b8 100644 --- a/docs/functions_func_~.html +++ b/docs/functions_func_~.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_g.html b/docs/functions_g.html index e032e51417..fb6da992c6 100644 --- a/docs/functions_g.html +++ b/docs/functions_g.html @@ -121,6 +121,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
      Here is a list of all documented class members with links to the class documentation for each member:

      - g -

        +
      • GenerateRandomIv() +: edash_packager::media::AesCryptor +
      • GenerateSegmentReference() : edash_packager::media::mp4::Fragmenter
      • @@ -153,7 +156,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
      • GetCodecString() : edash_packager::media::AudioStreamInfo -, edash_packager::media::AVCDecoderConfiguration +, edash_packager::media::AVCDecoderConfiguration , edash_packager::media::HEVCDecoderConfiguration , edash_packager::media::VPCodecConfiguration
      • @@ -200,7 +203,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
      • GetKey() : edash_packager::media::FixedKeySource , edash_packager::media::KeySource -, edash_packager::media::WidevineKeySource +, edash_packager::media::WidevineKeySource
      • GetMaxClearOffset() : edash_packager::media::mp4::TrackRunIterator @@ -253,7 +256,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_h.html b/docs/functions_h.html index 811212b48d..311a216ec8 100644 --- a/docs/functions_h.html +++ b/docs/functions_h.html @@ -147,7 +147,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_i.html b/docs/functions_i.html index 8d59336e3f..c7dd05ec7b 100644 --- a/docs/functions_i.html +++ b/docs/functions_i.html @@ -150,7 +150,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , edash_packager::media::mp2t::TsWriter , edash_packager::media::mp4::H264VideoSliceHeaderParser , edash_packager::media::mp4::H265VideoSliceHeaderParser -, edash_packager::media::mp4::Segmenter +, edash_packager::media::mp4::Segmenter , edash_packager::media::mp4::VideoSliceHeaderParser , edash_packager::media::NalUnitToByteStreamConverter , edash_packager::media::webm::Encryptor @@ -166,9 +166,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); , edash_packager::media::AesEncryptor , edash_packager::media::AesPatternCryptor
      • -
      • InitializeWithRandomIv() -: edash_packager::media::AesEncryptor -
      • InjectClockForTesting() : edash_packager::MpdBuilder
      • @@ -195,7 +192,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : edash_packager::media::mp4::TrackRunIterator
      • IsSyncSample() -: edash_packager::media::mp4::SyncSampleIterator +: edash_packager::media::mp4::SyncSampleIterator
      • IsValid() : edash_packager::media::mp4::ChunkInfoIterator @@ -218,7 +215,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_k.html b/docs/functions_k.html index 5052b85d2c..b4e930557b 100644 --- a/docs/functions_k.html +++ b/docs/functions_k.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); : edash_packager::media::WebMClusterParser
      • KeyRotationFragmenter() -: edash_packager::media::mp4::KeyRotationFragmenter +: edash_packager::media::mp4::KeyRotationFragmenter
      • kOrderInvalid : edash_packager::media::ContentEncoding @@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_l.html b/docs/functions_l.html index b72e53ae96..385fa16eff 100644 --- a/docs/functions_l.html +++ b/docs/functions_l.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_m.html b/docs/functions_m.html index 296039e765..6919844e18 100644 --- a/docs/functions_m.html +++ b/docs/functions_m.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_n.html b/docs/functions_n.html index c0eb91e44a..5b43c05c21 100644 --- a/docs/functions_n.html +++ b/docs/functions_n.html @@ -177,7 +177,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_o.html b/docs/functions_o.html index e0cac53dd3..594ee2496f 100644 --- a/docs/functions_o.html +++ b/docs/functions_o.html @@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_p.html b/docs/functions_p.html index 815327917d..96ada69d97 100644 --- a/docs/functions_p.html +++ b/docs/functions_p.html @@ -225,7 +225,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_r.html b/docs/functions_r.html index 4c3efc09b0..cd7a303644 100644 --- a/docs/functions_r.html +++ b/docs/functions_r.html @@ -200,7 +200,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_s.html b/docs/functions_s.html index 096c62d356..2e81bab6bd 100644 --- a/docs/functions_s.html +++ b/docs/functions_s.html @@ -218,7 +218,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
      • SetKeySource() : edash_packager::media::Demuxer -, edash_packager::media::Muxer +, edash_packager::media::Muxer
      • SetMuxerListener() : edash_packager::media::Muxer @@ -291,7 +291,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_t.html b/docs/functions_t.html index 4992e2f69c..4ad6d69316 100644 --- a/docs/functions_t.html +++ b/docs/functions_t.html @@ -180,7 +180,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_type.html b/docs/functions_type.html index 49a3121ac5..270fc9d135 100644 --- a/docs/functions_type.html +++ b/docs/functions_type.html @@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_u.html b/docs/functions_u.html index 7cae84d235..98c2e2b085 100644 --- a/docs/functions_u.html +++ b/docs/functions_u.html @@ -146,7 +146,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_v.html b/docs/functions_v.html index 2e0f26d9ca..56dc4189ca 100644 --- a/docs/functions_v.html +++ b/docs/functions_v.html @@ -134,7 +134,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_vars.html b/docs/functions_vars.html index 6f254ebdb4..1e1daf9b5d 100644 --- a/docs/functions_vars.html +++ b/docs/functions_vars.html @@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_w.html b/docs/functions_w.html index 81340148f3..33a1aba194 100644 --- a/docs/functions_w.html +++ b/docs/functions_w.html @@ -176,7 +176,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_x.html b/docs/functions_x.html index 14e7e317be..a67bf2ba64 100644 --- a/docs/functions_x.html +++ b/docs/functions_x.html @@ -128,7 +128,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/functions_~.html b/docs/functions_~.html index 1661afd919..43ebcada01 100644 --- a/docs/functions_~.html +++ b/docs/functions_~.html @@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/hierarchy.html b/docs/hierarchy.html index c86ae654ca..98c121c88d 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -356,7 +356,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/index.html b/docs/index.html index e606b6388d..64409eb2db 100644 --- a/docs/index.html +++ b/docs/index.html @@ -81,7 +81,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespacemembers.html b/docs/namespacemembers.html index 5945364118..1ff04765aa 100644 --- a/docs/namespacemembers.html +++ b/docs/namespacemembers.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespacemembers_func.html b/docs/namespacemembers_func.html index f85cd5f03b..6c62d53d02 100644 --- a/docs/namespacemembers_func.html +++ b/docs/namespacemembers_func.html @@ -124,7 +124,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/namespaces.html b/docs/namespaces.html index d8cb1ee043..6142976124 100644 --- a/docs/namespaces.html +++ b/docs/namespaces.html @@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); diff --git a/docs/search/all_10.js b/docs/search/all_10.js index a0f55f7759..7a0e3f156a 100644 --- a/docs/search/all_10.js +++ b/docs/search/all_10.js @@ -50,7 +50,7 @@ var searchData= ['setid',['SetId',['../dd/d85/classedash__packager_1_1xml_1_1XmlNode.html#ab2ce769958718ef73a580e87e296a470',1,'edash_packager::xml::XmlNode']]], ['setintegerattribute',['SetIntegerAttribute',['../dd/d85/classedash__packager_1_1xml_1_1XmlNode.html#a54d635320973dec76f63cf696db3cf2a',1,'edash_packager::xml::XmlNode']]], ['setiv',['SetIv',['../d9/d60/classedash__packager_1_1media_1_1AesCryptor.html#a04a5cce8c499ed9a41da6c8f067c63ed',1,'edash_packager::media::AesCryptor::SetIv()'],['../d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html#a4e949751428f80a05a2093d54ffab7c8',1,'edash_packager::media::AesCbcDecryptor::SetIv()'],['../dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html#ac70e6553917ad948fb2c18101de0f8d9',1,'edash_packager::media::AesCtrEncryptor::SetIv()'],['../da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html#ab5436c698f7691f2558514088559dc7e',1,'edash_packager::media::AesCbcEncryptor::SetIv()'],['../dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html#af26fd00a479bd109a22cdd7db3d9b37e',1,'edash_packager::media::AesPatternCryptor::SetIv()']]], - ['setkeysource',['SetKeySource',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#aec6a0b843399e2bf752e6fe1f56f02ee',1,'edash_packager::media::Demuxer::SetKeySource()'],['../d4/d1d/classedash__packager_1_1media_1_1Muxer.html#a8376a54357dc92777cc1837b5090bac6',1,'edash_packager::media::Muxer::SetKeySource()']]], + ['setkeysource',['SetKeySource',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#aec6a0b843399e2bf752e6fe1f56f02ee',1,'edash_packager::media::Demuxer::SetKeySource()'],['../d4/d1d/classedash__packager_1_1media_1_1Muxer.html#a246cda6ea92a24b2c5b504678143ed4e',1,'edash_packager::media::Muxer::SetKeySource()']]], ['setmuxerlistener',['SetMuxerListener',['../d4/d1d/classedash__packager_1_1media_1_1Muxer.html#aa8ea4384b819187c51f67ad901aca148',1,'edash_packager::media::Muxer']]], ['setprogresslistener',['SetProgressListener',['../d4/d1d/classedash__packager_1_1media_1_1Muxer.html#a04959bfe66cdb16053326938df9d445a',1,'edash_packager::media::Muxer']]], ['setsampleduration',['SetSampleDuration',['../d7/d15/classedash__packager_1_1Representation.html#a4a81a2db7ec245892334ad927621909c',1,'edash_packager::Representation']]], diff --git a/docs/search/all_3.js b/docs/search/all_3.js index f561556846..757c069536 100644 --- a/docs/search/all_3.js +++ b/docs/search/all_3.js @@ -14,7 +14,7 @@ var searchData= ['decodingtimetosample',['DecodingTimeToSample',['../dc/db7/structedash__packager_1_1media_1_1mp4_1_1DecodingTimeToSample.html',1,'edash_packager::media::mp4']]], ['decrypt',['Decrypt',['../d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html#a5356e2154dfc0707df39f603932ed96b',1,'edash_packager::media::RsaPrivateKey']]], ['decryptconfig',['DecryptConfig',['../d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html',1,'edash_packager::media']]], - ['decryptconfig',['DecryptConfig',['../d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html#ae83fdc91d0d93211c8e0882d6d9da961',1,'edash_packager::media::DecryptConfig']]], + ['decryptconfig',['DecryptConfig',['../d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html#a271d0e6319a0542e00a2dd7005293bd2',1,'edash_packager::media::DecryptConfig::DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples)'],['../d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html#a8df7a59d0af30c39eb4a231fc12b56bc',1,'edash_packager::media::DecryptConfig::DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, FourCC protection_scheme)']]], ['decryptorsource',['DecryptorSource',['../dc/df1/classedash__packager_1_1media_1_1DecryptorSource.html',1,'edash_packager::media']]], ['delete',['Delete',['../de/d19/classedash__packager_1_1media_1_1File.html#a7e0fcd3c439e810e8e17baf32dcc75af',1,'edash_packager::media::File::Delete()'],['../dd/d98/classedash__packager_1_1media_1_1LocalFile.html#a95e4a5eff87224c9a156b5e2c7824cb9',1,'edash_packager::media::LocalFile::Delete()'],['../d3/d81/classedash__packager_1_1media_1_1MemoryFile.html#a039f71274ee7607087a43d3be67fd6f8',1,'edash_packager::media::MemoryFile::Delete()']]], ['deleteall',['DeleteAll',['../d3/d81/classedash__packager_1_1media_1_1MemoryFile.html#a85b276d2b2d58c6b6a4d599906a510de',1,'edash_packager::media::MemoryFile']]], diff --git a/docs/search/all_4.js b/docs/search/all_4.js index 90c392c8e6..9544cdc14b 100644 --- a/docs/search/all_4.js +++ b/docs/search/all_4.js @@ -11,7 +11,7 @@ var searchData= ['empty',['Empty',['../d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html#a43aa98358d9f8e0f416a6170ae3cb925',1,'edash_packager::media::ProducerConsumerQueue']]], ['encrypt',['Encrypt',['../d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html#a287216e5bb6ac3781388db23329a8f27',1,'edash_packager::media::RsaPublicKey']]], ['encryptframe',['EncryptFrame',['../d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html#ac7293db5bad8b0cd86ee428efaaf5318',1,'edash_packager::media::webm::Encryptor']]], - ['encryptingfragmenter',['EncryptingFragmenter',['../d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html#a6ab7ed1ca842bc5618f03971911c2457',1,'edash_packager::media::mp4::EncryptingFragmenter']]], + ['encryptingfragmenter',['EncryptingFragmenter',['../d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html#a162003f797e713059d2c32b0c2998fdc',1,'edash_packager::media::mp4::EncryptingFragmenter']]], ['encryptingfragmenter',['EncryptingFragmenter',['../d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html',1,'edash_packager::media::mp4']]], ['encryptionkey',['EncryptionKey',['../d0/d86/structedash__packager_1_1media_1_1EncryptionKey.html',1,'edash_packager::media']]], ['encryptor',['Encryptor',['../d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html',1,'edash_packager::media::webm']]], diff --git a/docs/search/all_6.js b/docs/search/all_6.js index bce5d850ab..535ab1cf1d 100644 --- a/docs/search/all_6.js +++ b/docs/search/all_6.js @@ -1,5 +1,6 @@ var searchData= [ + ['generaterandomiv',['GenerateRandomIv',['../d9/d60/classedash__packager_1_1media_1_1AesCryptor.html#a0fccd9fe2270f0c584ff1f6c5dd6bd91',1,'edash_packager::media::AesCryptor']]], ['generatesegmentreference',['GenerateSegmentReference',['../db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html#a04350ab4d9b2b403d8b150512786b7ec',1,'edash_packager::media::mp4::Fragmenter']]], ['generatesignature',['GenerateSignature',['../dc/d73/classedash__packager_1_1media_1_1RequestSigner.html#a76278a2339751c4e69876e63cc088ef6',1,'edash_packager::media::RequestSigner::GenerateSignature()'],['../d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html#abd7ef59b6d38ee2baa7c095fde6d9d69',1,'edash_packager::media::AesRequestSigner::GenerateSignature()'],['../dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html#abeb03b173b601577b16cd18a1cf70738',1,'edash_packager::media::RsaRequestSigner::GenerateSignature()'],['../d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html#ab402109f8456af90f3cc34cee76184d9',1,'edash_packager::media::RsaPrivateKey::GenerateSignature()']]], ['get',['Get',['../d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html#a20da7a424dfe7ec7bf198b118a08aacb',1,'edash_packager::media::HttpKeyFetcher']]], diff --git a/docs/search/all_8.js b/docs/search/all_8.js index fc9a83f6f5..f585828376 100644 --- a/docs/search/all_8.js +++ b/docs/search/all_8.js @@ -5,10 +5,9 @@ var searchData= ['ignorebytes',['IgnoreBytes',['../dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html#a7efa53df1ef135edd31d1e1818b9a884',1,'edash_packager::media::mp4::BoxBuffer']]], ['init',['Init',['../dc/d48/classedash__packager_1_1media_1_1MediaParser.html#a7ac1ee5db298922f094920cd564bfb16',1,'edash_packager::media::MediaParser::Init()'],['../dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#abfcd1be5f00d8091feb044e7199966f5',1,'edash_packager::media::mp2t::Mp2tMediaParser::Init()'],['../d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html#a4ef745c8846adc9e932059a4e91f67c2',1,'edash_packager::media::mp4::MP4MediaParser::Init()'],['../db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html#a6fd0f1d72f9a31a1c0d26c3b1ae25250',1,'edash_packager::media::mp4::TrackRunIterator::Init()'],['../db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html#a354985cb4f5eed26e91dbb343a6343a0',1,'edash_packager::media::mp4::TrackRunIterator::Init(const MovieFragment &moof)'],['../dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html#a8a85bf527013ebbb0b902dcd56039467',1,'edash_packager::media::WebMMediaParser::Init()'],['../d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html#a6e678b88894210cd665c1466b0c0fd41',1,'edash_packager::media::WebVttMediaParser::Init()'],['../d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html#aef36e6f7cc6bdb2c6b287ae07ef9a55a',1,'edash_packager::media::wvm::WvmMediaParser::Init()'],['../da/d49/classedash__packager_1_1DashIopMpdNotifier.html#ace93090275f0ef9b33cf62648f854690',1,'edash_packager::DashIopMpdNotifier::Init()'],['../d7/d15/classedash__packager_1_1Representation.html#aac7ad6e54e88b4d31196d54ad5fb4a9d',1,'edash_packager::Representation::Init()'],['../da/d38/classedash__packager_1_1MpdNotifier.html#ae7067d35133b0573a2919fb69195328e',1,'edash_packager::MpdNotifier::Init()'],['../db/d56/classedash__packager_1_1SimpleMpdNotifier.html#a8c0efff460547138724769b768ae6341',1,'edash_packager::SimpleMpdNotifier::Init()']]], ['initcb',['InitCB',['../dc/d48/classedash__packager_1_1media_1_1MediaParser.html#af5c74c8723a5306faddcdfdcadb4ab4a',1,'edash_packager::media::MediaParser']]], - ['initialize',['Initialize',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#a5b156dbf1d1c86f4d18e137b3f7bc7c9',1,'edash_packager::media::Demuxer::Initialize()'],['../d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html#a7f11850cfce911e3aec88974fc76105c',1,'edash_packager::media::NalUnitToByteStreamConverter::Initialize()'],['../de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a00c8ff143e59d207fbb09e092802f6fd',1,'edash_packager::media::mp2t::PesPacketGenerator::Initialize()'],['../df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html#a7b399c00cca9e450cc8b2d33aca1bfd1',1,'edash_packager::media::mp2t::TsSegmenter::Initialize()'],['../d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html#a17147205cdc4f959c67cc2e803e59e27',1,'edash_packager::media::mp2t::TsWriter::Initialize()'],['../dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html#ae35266f50e16bef0443aa909223bd3d1',1,'edash_packager::media::mp4::Segmenter::Initialize()'],['../d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html#a4194fd829c0208859ac929b670a6aea7',1,'edash_packager::media::mp4::VideoSliceHeaderParser::Initialize()'],['../d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html#a611fcfffaa2954dd432d421b991ebbf6',1,'edash_packager::media::mp4::H264VideoSliceHeaderParser::Initialize()'],['../db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html#a4de8eae24d3828a2cadc5824362ab956',1,'edash_packager::media::mp4::H265VideoSliceHeaderParser::Initialize()'],['../d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html#ab37db1af563c523c84ef1addb9594175',1,'edash_packager::media::webm::Encryptor::Initialize()'],['../da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html#a5918dc2431560b2ae816c0840ddf7728',1,'edash_packager::media::webm::Segmenter::Initialize()']]], + ['initialize',['Initialize',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#a5b156dbf1d1c86f4d18e137b3f7bc7c9',1,'edash_packager::media::Demuxer::Initialize()'],['../d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html#a7f11850cfce911e3aec88974fc76105c',1,'edash_packager::media::NalUnitToByteStreamConverter::Initialize()'],['../de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a00c8ff143e59d207fbb09e092802f6fd',1,'edash_packager::media::mp2t::PesPacketGenerator::Initialize()'],['../df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html#a7b399c00cca9e450cc8b2d33aca1bfd1',1,'edash_packager::media::mp2t::TsSegmenter::Initialize()'],['../d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html#a17147205cdc4f959c67cc2e803e59e27',1,'edash_packager::media::mp2t::TsWriter::Initialize()'],['../dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html#af6ec4732a1d6addb755c85e0fface542',1,'edash_packager::media::mp4::Segmenter::Initialize()'],['../d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html#a4194fd829c0208859ac929b670a6aea7',1,'edash_packager::media::mp4::VideoSliceHeaderParser::Initialize()'],['../d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html#a611fcfffaa2954dd432d421b991ebbf6',1,'edash_packager::media::mp4::H264VideoSliceHeaderParser::Initialize()'],['../db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html#a4de8eae24d3828a2cadc5824362ab956',1,'edash_packager::media::mp4::H265VideoSliceHeaderParser::Initialize()'],['../d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html#ab37db1af563c523c84ef1addb9594175',1,'edash_packager::media::webm::Encryptor::Initialize()'],['../da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html#a5918dc2431560b2ae816c0840ddf7728',1,'edash_packager::media::webm::Segmenter::Initialize()']]], ['initializefragment',['InitializeFragment',['../d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html#a3159dcc8d0f02da113715a97d096afef',1,'edash_packager::media::mp4::EncryptingFragmenter::InitializeFragment()'],['../db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html#ab55cbcb40b4c1308d70052a4b8ccd6af',1,'edash_packager::media::mp4::Fragmenter::InitializeFragment()']]], ['initializewithiv',['InitializeWithIv',['../d9/d60/classedash__packager_1_1media_1_1AesCryptor.html#abf57fe34c90b57abdcc33230f022adbe',1,'edash_packager::media::AesCryptor::InitializeWithIv()'],['../d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html#a59bac38018c269795c588169e98a5b41',1,'edash_packager::media::AesCbcDecryptor::InitializeWithIv()'],['../dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html#a6fc9c04be119f35fb0557f6f348be4f9',1,'edash_packager::media::AesEncryptor::InitializeWithIv()'],['../dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html#a79f34ea0e31d780356ec5cca6b8b8516',1,'edash_packager::media::AesPatternCryptor::InitializeWithIv()']]], - ['initializewithrandomiv',['InitializeWithRandomIv',['../dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html#a49631d3d3d834bf7d78e0d51d7b33651',1,'edash_packager::media::AesEncryptor']]], ['injectclockfortesting',['InjectClockForTesting',['../d3/dfa/classedash__packager_1_1MpdBuilder.html#a6e789afd6427510a43ce4c45a4ba5143',1,'edash_packager::MpdBuilder']]], ['injectpespacketgeneratorfortesting',['InjectPesPacketGeneratorForTesting',['../df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html#a5302a3cb21f99896f4e33961d7a4b0b3',1,'edash_packager::media::mp2t::TsSegmenter']]], ['injecttswriterfortesting',['InjectTsWriterForTesting',['../df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html#a1722d50d19b4fc5c0e98969a0790800a',1,'edash_packager::media::mp2t::TsSegmenter']]], diff --git a/docs/search/all_9.js b/docs/search/all_9.js index 52850dd341..761582f6fd 100644 --- a/docs/search/all_9.js +++ b/docs/search/all_9.js @@ -6,7 +6,7 @@ var searchData= ['kdefaultvideobufferdurationinms',['kDefaultVideoBufferDurationInMs',['../db/da0/classedash__packager_1_1media_1_1WebMClusterParser.html#a48204223314bba946c59c1fbf3fbbf86a32a5cc2c19fb1598071109cad939311a',1,'edash_packager::media::WebMClusterParser']]], ['keyfetcher',['KeyFetcher',['../d4/d43/classedash__packager_1_1media_1_1KeyFetcher.html',1,'edash_packager::media']]], ['keyrotationfragmenter',['KeyRotationFragmenter',['../dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html',1,'edash_packager::media::mp4']]], - ['keyrotationfragmenter',['KeyRotationFragmenter',['../dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html#a4d61823a814e9f5e0892caa37c3cb7ef',1,'edash_packager::media::mp4::KeyRotationFragmenter']]], + ['keyrotationfragmenter',['KeyRotationFragmenter',['../dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html#a14975b0ac00476687b7870c5bf51dcdf',1,'edash_packager::media::mp4::KeyRotationFragmenter']]], ['keysource',['KeySource',['../d9/d8b/classedash__packager_1_1media_1_1KeySource.html',1,'edash_packager::media']]], ['korderinvalid',['kOrderInvalid',['../df/d30/classedash__packager_1_1media_1_1ContentEncoding.html#a4d87c9881d554fbeb6999280d2e463d1',1,'edash_packager::media::ContentEncoding']]] ]; diff --git a/docs/search/functions_10.js b/docs/search/functions_10.js index cd1247510e..a8271d3946 100644 --- a/docs/search/functions_10.js +++ b/docs/search/functions_10.js @@ -25,7 +25,7 @@ var searchData= ['setid',['SetId',['../dd/d85/classedash__packager_1_1xml_1_1XmlNode.html#ab2ce769958718ef73a580e87e296a470',1,'edash_packager::xml::XmlNode']]], ['setintegerattribute',['SetIntegerAttribute',['../dd/d85/classedash__packager_1_1xml_1_1XmlNode.html#a54d635320973dec76f63cf696db3cf2a',1,'edash_packager::xml::XmlNode']]], ['setiv',['SetIv',['../d9/d60/classedash__packager_1_1media_1_1AesCryptor.html#a04a5cce8c499ed9a41da6c8f067c63ed',1,'edash_packager::media::AesCryptor::SetIv()'],['../d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html#a4e949751428f80a05a2093d54ffab7c8',1,'edash_packager::media::AesCbcDecryptor::SetIv()'],['../dd/d79/classedash__packager_1_1media_1_1AesCtrEncryptor.html#ac70e6553917ad948fb2c18101de0f8d9',1,'edash_packager::media::AesCtrEncryptor::SetIv()'],['../da/d7f/classedash__packager_1_1media_1_1AesCbcEncryptor.html#ab5436c698f7691f2558514088559dc7e',1,'edash_packager::media::AesCbcEncryptor::SetIv()'],['../dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html#af26fd00a479bd109a22cdd7db3d9b37e',1,'edash_packager::media::AesPatternCryptor::SetIv()']]], - ['setkeysource',['SetKeySource',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#aec6a0b843399e2bf752e6fe1f56f02ee',1,'edash_packager::media::Demuxer::SetKeySource()'],['../d4/d1d/classedash__packager_1_1media_1_1Muxer.html#a8376a54357dc92777cc1837b5090bac6',1,'edash_packager::media::Muxer::SetKeySource()']]], + ['setkeysource',['SetKeySource',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#aec6a0b843399e2bf752e6fe1f56f02ee',1,'edash_packager::media::Demuxer::SetKeySource()'],['../d4/d1d/classedash__packager_1_1media_1_1Muxer.html#a246cda6ea92a24b2c5b504678143ed4e',1,'edash_packager::media::Muxer::SetKeySource()']]], ['setmuxerlistener',['SetMuxerListener',['../d4/d1d/classedash__packager_1_1media_1_1Muxer.html#aa8ea4384b819187c51f67ad901aca148',1,'edash_packager::media::Muxer']]], ['setprogresslistener',['SetProgressListener',['../d4/d1d/classedash__packager_1_1media_1_1Muxer.html#a04959bfe66cdb16053326938df9d445a',1,'edash_packager::media::Muxer']]], ['setsampleduration',['SetSampleDuration',['../d7/d15/classedash__packager_1_1Representation.html#a4a81a2db7ec245892334ad927621909c',1,'edash_packager::Representation']]], diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js index 1b3113a895..22917cf0bf 100644 --- a/docs/search/functions_3.js +++ b/docs/search/functions_3.js @@ -5,7 +5,7 @@ var searchData= ['data_5fsize',['data_size',['../d8/dfb/classedash__packager_1_1media_1_1DecoderConfiguration.html#a5233b5e870d55f0487ee0387ad69921f',1,'edash_packager::media::DecoderConfiguration']]], ['decodingtimeiterator',['DecodingTimeIterator',['../d4/d90/classedash__packager_1_1media_1_1mp4_1_1DecodingTimeIterator.html#a23d155e855c769a50114d0a720b6aac0',1,'edash_packager::media::mp4::DecodingTimeIterator']]], ['decrypt',['Decrypt',['../d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html#a5356e2154dfc0707df39f603932ed96b',1,'edash_packager::media::RsaPrivateKey']]], - ['decryptconfig',['DecryptConfig',['../d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html#ae83fdc91d0d93211c8e0882d6d9da961',1,'edash_packager::media::DecryptConfig']]], + ['decryptconfig',['DecryptConfig',['../d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html#a271d0e6319a0542e00a2dd7005293bd2',1,'edash_packager::media::DecryptConfig::DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples)'],['../d4/da1/classedash__packager_1_1media_1_1DecryptConfig.html#a8df7a59d0af30c39eb4a231fc12b56bc',1,'edash_packager::media::DecryptConfig::DecryptConfig(const std::vector< uint8_t > &key_id, const std::vector< uint8_t > &iv, const std::vector< SubsampleEntry > &subsamples, FourCC protection_scheme)']]], ['delete',['Delete',['../de/d19/classedash__packager_1_1media_1_1File.html#a7e0fcd3c439e810e8e17baf32dcc75af',1,'edash_packager::media::File::Delete()'],['../dd/d98/classedash__packager_1_1media_1_1LocalFile.html#a95e4a5eff87224c9a156b5e2c7824cb9',1,'edash_packager::media::LocalFile::Delete()'],['../d3/d81/classedash__packager_1_1media_1_1MemoryFile.html#a039f71274ee7607087a43d3be67fd6f8',1,'edash_packager::media::MemoryFile::Delete()']]], ['deleteall',['DeleteAll',['../d3/d81/classedash__packager_1_1media_1_1MemoryFile.html#a85b276d2b2d58c6b6a4d599906a510de',1,'edash_packager::media::MemoryFile']]], ['demuxer',['Demuxer',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#a5305b2b16956b7ab973eeded4232226e',1,'edash_packager::media::Demuxer']]], diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js index 7726f148fc..96ebe8477a 100644 --- a/docs/search/functions_4.js +++ b/docs/search/functions_4.js @@ -4,5 +4,5 @@ var searchData= ['empty',['Empty',['../d5/d02/classedash__packager_1_1media_1_1ProducerConsumerQueue.html#a43aa98358d9f8e0f416a6170ae3cb925',1,'edash_packager::media::ProducerConsumerQueue']]], ['encrypt',['Encrypt',['../d1/d86/classedash__packager_1_1media_1_1RsaPublicKey.html#a287216e5bb6ac3781388db23329a8f27',1,'edash_packager::media::RsaPublicKey']]], ['encryptframe',['EncryptFrame',['../d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html#ac7293db5bad8b0cd86ee428efaaf5318',1,'edash_packager::media::webm::Encryptor']]], - ['encryptingfragmenter',['EncryptingFragmenter',['../d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html#a6ab7ed1ca842bc5618f03971911c2457',1,'edash_packager::media::mp4::EncryptingFragmenter']]] + ['encryptingfragmenter',['EncryptingFragmenter',['../d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html#a162003f797e713059d2c32b0c2998fdc',1,'edash_packager::media::mp4::EncryptingFragmenter']]] ]; diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js index bce5d850ab..535ab1cf1d 100644 --- a/docs/search/functions_6.js +++ b/docs/search/functions_6.js @@ -1,5 +1,6 @@ var searchData= [ + ['generaterandomiv',['GenerateRandomIv',['../d9/d60/classedash__packager_1_1media_1_1AesCryptor.html#a0fccd9fe2270f0c584ff1f6c5dd6bd91',1,'edash_packager::media::AesCryptor']]], ['generatesegmentreference',['GenerateSegmentReference',['../db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html#a04350ab4d9b2b403d8b150512786b7ec',1,'edash_packager::media::mp4::Fragmenter']]], ['generatesignature',['GenerateSignature',['../dc/d73/classedash__packager_1_1media_1_1RequestSigner.html#a76278a2339751c4e69876e63cc088ef6',1,'edash_packager::media::RequestSigner::GenerateSignature()'],['../d8/dcc/classedash__packager_1_1media_1_1AesRequestSigner.html#abd7ef59b6d38ee2baa7c095fde6d9d69',1,'edash_packager::media::AesRequestSigner::GenerateSignature()'],['../dd/da8/classedash__packager_1_1media_1_1RsaRequestSigner.html#abeb03b173b601577b16cd18a1cf70738',1,'edash_packager::media::RsaRequestSigner::GenerateSignature()'],['../d5/d62/classedash__packager_1_1media_1_1RsaPrivateKey.html#ab402109f8456af90f3cc34cee76184d9',1,'edash_packager::media::RsaPrivateKey::GenerateSignature()']]], ['get',['Get',['../d3/d3e/classedash__packager_1_1media_1_1HttpKeyFetcher.html#a20da7a424dfe7ec7bf198b118a08aacb',1,'edash_packager::media::HttpKeyFetcher']]], diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js index 1d0a317ac1..35711c80e3 100644 --- a/docs/search/functions_8.js +++ b/docs/search/functions_8.js @@ -3,10 +3,9 @@ var searchData= ['id',['id',['../d7/d15/classedash__packager_1_1Representation.html#a0a59920aa8a31f1fb2b30a2ee8cc4e95',1,'edash_packager::Representation']]], ['ignorebytes',['IgnoreBytes',['../dd/d4f/classedash__packager_1_1media_1_1mp4_1_1BoxBuffer.html#a7efa53df1ef135edd31d1e1818b9a884',1,'edash_packager::media::mp4::BoxBuffer']]], ['init',['Init',['../dc/d48/classedash__packager_1_1media_1_1MediaParser.html#a7ac1ee5db298922f094920cd564bfb16',1,'edash_packager::media::MediaParser::Init()'],['../dc/dab/classedash__packager_1_1media_1_1mp2t_1_1Mp2tMediaParser.html#abfcd1be5f00d8091feb044e7199966f5',1,'edash_packager::media::mp2t::Mp2tMediaParser::Init()'],['../d8/d0d/classedash__packager_1_1media_1_1mp4_1_1MP4MediaParser.html#a4ef745c8846adc9e932059a4e91f67c2',1,'edash_packager::media::mp4::MP4MediaParser::Init()'],['../db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html#a6fd0f1d72f9a31a1c0d26c3b1ae25250',1,'edash_packager::media::mp4::TrackRunIterator::Init()'],['../db/d26/classedash__packager_1_1media_1_1mp4_1_1TrackRunIterator.html#a354985cb4f5eed26e91dbb343a6343a0',1,'edash_packager::media::mp4::TrackRunIterator::Init(const MovieFragment &moof)'],['../dd/d99/classedash__packager_1_1media_1_1WebMMediaParser.html#a8a85bf527013ebbb0b902dcd56039467',1,'edash_packager::media::WebMMediaParser::Init()'],['../d2/d51/classedash__packager_1_1media_1_1WebVttMediaParser.html#a6e678b88894210cd665c1466b0c0fd41',1,'edash_packager::media::WebVttMediaParser::Init()'],['../d8/da0/classedash__packager_1_1media_1_1wvm_1_1WvmMediaParser.html#aef36e6f7cc6bdb2c6b287ae07ef9a55a',1,'edash_packager::media::wvm::WvmMediaParser::Init()'],['../da/d49/classedash__packager_1_1DashIopMpdNotifier.html#ace93090275f0ef9b33cf62648f854690',1,'edash_packager::DashIopMpdNotifier::Init()'],['../d7/d15/classedash__packager_1_1Representation.html#aac7ad6e54e88b4d31196d54ad5fb4a9d',1,'edash_packager::Representation::Init()'],['../da/d38/classedash__packager_1_1MpdNotifier.html#ae7067d35133b0573a2919fb69195328e',1,'edash_packager::MpdNotifier::Init()'],['../db/d56/classedash__packager_1_1SimpleMpdNotifier.html#a8c0efff460547138724769b768ae6341',1,'edash_packager::SimpleMpdNotifier::Init()']]], - ['initialize',['Initialize',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#a5b156dbf1d1c86f4d18e137b3f7bc7c9',1,'edash_packager::media::Demuxer::Initialize()'],['../d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html#a7f11850cfce911e3aec88974fc76105c',1,'edash_packager::media::NalUnitToByteStreamConverter::Initialize()'],['../de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a00c8ff143e59d207fbb09e092802f6fd',1,'edash_packager::media::mp2t::PesPacketGenerator::Initialize()'],['../df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html#a7b399c00cca9e450cc8b2d33aca1bfd1',1,'edash_packager::media::mp2t::TsSegmenter::Initialize()'],['../d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html#a17147205cdc4f959c67cc2e803e59e27',1,'edash_packager::media::mp2t::TsWriter::Initialize()'],['../dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html#ae35266f50e16bef0443aa909223bd3d1',1,'edash_packager::media::mp4::Segmenter::Initialize()'],['../d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html#a4194fd829c0208859ac929b670a6aea7',1,'edash_packager::media::mp4::VideoSliceHeaderParser::Initialize()'],['../d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html#a611fcfffaa2954dd432d421b991ebbf6',1,'edash_packager::media::mp4::H264VideoSliceHeaderParser::Initialize()'],['../db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html#a4de8eae24d3828a2cadc5824362ab956',1,'edash_packager::media::mp4::H265VideoSliceHeaderParser::Initialize()'],['../d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html#ab37db1af563c523c84ef1addb9594175',1,'edash_packager::media::webm::Encryptor::Initialize()'],['../da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html#a5918dc2431560b2ae816c0840ddf7728',1,'edash_packager::media::webm::Segmenter::Initialize()']]], + ['initialize',['Initialize',['../d5/dce/classedash__packager_1_1media_1_1Demuxer.html#a5b156dbf1d1c86f4d18e137b3f7bc7c9',1,'edash_packager::media::Demuxer::Initialize()'],['../d4/dbe/classedash__packager_1_1media_1_1NalUnitToByteStreamConverter.html#a7f11850cfce911e3aec88974fc76105c',1,'edash_packager::media::NalUnitToByteStreamConverter::Initialize()'],['../de/d1a/classedash__packager_1_1media_1_1mp2t_1_1PesPacketGenerator.html#a00c8ff143e59d207fbb09e092802f6fd',1,'edash_packager::media::mp2t::PesPacketGenerator::Initialize()'],['../df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html#a7b399c00cca9e450cc8b2d33aca1bfd1',1,'edash_packager::media::mp2t::TsSegmenter::Initialize()'],['../d4/d26/classedash__packager_1_1media_1_1mp2t_1_1TsWriter.html#a17147205cdc4f959c67cc2e803e59e27',1,'edash_packager::media::mp2t::TsWriter::Initialize()'],['../dc/de1/classedash__packager_1_1media_1_1mp4_1_1Segmenter.html#af6ec4732a1d6addb755c85e0fface542',1,'edash_packager::media::mp4::Segmenter::Initialize()'],['../d1/dd0/classedash__packager_1_1media_1_1mp4_1_1VideoSliceHeaderParser.html#a4194fd829c0208859ac929b670a6aea7',1,'edash_packager::media::mp4::VideoSliceHeaderParser::Initialize()'],['../d6/dc2/classedash__packager_1_1media_1_1mp4_1_1H264VideoSliceHeaderParser.html#a611fcfffaa2954dd432d421b991ebbf6',1,'edash_packager::media::mp4::H264VideoSliceHeaderParser::Initialize()'],['../db/dbf/classedash__packager_1_1media_1_1mp4_1_1H265VideoSliceHeaderParser.html#a4de8eae24d3828a2cadc5824362ab956',1,'edash_packager::media::mp4::H265VideoSliceHeaderParser::Initialize()'],['../d2/d76/classedash__packager_1_1media_1_1webm_1_1Encryptor.html#ab37db1af563c523c84ef1addb9594175',1,'edash_packager::media::webm::Encryptor::Initialize()'],['../da/d14/classedash__packager_1_1media_1_1webm_1_1Segmenter.html#a5918dc2431560b2ae816c0840ddf7728',1,'edash_packager::media::webm::Segmenter::Initialize()']]], ['initializefragment',['InitializeFragment',['../d8/d1e/classedash__packager_1_1media_1_1mp4_1_1EncryptingFragmenter.html#a3159dcc8d0f02da113715a97d096afef',1,'edash_packager::media::mp4::EncryptingFragmenter::InitializeFragment()'],['../db/dae/classedash__packager_1_1media_1_1mp4_1_1Fragmenter.html#ab55cbcb40b4c1308d70052a4b8ccd6af',1,'edash_packager::media::mp4::Fragmenter::InitializeFragment()']]], ['initializewithiv',['InitializeWithIv',['../d9/d60/classedash__packager_1_1media_1_1AesCryptor.html#abf57fe34c90b57abdcc33230f022adbe',1,'edash_packager::media::AesCryptor::InitializeWithIv()'],['../d5/dcb/classedash__packager_1_1media_1_1AesCbcDecryptor.html#a59bac38018c269795c588169e98a5b41',1,'edash_packager::media::AesCbcDecryptor::InitializeWithIv()'],['../dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html#a6fc9c04be119f35fb0557f6f348be4f9',1,'edash_packager::media::AesEncryptor::InitializeWithIv()'],['../dc/d54/classedash__packager_1_1media_1_1AesPatternCryptor.html#a79f34ea0e31d780356ec5cca6b8b8516',1,'edash_packager::media::AesPatternCryptor::InitializeWithIv()']]], - ['initializewithrandomiv',['InitializeWithRandomIv',['../dc/d92/classedash__packager_1_1media_1_1AesEncryptor.html#a49631d3d3d834bf7d78e0d51d7b33651',1,'edash_packager::media::AesEncryptor']]], ['injectclockfortesting',['InjectClockForTesting',['../d3/dfa/classedash__packager_1_1MpdBuilder.html#a6e789afd6427510a43ce4c45a4ba5143',1,'edash_packager::MpdBuilder']]], ['injectpespacketgeneratorfortesting',['InjectPesPacketGeneratorForTesting',['../df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html#a5302a3cb21f99896f4e33961d7a4b0b3',1,'edash_packager::media::mp2t::TsSegmenter']]], ['injecttswriterfortesting',['InjectTsWriterForTesting',['../df/df0/classedash__packager_1_1media_1_1mp2t_1_1TsSegmenter.html#a1722d50d19b4fc5c0e98969a0790800a',1,'edash_packager::media::mp2t::TsSegmenter']]], diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js index b8f2c77be6..21b3c1b7c1 100644 --- a/docs/search/functions_9.js +++ b/docs/search/functions_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['keyrotationfragmenter',['KeyRotationFragmenter',['../dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html#a4d61823a814e9f5e0892caa37c3cb7ef',1,'edash_packager::media::mp4::KeyRotationFragmenter']]] + ['keyrotationfragmenter',['KeyRotationFragmenter',['../dc/d8a/classedash__packager_1_1media_1_1mp4_1_1KeyRotationFragmenter.html#a14975b0ac00476687b7870c5bf51dcdf',1,'edash_packager::media::mp4::KeyRotationFragmenter']]] ];