Index: services/media/framework/conversion_pipeline_builder.cc |
diff --git a/services/media/framework/conversion_pipeline_builder.cc b/services/media/framework/conversion_pipeline_builder.cc |
index 6c9479b4d8632f3b56d7c63559f70ec2dcffa7e5..f55e8a9b7c477d8090b5958f27cadbc3595b04e3 100644 |
--- a/services/media/framework/conversion_pipeline_builder.cc |
+++ b/services/media/framework/conversion_pipeline_builder.cc |
@@ -75,11 +75,10 @@ int Score( |
// Finds the media type set that best matches in_type. |
const std::unique_ptr<StreamTypeSet>* FindBestLpcm( |
const LpcmStreamType& in_type, |
- const std::unique_ptr<std::vector<std::unique_ptr<StreamTypeSet>>>& |
- out_type_sets) { |
+ const std::vector<std::unique_ptr<StreamTypeSet>>& out_type_sets) { |
const std::unique_ptr<StreamTypeSet>* best = nullptr; |
int best_score = 0; |
- for (const std::unique_ptr<StreamTypeSet>& out_type_set : *out_type_sets) { |
+ for (const std::unique_ptr<StreamTypeSet>& out_type_set : out_type_sets) { |
switch (out_type_set->scheme()) { |
case StreamType::Scheme::kAnyElementary: |
case StreamType::Scheme::kAnyAudio: |
@@ -107,9 +106,7 @@ const std::unique_ptr<StreamTypeSet>* FindBestLpcm( |
// type. Otherwise, *out_type is set to nullptr. |
AddResult AddTransformsForCompressedAudio( |
const CompressedAudioStreamType& in_type, |
- const std::unique_ptr<StreamType>& in_type_ptr, |
- const std::unique_ptr<std::vector<std::unique_ptr<StreamTypeSet>>>& |
- out_type_sets, |
+ const std::vector<std::unique_ptr<StreamTypeSet>>& out_type_sets, |
Graph* graph, |
OutputRef* output, |
std::unique_ptr<StreamType>* out_type) { |
@@ -117,7 +114,7 @@ AddResult AddTransformsForCompressedAudio( |
DCHECK(graph); |
// See if we have a matching COMPRESSED_AUDIO type. |
- for (const std::unique_ptr<StreamTypeSet>& out_type_set : *out_type_sets) { |
+ for (const std::unique_ptr<StreamTypeSet>& out_type_set : out_type_sets) { |
switch (out_type_set->scheme()) { |
case StreamType::Scheme::kAnyElementary: |
case StreamType::Scheme::kAnyAudio: |
@@ -152,7 +149,7 @@ AddResult AddTransformsForCompressedAudio( |
// Need to decode. Create a decoder and go from there. |
std::shared_ptr<Decoder> decoder; |
- Result result = Decoder::Create(in_type_ptr, &decoder); |
+ Result result = Decoder::Create(in_type, &decoder); |
if (result != Result::kOk) { |
// No decoder found. |
*out_type = nullptr; |
@@ -219,8 +216,7 @@ AddResult AddTransformsForLpcm( |
// type. Otherwise, *out_type is set to nullptr. |
AddResult AddTransformsForLpcm( |
const LpcmStreamType& in_type, |
- const std::unique_ptr<std::vector<std::unique_ptr<StreamTypeSet>>>& |
- out_type_sets, |
+ const std::vector<std::unique_ptr<StreamTypeSet>>& out_type_sets, |
Graph* graph, |
OutputRef* output, |
std::unique_ptr<StreamType>* out_type) { |
@@ -262,35 +258,32 @@ AddResult AddTransformsForLpcm( |
// (out_type_sets). If the call succeeds, *out_type is set to the new output |
// type. Otherwise, *out_type is set to nullptr. |
AddResult AddTransforms( |
- const std::unique_ptr<StreamType>& in_type, |
- const std::unique_ptr<std::vector<std::unique_ptr<StreamTypeSet>>>& |
- out_type_sets, |
+ const StreamType& in_type, |
+ const std::vector<std::unique_ptr<StreamTypeSet>>& out_type_sets, |
Graph* graph, |
OutputRef* output, |
std::unique_ptr<StreamType>* out_type) { |
- DCHECK(in_type); |
DCHECK(graph); |
DCHECK(out_type); |
- switch (in_type->scheme()) { |
+ switch (in_type.scheme()) { |
case StreamType::Scheme::kLpcm: |
return AddTransformsForLpcm( |
- *in_type->lpcm(), |
+ *in_type.lpcm(), |
out_type_sets, |
graph, |
output, |
out_type); |
case StreamType::Scheme::kCompressedAudio: |
return AddTransformsForCompressedAudio( |
- *in_type->compressed_audio(), |
- in_type, |
+ *in_type.compressed_audio(), |
out_type_sets, |
graph, |
output, |
out_type); |
default: |
NOTREACHED() << "conversion not supported for scheme" |
- << in_type->scheme(); |
+ << in_type.scheme(); |
*out_type = nullptr; |
return AddResult::kFailed; |
} |
@@ -299,24 +292,19 @@ AddResult AddTransforms( |
} // namespace |
bool BuildConversionPipeline( |
- const std::unique_ptr<StreamType>& in_type, |
- const std::unique_ptr<std::vector<std::unique_ptr<StreamTypeSet>>>& |
- out_type_sets, |
+ const StreamType& in_type, |
+ const std::vector<std::unique_ptr<StreamTypeSet>>& out_type_sets, |
Graph* graph, |
OutputRef* output, |
std::unique_ptr<StreamType>* out_type) { |
- DCHECK(in_type); |
- DCHECK(out_type_sets); |
DCHECK(graph); |
DCHECK(output); |
DCHECK(out_type); |
OutputRef out = *output; |
- |
- const std::unique_ptr<StreamType>* type_to_convert = &in_type; |
- std::unique_ptr<StreamType> next_in_type; |
+ const StreamType* type_to_convert = &in_type; |
+ std::unique_ptr<StreamType> converted_type; |
while (true) { |
- std::unique_ptr<StreamType> converted_type; |
switch (AddTransforms( |
*type_to_convert, |
out_type_sets, |
@@ -339,8 +327,7 @@ bool BuildConversionPipeline( |
return true; |
} |
- next_in_type = std::move(converted_type); |
- type_to_convert = &next_in_type; |
+ type_to_convert = converted_type.get(); |
} |
} |