53std::shared_ptr<MediaSample> MediaSample::CopyFrom(
const uint8_t* data,
55 const uint8_t* side_data,
56 size_t side_data_size,
60 return std::shared_ptr<MediaSample>(
new MediaSample(
61 data, data_size, side_data, side_data_size, is_key_frame));
82std::shared_ptr<MediaSample> MediaSample::Clone()
const {
83 std::shared_ptr<MediaSample> new_media_sample(
new MediaSample);
84 new_media_sample->dts_ = dts_;
85 new_media_sample->pts_ = pts_;
86 new_media_sample->duration_ = duration_;
87 new_media_sample->is_key_frame_ = is_key_frame_;
88 new_media_sample->is_encrypted_ = is_encrypted_;
89 new_media_sample->data_ = data_;
90 new_media_sample->data_size_ = data_size_;
91 new_media_sample->side_data_ = side_data_;
92 new_media_sample->side_data_size_ = side_data_size_;
93 new_media_sample->config_id_ = config_id_;
94 if (decrypt_config_) {
96 decrypt_config_->key_id(), decrypt_config_->iv(),
97 decrypt_config_->subsamples(), decrypt_config_->protection_scheme(),
98 decrypt_config_->crypt_byte_block(),
99 decrypt_config_->skip_byte_block()));
101 return new_media_sample;
110void MediaSample::SetData(
const uint8_t* data,
size_t data_size) {
111 std::shared_ptr<uint8_t> shared_data(
new uint8_t[data_size],
112 std::default_delete<uint8_t[]>());
113 memcpy(shared_data.get(), data, data_size);
114 TransferData(std::move(shared_data), data_size);