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

Unified Diff: media/gpu/vp9_decoder.cc

Issue 2133993002: Parse VP9 compressed header (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reset curr_frame_info_ when Reset Created 4 years, 4 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/gpu/vp9_decoder.h ('k') | media/media.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/gpu/vp9_decoder.cc
diff --git a/media/gpu/vp9_decoder.cc b/media/gpu/vp9_decoder.cc
index ec10b768b3753d5b36bd71a888f6418f1a0437d8..993a8a149ae23bc036906e9c6623be15eb436544 100644
--- a/media/gpu/vp9_decoder.cc
+++ b/media/gpu/vp9_decoder.cc
@@ -17,7 +17,7 @@ VP9Decoder::VP9Accelerator::VP9Accelerator() {}
VP9Decoder::VP9Accelerator::~VP9Accelerator() {}
VP9Decoder::VP9Decoder(VP9Accelerator* accelerator)
- : state_(kNeedStreamMetadata), accelerator_(accelerator) {
+ : state_(kNeedStreamMetadata), parser_(false), accelerator_(accelerator) {
DCHECK(accelerator_);
ref_frames_.resize(kVp9NumRefFrames);
}
@@ -54,7 +54,7 @@ VP9Decoder::DecodeResult VP9Decoder::Decode() {
// Read a new frame header if one is not awaiting decoding already.
if (!curr_frame_hdr_) {
std::unique_ptr<Vp9FrameHeader> hdr(new Vp9FrameHeader());
- Vp9Parser::Result res = parser_.ParseNextFrame(hdr.get());
+ Vp9Parser::Result res = parser_.ParseNextFrame(hdr.get(), nullptr);
switch (res) {
case Vp9Parser::kOk:
curr_frame_hdr_.reset(hdr.release());
@@ -67,6 +67,9 @@ VP9Decoder::DecodeResult VP9Decoder::Decode() {
DVLOG(1) << "Error parsing stream";
SetError();
return kDecodeError;
+
+ case Vp9Parser::kAwaitingRefresh:
+ NOTREACHED();
}
}
@@ -86,7 +89,7 @@ VP9Decoder::DecodeResult VP9Decoder::Decode() {
// This frame header only instructs us to display one of the
// previously-decoded frames, but has no frame data otherwise. Display
// and continue decoding subsequent frames.
- size_t frame_to_show = curr_frame_hdr_->frame_to_show;
+ size_t frame_to_show = curr_frame_hdr_->frame_to_show_map_idx;
if (frame_to_show >= ref_frames_.size() || !ref_frames_[frame_to_show]) {
DVLOG(1) << "Request to show an invalid frame";
SetError();
@@ -102,7 +105,8 @@ VP9Decoder::DecodeResult VP9Decoder::Decode() {
continue;
}
- gfx::Size new_pic_size(curr_frame_hdr_->width, curr_frame_hdr_->height);
+ gfx::Size new_pic_size(curr_frame_hdr_->frame_width,
+ curr_frame_hdr_->frame_height);
DCHECK(!new_pic_size.IsEmpty());
if (new_pic_size != pic_size_) {
« no previous file with comments | « media/gpu/vp9_decoder.h ('k') | media/media.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698