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

Side by Side Diff: media/filters/gpu_video_decoder.cc

Issue 1427543002: Modified old wait sync point functions to also accept new sync tokens. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Folded sync_point into sync_tokens Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/filters/gpu_video_decoder.h" 5 #include "media/filters/gpu_video_decoder.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback_helpers.h" 10 #include "base/callback_helpers.h"
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
403 if (!gfx::Rect(pb.size()).Contains(visible_rect)) { 403 if (!gfx::Rect(pb.size()).Contains(visible_rect)) {
404 LOG(WARNING) << "Visible size " << visible_rect.ToString() 404 LOG(WARNING) << "Visible size " << visible_rect.ToString()
405 << " is larger than coded size " << pb.size().ToString(); 405 << " is larger than coded size " << pb.size().ToString();
406 visible_rect = gfx::Rect(pb.size()); 406 visible_rect = gfx::Rect(pb.size());
407 } 407 }
408 408
409 DCHECK(decoder_texture_target_); 409 DCHECK(decoder_texture_target_);
410 410
411 scoped_refptr<VideoFrame> frame(VideoFrame::WrapNativeTexture( 411 scoped_refptr<VideoFrame> frame(VideoFrame::WrapNativeTexture(
412 PIXEL_FORMAT_ARGB, 412 PIXEL_FORMAT_ARGB,
413 gpu::MailboxHolder(pb.texture_mailbox(), decoder_texture_target_, 413 gpu::MailboxHolder(pb.texture_mailbox(), gpu::SyncToken(),
414 0 /* sync_point */), 414 decoder_texture_target_),
415 BindToCurrentLoop(base::Bind( 415 BindToCurrentLoop(base::Bind(
416 &GpuVideoDecoder::ReleaseMailbox, weak_factory_.GetWeakPtr(), 416 &GpuVideoDecoder::ReleaseMailbox, weak_factory_.GetWeakPtr(),
417 factories_, picture.picture_buffer_id(), pb.texture_id())), 417 factories_, picture.picture_buffer_id(), pb.texture_id())),
418 pb.size(), visible_rect, natural_size, timestamp)); 418 pb.size(), visible_rect, natural_size, timestamp));
419 if (!frame) { 419 if (!frame) {
420 DLOG(ERROR) << "Create frame failed for: " << picture.picture_buffer_id(); 420 DLOG(ERROR) << "Create frame failed for: " << picture.picture_buffer_id();
421 NotifyError(VideoDecodeAccelerator::PLATFORM_FAILURE); 421 NotifyError(VideoDecodeAccelerator::PLATFORM_FAILURE);
422 return; 422 return;
423 } 423 }
424 if (picture.allow_overlay()) 424 if (picture.allow_overlay())
(...skipping 20 matching lines...) Expand all
445 445
446 output_cb_.Run(frame); 446 output_cb_.Run(frame);
447 } 447 }
448 448
449 // static 449 // static
450 void GpuVideoDecoder::ReleaseMailbox( 450 void GpuVideoDecoder::ReleaseMailbox(
451 base::WeakPtr<GpuVideoDecoder> decoder, 451 base::WeakPtr<GpuVideoDecoder> decoder,
452 media::GpuVideoAcceleratorFactories* factories, 452 media::GpuVideoAcceleratorFactories* factories,
453 int64 picture_buffer_id, 453 int64 picture_buffer_id,
454 uint32 texture_id, 454 uint32 texture_id,
455 uint32 release_sync_point) { 455 const gpu::SyncToken& release_sync_token) {
456 DCHECK(factories->GetTaskRunner()->BelongsToCurrentThread()); 456 DCHECK(factories->GetTaskRunner()->BelongsToCurrentThread());
457 factories->WaitSyncPoint(release_sync_point); 457 factories->WaitSyncToken(release_sync_token);
458 458
459 if (decoder) { 459 if (decoder) {
460 decoder->ReusePictureBuffer(picture_buffer_id); 460 decoder->ReusePictureBuffer(picture_buffer_id);
461 return; 461 return;
462 } 462 }
463 // It's the last chance to delete the texture after display, 463 // It's the last chance to delete the texture after display,
464 // because GpuVideoDecoder was destructed. 464 // because GpuVideoDecoder was destructed.
465 factories->DeleteTexture(texture_id); 465 factories->DeleteTexture(texture_id);
466 } 466 }
467 467
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 } 600 }
601 return false; 601 return false;
602 } 602 }
603 603
604 void GpuVideoDecoder::DCheckGpuVideoAcceleratorFactoriesTaskRunnerIsCurrent() 604 void GpuVideoDecoder::DCheckGpuVideoAcceleratorFactoriesTaskRunnerIsCurrent()
605 const { 605 const {
606 DCHECK(factories_->GetTaskRunner()->BelongsToCurrentThread()); 606 DCHECK(factories_->GetTaskRunner()->BelongsToCurrentThread());
607 } 607 }
608 608
609 } // namespace media 609 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698