Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(505)

Unified Diff: services/media/framework/stream_type.cc

Issue 1678433002: Motown: Remove LPCM optimizations, fix prepare, add flush, add ActiveMultistreamSink model/stage (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Sync Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/media/framework/stream_type.h ('k') | services/media/framework_create/decoder.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/media/framework/stream_type.cc
diff --git a/services/media/framework/stream_type.cc b/services/media/framework/stream_type.cc
index 1839f925c6078bfe9be56391d007a1ac19bb0a64..ae2f19a3390d798548e0b20a1d71c8a3fa87a731 100644
--- a/services/media/framework/stream_type.cc
+++ b/services/media/framework/stream_type.cc
@@ -3,13 +3,18 @@
// found in the LICENSE file.
#include "base/logging.h"
+#include "services/media/framework/safe_clone.h"
#include "services/media/framework/stream_type.h"
namespace mojo {
namespace media {
-BytesPtr Bytes::Clone() const {
- return BytesPtr(new Bytes(*this));
+Bytes::Bytes(size_t size) : storage_(size) {}
+
+Bytes::~Bytes() {}
+
+std::unique_ptr<Bytes> Bytes::Clone() const {
+ return std::unique_ptr<Bytes>(new Bytes(*this));
}
StreamType::StreamType(Scheme scheme) : scheme_(scheme) {}
@@ -36,30 +41,14 @@ const VideoStreamType* StreamType::video() const {
return nullptr;
}
-StreamTypePtr StreamType::Clone() const {
+std::unique_ptr<StreamType> StreamType::Clone() const {
return Create(scheme());
}
-StreamTypesPtr StreamTypes::Clone() const {
- StreamTypes* result = new StreamTypes(size());
- for (const StreamTypePtr& stream_type : *this) {
- result->push_back(stream_type.Clone());
- }
- return StreamTypesPtr(result);
-}
-
StreamTypeSet::StreamTypeSet(StreamType::Scheme scheme) : scheme_(scheme) {}
StreamTypeSet::~StreamTypeSet() {}
-StreamTypeSetsPtr StreamTypeSets::Clone() const {
- StreamTypeSets* result = new StreamTypeSets(size());
- for (const StreamTypeSetPtr& stream_type_set : *this) {
- result->push_back(stream_type_set.Clone());
- }
- return StreamTypeSetsPtr(result);
-}
-
const MultiplexedStreamTypeSet* StreamTypeSet::multiplexed() const {
NOTREACHED();
return nullptr;
@@ -80,13 +69,13 @@ const VideoStreamTypeSet* StreamTypeSet::video() const {
return nullptr;
}
-StreamTypeSetPtr StreamTypeSet::Clone() const {
+std::unique_ptr<StreamTypeSet> StreamTypeSet::Clone() const {
return Create(scheme());
}
MultiplexedStreamType::MultiplexedStreamType(
- StreamTypePtr multiplex_type,
- StreamTypesPtr substream_types) :
+ std::unique_ptr<StreamType> multiplex_type,
+ std::unique_ptr<std::vector<std::unique_ptr<StreamType>>> substream_types) :
StreamType(Scheme::kMultiplexed),
multiplex_type_(std::move(multiplex_type)),
substream_types_(std::move(substream_types)) {}
@@ -97,13 +86,14 @@ const MultiplexedStreamType* MultiplexedStreamType::multiplexed() const {
return this;
}
-StreamTypePtr MultiplexedStreamType::Clone() const {
- return Create(multiplex_type().Clone(), substream_types().Clone());
+std::unique_ptr<StreamType> MultiplexedStreamType::Clone() const {
+ return Create(SafeClone(multiplex_type()), SafeClone(substream_types()));
}
MultiplexedStreamTypeSet::MultiplexedStreamTypeSet(
- StreamTypeSetPtr multiplex_type_set,
- StreamTypeSetsPtr substream_type_sets) :
+ std::unique_ptr<StreamTypeSet> multiplex_type_set,
+ std::unique_ptr<std::vector<std::unique_ptr<StreamTypeSet>>>
+ substream_type_sets) :
StreamTypeSet(StreamType::Scheme::kMultiplexed),
multiplex_type_set_(std::move(multiplex_type_set)),
substream_type_sets_(std::move(substream_type_sets)) {}
@@ -114,8 +104,10 @@ const MultiplexedStreamTypeSet* MultiplexedStreamTypeSet::multiplexed() const {
return this;
}
-StreamTypeSetPtr MultiplexedStreamTypeSet::Clone() const {
- return Create(multiplex_type_set().Clone(), substream_type_sets().Clone());
+std::unique_ptr<StreamTypeSet> MultiplexedStreamTypeSet::Clone() const {
+ return Create(
+ SafeClone(multiplex_type_set()),
+ SafeClone(substream_type_sets()));
}
LpcmStreamType::LpcmStreamType(
@@ -165,7 +157,7 @@ uint32_t LpcmStreamType::SampleSizeFromFormat(
return 0;
}
-StreamTypePtr LpcmStreamType::Clone() const {
+std::unique_ptr<StreamType> LpcmStreamType::Clone() const {
return Create(sample_format(), channels(), frames_per_second());
}
@@ -203,7 +195,7 @@ bool LpcmStreamTypeSet::contains(const LpcmStreamType& type) const {
frames_per_second().contains(type.frames_per_second());
}
-StreamTypeSetPtr LpcmStreamTypeSet::Clone() const {
+std::unique_ptr<StreamTypeSet> LpcmStreamTypeSet::Clone() const {
return Create(sample_format(), channels(), frames_per_second());
}
@@ -212,7 +204,7 @@ CompressedAudioStreamType::CompressedAudioStreamType(
SampleFormat sample_format,
uint32_t channels,
uint32_t frames_per_second,
- BytesPtr encoding_details) :
+ std::unique_ptr<Bytes> encoding_details) :
LpcmStreamType(
Scheme::kCompressedAudio,
sample_format,
@@ -228,13 +220,13 @@ const CompressedAudioStreamType* CompressedAudioStreamType::compressed_audio()
return this;
}
-StreamTypePtr CompressedAudioStreamType::Clone() const {
+std::unique_ptr<StreamType> CompressedAudioStreamType::Clone() const {
return Create(
encoding(),
sample_format(),
channels(),
frames_per_second(),
- encoding_details().Clone());
+ SafeClone(encoding_details()));
}
CompressedAudioStreamTypeSet::CompressedAudioStreamTypeSet(
@@ -267,7 +259,7 @@ bool CompressedAudioStreamTypeSet::contains(
frames_per_second().contains(type.frames_per_second());
}
-StreamTypeSetPtr CompressedAudioStreamTypeSet::Clone() const {
+std::unique_ptr<StreamTypeSet> CompressedAudioStreamTypeSet::Clone() const {
return Create(
encoding(),
sample_format(),
@@ -284,7 +276,7 @@ VideoStreamType::VideoStreamType(
uint32_t height,
uint32_t coded_width,
uint32_t coded_height,
- BytesPtr encoding_details) :
+ std::unique_ptr<Bytes> encoding_details) :
StreamType(StreamType::Scheme::kVideo),
encoding_(encoding),
profile_(profile),
@@ -302,7 +294,7 @@ const VideoStreamType* VideoStreamType::video() const {
return this;
}
-StreamTypePtr VideoStreamType::Clone() const {
+std::unique_ptr<StreamType> VideoStreamType::Clone() const {
return Create(
encoding(),
profile(),
@@ -312,7 +304,7 @@ StreamTypePtr VideoStreamType::Clone() const {
height(),
coded_width(),
coded_height(),
- encoding_details().Clone());
+ SafeClone(encoding_details()));
}
VideoStreamTypeSet::VideoStreamTypeSet(
@@ -330,7 +322,7 @@ const VideoStreamTypeSet* VideoStreamTypeSet::video() const {
return this;
}
-StreamTypeSetPtr VideoStreamTypeSet::Clone() const {
+std::unique_ptr<StreamTypeSet> VideoStreamTypeSet::Clone() const {
return Create(
encoding(),
width(),
« no previous file with comments | « services/media/framework/stream_type.h ('k') | services/media/framework_create/decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698