60std::shared_ptr<MediaSample> MediaSample::CopyFrom(
const uint8_t* data,
62 const uint8_t* side_data,
63 size_t side_data_size,
67 return std::shared_ptr<MediaSample>(
new MediaSample(
68 data, data_size, side_data, side_data_size, is_key_frame));
89std::shared_ptr<MediaSample> MediaSample::Clone()
const {
90 std::shared_ptr<MediaSample> new_media_sample(
new MediaSample);
91 new_media_sample->dts_ = dts_;
92 new_media_sample->pts_ = pts_;
93 new_media_sample->duration_ = duration_;
94 new_media_sample->is_key_frame_ = is_key_frame_;
95 new_media_sample->is_encrypted_ = is_encrypted_;
96 new_media_sample->data_ = data_;
97 new_media_sample->data_size_ = data_size_;
98 new_media_sample->side_data_ = side_data_;
99 new_media_sample->side_data_size_ = side_data_size_;
100 new_media_sample->config_id_ = config_id_;
101 if (decrypt_config_) {
103 decrypt_config_->key_id(), decrypt_config_->iv(),
104 decrypt_config_->subsamples(), decrypt_config_->protection_scheme(),
105 decrypt_config_->crypt_byte_block(),
106 decrypt_config_->skip_byte_block()));
108 return new_media_sample;
117void MediaSample::SetData(
const uint8_t* data,
size_t data_size) {
118 std::shared_ptr<uint8_t> shared_data(
new uint8_t[data_size],
119 std::default_delete<uint8_t[]>());
120 memcpy(shared_data.get(), data, data_size);
121 TransferData(std::move(shared_data), data_size);