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

Unified Diff: content/renderer/media/gpu/rtc_video_decoder.cc

Issue 2881553002: Add |texture_target_| and |pixel_format_| to media::PictureBuffer (Closed)
Patch Set: removed IPC changes Created 3 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 | « content/renderer/media/gpu/rtc_video_decoder.h ('k') | media/filters/gpu_video_decoder.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/gpu/rtc_video_decoder.cc
diff --git a/content/renderer/media/gpu/rtc_video_decoder.cc b/content/renderer/media/gpu/rtc_video_decoder.cc
index e373f2f0246780f0961825f363095f917e155642..6df6c236f58d38280d0f18616948bf55406a3511 100644
--- a/content/renderer/media/gpu/rtc_video_decoder.cc
+++ b/content/renderer/media/gpu/rtc_video_decoder.cc
@@ -68,8 +68,6 @@ RTCVideoDecoder::RTCVideoDecoder(webrtc::VideoCodecType type,
: vda_error_counter_(0),
video_codec_type_(type),
factories_(factories),
- decoder_texture_target_(0),
- pixel_format_(media::PIXEL_FORMAT_UNKNOWN),
next_picture_buffer_id_(0),
state_(UNINITIALIZED),
decode_complete_callback_(nullptr),
@@ -318,22 +316,13 @@ void RTCVideoDecoder::ProvidePictureBuffers(uint32_t buffer_count,
std::vector<uint32_t> texture_ids;
std::vector<gpu::Mailbox> texture_mailboxes;
- decoder_texture_target_ = texture_target;
if (format == media::PIXEL_FORMAT_UNKNOWN)
format = media::PIXEL_FORMAT_ARGB;
- if ((pixel_format_ != media::PIXEL_FORMAT_UNKNOWN) &&
- (format != pixel_format_)) {
- NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE);
- return;
- }
-
- pixel_format_ = format;
const uint32_t texture_count = buffer_count * textures_per_buffer;
if (!factories_->CreateTextures(texture_count, size, &texture_ids,
- &texture_mailboxes,
- decoder_texture_target_)) {
+ &texture_mailboxes, texture_target)) {
NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE);
return;
}
@@ -352,8 +341,9 @@ void RTCVideoDecoder::ProvidePictureBuffers(uint32_t buffer_count,
mailboxes.push_back(texture_mailboxes[texture_id]);
}
- picture_buffers.push_back(
- media::PictureBuffer(next_picture_buffer_id_++, size, ids, mailboxes));
+ picture_buffers.push_back(media::PictureBuffer(next_picture_buffer_id_++,
+ size, ids, mailboxes,
+ texture_target, format));
const bool inserted =
assigned_picture_buffers_
.insert(std::make_pair(picture_buffers.back().id(),
@@ -415,7 +405,7 @@ void RTCVideoDecoder::PictureReady(const media::Picture& picture) {
}
scoped_refptr<media::VideoFrame> frame =
- CreateVideoFrame(picture, pb, timestamp, visible_rect, pixel_format_);
+ CreateVideoFrame(picture, pb, timestamp, visible_rect, pb.pixel_format());
if (!frame) {
NotifyError(media::VideoDecodeAccelerator::PLATFORM_FAILURE);
return;
@@ -451,7 +441,7 @@ scoped_refptr<media::VideoFrame> RTCVideoDecoder::CreateVideoFrame(
uint32_t timestamp,
const gfx::Rect& visible_rect,
media::VideoPixelFormat pixel_format) {
- DCHECK(decoder_texture_target_);
+ DCHECK(pb.texture_target());
// Convert timestamp from 90KHz to ms.
base::TimeDelta timestamp_ms = base::TimeDelta::FromInternalValue(
base::checked_cast<uint64_t>(timestamp) * 1000 / 90);
@@ -464,7 +454,7 @@ scoped_refptr<media::VideoFrame> RTCVideoDecoder::CreateVideoFrame(
gpu::MailboxHolder holders[media::VideoFrame::kMaxPlanes];
for (size_t i = 0; i < pb.client_texture_ids().size(); ++i) {
holders[i].mailbox = pb.texture_mailbox(i);
- holders[i].texture_target = decoder_texture_target_;
+ holders[i].texture_target = pb.texture_target();
}
scoped_refptr<media::VideoFrame> frame =
media::VideoFrame::WrapNativeTextures(
« no previous file with comments | « content/renderer/media/gpu/rtc_video_decoder.h ('k') | media/filters/gpu_video_decoder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698