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

Unified Diff: media/base/android/media_decoder_job.cc

Issue 257323003: Remove the IPC to request DemuxerConfigs when config changes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressing comments Created 6 years, 7 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 | « media/base/android/media_decoder_job.h ('k') | media/base/android/media_source_player.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/android/media_decoder_job.cc
diff --git a/media/base/android/media_decoder_job.cc b/media/base/android/media_decoder_job.cc
index c57da3af1729fe0df9ba72e8613742dd38d97f68..cecbbeec5b35953ba33b6f6ea859734f3f86757b 100644
--- a/media/base/android/media_decoder_job.cc
+++ b/media/base/android/media_decoder_job.cc
@@ -19,6 +19,18 @@ namespace media {
// here. See http://b/9357571.
static const int kMediaCodecTimeoutInMilliseconds = 250;
+static void CopyDemuxerConfig(DemuxerConfigs* src, DemuxerConfigs* dest) {
+ dest->audio_codec = src->audio_codec;
+ dest->audio_channels = src->audio_channels;
+ dest->audio_sampling_rate = src->audio_sampling_rate;
+ dest->is_audio_encrypted = src->is_audio_encrypted;
+ dest->audio_extra_data = src->audio_extra_data;
+ dest->video_codec = src->video_codec;
+ dest->video_size = src->video_size;
+ dest->is_video_encrypted = src->is_video_encrypted;
+ dest->video_extra_data = src->video_extra_data;
+}
+
MediaDecoderJob::MediaDecoderJob(
const scoped_refptr<base::SingleThreadTaskRunner>& decoder_task_runner,
MediaCodecBridge* media_codec_bridge,
@@ -102,7 +114,7 @@ void MediaDecoderJob::Prefetch(const base::Closure& prefetch_cb) {
RequestData(prefetch_cb);
}
-bool MediaDecoderJob::Decode(
+DemuxerConfigs* MediaDecoderJob::Decode(
base::TimeTicks start_time_ticks,
base::TimeDelta start_presentation_timestamp,
const DecoderCallback& callback) {
@@ -117,18 +129,21 @@ bool MediaDecoderJob::Decode(
base::Unretained(this),
start_time_ticks,
start_presentation_timestamp));
- return true;
+ return NULL;
}
if (DemuxerStream::kConfigChanged == CurrentAccessUnit().status) {
// Clear received data because we need to handle a config change.
decode_cb_.Reset();
- ClearData();
- return false;
+ size_t index = CurrentReceivedDataChunkIndex();
+ CHECK_EQ(1u, received_data_[index].demuxer_configs.size());
+ DemuxerConfigs* config = new DemuxerConfigs();
+ CopyDemuxerConfig(&(received_data_[index].demuxer_configs[0]), config);
wolenetz 2014/05/06 19:06:11 Perhaps my C++ fu is failing me, but: Since Demux
qinmin 2014/05/06 19:29:34 Done. passing a scoped_ptr to the caller now On
+ return config;
}
DecodeCurrentAccessUnit(start_time_ticks, start_presentation_timestamp);
- return true;
+ return NULL;
}
void MediaDecoderJob::StopDecode() {
@@ -462,11 +477,15 @@ void MediaDecoderJob::OnDecodeCompleted(
const AccessUnit& MediaDecoderJob::CurrentAccessUnit() const {
DCHECK(ui_task_runner_->BelongsToCurrentThread());
DCHECK(HasData());
- int index = NoAccessUnitsRemainingInChunk(true) ?
- inactive_demuxer_data_index() : current_demuxer_data_index_;
+ size_t index = CurrentReceivedDataChunkIndex();
return received_data_[index].access_units[access_unit_index_[index]];
}
+size_t MediaDecoderJob::CurrentReceivedDataChunkIndex() const {
+ return NoAccessUnitsRemainingInChunk(true) ?
+ inactive_demuxer_data_index() : current_demuxer_data_index_;
+}
+
bool MediaDecoderJob::NoAccessUnitsRemainingInChunk(
bool is_active_chunk) const {
DCHECK(ui_task_runner_->BelongsToCurrentThread());
« no previous file with comments | « media/base/android/media_decoder_job.h ('k') | media/base/android/media_source_player.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698