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

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

Issue 10669022: Add status parameter to DemuxerStream::ReadCB (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 5 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 unified diff | Download patch | Annotate | Revision Log
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 <algorithm> 5 #include <algorithm>
6 #include <deque> 6 #include <deque>
7 #include <string> 7 #include <string>
8 8
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 message_loop_.RunAllPending(); 436 message_loop_.RunAllPending();
437 } 437 }
438 438
439 // A mocked callback specialization for calling Read(). Since RunWithParams() 439 // A mocked callback specialization for calling Read(). Since RunWithParams()
440 // is mocked we don't need to pass in object or method pointers. 440 // is mocked we don't need to pass in object or method pointers.
441 class MockReadCB : public base::RefCountedThreadSafe<MockReadCB> { 441 class MockReadCB : public base::RefCountedThreadSafe<MockReadCB> {
442 public: 442 public:
443 MockReadCB() {} 443 MockReadCB() {}
444 444
445 MOCK_METHOD0(OnDelete, void()); 445 MOCK_METHOD0(OnDelete, void());
446 MOCK_METHOD1(Run, void(const scoped_refptr<DecoderBuffer>& buffer)); 446 MOCK_METHOD2(Run, void(DemuxerStream::Status status,
447 const scoped_refptr<DecoderBuffer>& buffer));
447 448
448 protected: 449 protected:
449 virtual ~MockReadCB() { 450 virtual ~MockReadCB() {
450 OnDelete(); 451 OnDelete();
451 } 452 }
452 453
453 private: 454 private:
454 friend class base::RefCountedThreadSafe<MockReadCB>; 455 friend class base::RefCountedThreadSafe<MockReadCB>;
455 456
456 DISALLOW_COPY_AND_ASSIGN(MockReadCB); 457 DISALLOW_COPY_AND_ASSIGN(MockReadCB);
(...skipping 14 matching lines...) Expand all
471 472
472 // Expect all calls in sequence. 473 // Expect all calls in sequence.
473 InSequence s; 474 InSequence s;
474 475
475 // Create our mocked callback. The Callback created by base::Bind() will take 476 // Create our mocked callback. The Callback created by base::Bind() will take
476 // ownership of this pointer. 477 // ownership of this pointer.
477 StrictMock<MockReadCB>* callback = new StrictMock<MockReadCB>(); 478 StrictMock<MockReadCB>* callback = new StrictMock<MockReadCB>();
478 479
479 // The callback should be immediately deleted. We'll use a checkpoint to 480 // The callback should be immediately deleted. We'll use a checkpoint to
480 // verify that it has indeed been deleted. 481 // verify that it has indeed been deleted.
481 EXPECT_CALL(*callback, Run(IsEndOfStreamBuffer())); 482 EXPECT_CALL(*callback, Run(DemuxerStream::kOk, IsEndOfStreamBuffer()));
482 EXPECT_CALL(*callback, OnDelete()); 483 EXPECT_CALL(*callback, OnDelete());
483 EXPECT_CALL(*this, CheckPoint(1)); 484 EXPECT_CALL(*this, CheckPoint(1));
484 485
485 // Attempt the read... 486 // Attempt the read...
486 audio->Read(base::Bind(&MockReadCB::Run, callback)); 487 audio->Read(base::Bind(&MockReadCB::Run, callback));
487 488
488 message_loop_.RunAllPending(); 489 message_loop_.RunAllPending();
489 490
490 // ...and verify that |callback| was deleted. 491 // ...and verify that |callback| was deleted.
491 CheckPoint(1); 492 CheckPoint(1);
(...skipping 19 matching lines...) Expand all
511 512
512 // Expect all calls in sequence. 513 // Expect all calls in sequence.
513 InSequence s; 514 InSequence s;
514 515
515 // Create our mocked callback. The Callback created by base::Bind() will take 516 // Create our mocked callback. The Callback created by base::Bind() will take
516 // ownership of this pointer. 517 // ownership of this pointer.
517 StrictMock<MockReadCB>* callback = new StrictMock<MockReadCB>(); 518 StrictMock<MockReadCB>* callback = new StrictMock<MockReadCB>();
518 519
519 // The callback should be immediately deleted. We'll use a checkpoint to 520 // The callback should be immediately deleted. We'll use a checkpoint to
520 // verify that it has indeed been deleted. 521 // verify that it has indeed been deleted.
521 EXPECT_CALL(*callback, Run(IsEndOfStreamBuffer())); 522 EXPECT_CALL(*callback, Run(DemuxerStream::kOk, IsEndOfStreamBuffer()));
522 EXPECT_CALL(*callback, OnDelete()); 523 EXPECT_CALL(*callback, OnDelete());
523 EXPECT_CALL(*this, CheckPoint(1)); 524 EXPECT_CALL(*this, CheckPoint(1));
524 525
525 // Release the reference to the demuxer. This should also destroy it. 526 // Release the reference to the demuxer. This should also destroy it.
526 demuxer_ = NULL; 527 demuxer_ = NULL;
527 // |audio| now has a demuxer_ pointer to invalid memory. 528 // |audio| now has a demuxer_ pointer to invalid memory.
528 529
529 // Attempt the read... 530 // Attempt the read...
530 audio->Read(base::Bind(&MockReadCB::Run, callback)); 531 audio->Read(base::Bind(&MockReadCB::Run, callback));
531 532
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 TEST_F(FFmpegDemuxerTest, UnsupportedVideoSupportedAudioDemux) { 775 TEST_F(FFmpegDemuxerTest, UnsupportedVideoSupportedAudioDemux) {
775 CreateDemuxer("vorbis_audio_wmv_video.mkv"); 776 CreateDemuxer("vorbis_audio_wmv_video.mkv");
776 InitializeDemuxer(); 777 InitializeDemuxer();
777 778
778 // Ensure the expected streams are present. 779 // Ensure the expected streams are present.
779 EXPECT_FALSE(demuxer_->GetStream(DemuxerStream::VIDEO)); 780 EXPECT_FALSE(demuxer_->GetStream(DemuxerStream::VIDEO));
780 EXPECT_TRUE(demuxer_->GetStream(DemuxerStream::AUDIO)); 781 EXPECT_TRUE(demuxer_->GetStream(DemuxerStream::AUDIO));
781 } 782 }
782 783
783 } // namespace media 784 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698