summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorqinmin <qinmin@chromium.org>2015-01-28 12:57:18 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-28 20:58:09 +0000
commit6f185c3f517b95fcfbeff5c8361aba5389c4215e (patch)
tree42ea0aa021485aa1f6a2aa356976e6ccc8d37d67 /media
parent24c82bc3a6b006c8792be56faa35b7deff8c0582 (diff)
downloadchromium_src-6f185c3f517b95fcfbeff5c8361aba5389c4215e.zip
chromium_src-6f185c3f517b95fcfbeff5c8361aba5389c4215e.tar.gz
chromium_src-6f185c3f517b95fcfbeff5c8361aba5389c4215e.tar.bz2
Passing key frame info flag renderer to browser process
For MediaSourcePlayer, we can use this flag to reduce the browser seek when codec is recreated. Will implement the logic to reduce browser seek in a follow up CL. BUG=304234 Review URL: https://codereview.chromium.org/872253008 Cr-Commit-Position: refs/heads/master@{#313579}
Diffstat (limited to 'media')
-rw-r--r--media/base/android/demuxer_stream_player_params.cc2
-rw-r--r--media/base/android/demuxer_stream_player_params.h3
-rw-r--r--media/base/android/media_decoder_job.cc8
-rw-r--r--media/base/android/media_source_player_unittest.cc2
4 files changed, 8 insertions, 7 deletions
diff --git a/media/base/android/demuxer_stream_player_params.cc b/media/base/android/demuxer_stream_player_params.cc
index ec589c0..5c2a11f 100644
--- a/media/base/android/demuxer_stream_player_params.cc
+++ b/media/base/android/demuxer_stream_player_params.cc
@@ -18,7 +18,7 @@ DemuxerConfigs::DemuxerConfigs()
DemuxerConfigs::~DemuxerConfigs() {}
-AccessUnit::AccessUnit() : end_of_stream(false) {}
+AccessUnit::AccessUnit() : is_end_of_stream(false), is_key_frame(false) {}
AccessUnit::~AccessUnit() {}
diff --git a/media/base/android/demuxer_stream_player_params.h b/media/base/android/demuxer_stream_player_params.h
index 8d10f08..cb8ae90e 100644
--- a/media/base/android/demuxer_stream_player_params.h
+++ b/media/base/android/demuxer_stream_player_params.h
@@ -41,13 +41,14 @@ struct MEDIA_EXPORT AccessUnit {
~AccessUnit();
DemuxerStream::Status status;
- bool end_of_stream;
+ bool is_end_of_stream;
// TODO(ycheo): Use the shared memory to transfer the block data.
std::vector<uint8> data;
base::TimeDelta timestamp;
std::vector<char> key_id;
std::vector<char> iv;
std::vector<media::SubsampleEntry> subsamples;
+ bool is_key_frame;
};
struct MEDIA_EXPORT DemuxerData {
diff --git a/media/base/android/media_decoder_job.cc b/media/base/android/media_decoder_job.cc
index 42ace24..41b74a0 100644
--- a/media/base/android/media_decoder_job.cc
+++ b/media/base/android/media_decoder_job.cc
@@ -45,7 +45,7 @@ MediaDecoderJob::MediaDecoderJob(
drm_bridge_(NULL),
drain_decoder_(false) {
InitializeReceivedData();
- eos_unit_.end_of_stream = true;
+ eos_unit_.is_end_of_stream = true;
}
MediaDecoderJob::~MediaDecoderJob() {
@@ -246,7 +246,7 @@ MediaCodecStatus MediaDecoderJob::QueueInputBuffer(const AccessUnit& unit) {
// TODO(qinmin): skip frames if video is falling far behind.
DCHECK_GE(input_buf_index, 0);
- if (unit.end_of_stream || unit.data.empty()) {
+ if (unit.is_end_of_stream || unit.data.empty()) {
media_codec_bridge_->QueueEOS(input_buf_index);
return MEDIA_CODEC_INPUT_END_OF_STREAM;
}
@@ -386,7 +386,7 @@ void MediaDecoderJob::DecodeInternal(
}
if (skip_eos_enqueue_) {
- if (unit.end_of_stream || unit.data.empty()) {
+ if (unit.is_end_of_stream || unit.data.empty()) {
input_eos_encountered_ = true;
output_eos_encountered_ = true;
callback.Run(MEDIA_CODEC_OUTPUT_END_OF_STREAM, kNoTimestamp(),
@@ -591,7 +591,7 @@ void MediaDecoderJob::RequestCurrentChunkIfEmpty() {
current_demuxer_data_index_ = inactive_demuxer_data_index();
const AccessUnit last_access_unit =
received_data_[current_demuxer_data_index_].access_units.back();
- if (!last_access_unit.end_of_stream &&
+ if (!last_access_unit.is_end_of_stream &&
last_access_unit.status != DemuxerStream::kAborted) {
RequestData(base::Closure());
}
diff --git a/media/base/android/media_source_player_unittest.cc b/media/base/android/media_source_player_unittest.cc
index 376e0b1..5b9a0e9 100644
--- a/media/base/android/media_source_player_unittest.cc
+++ b/media/base/android/media_source_player_unittest.cc
@@ -423,7 +423,7 @@ class MediaSourcePlayerTest : public testing::Test {
data.type = is_audio ? DemuxerStream::AUDIO : DemuxerStream::VIDEO;
data.access_units.resize(1);
data.access_units[0].status = DemuxerStream::kOk;
- data.access_units[0].end_of_stream = true;
+ data.access_units[0].is_end_of_stream = true;
return data;
}