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

Unified Diff: media/filters/ffmpeg_demuxer_unittest.cc

Issue 53126: Demuxer stream now uses a callback instead of Assignable template. Cleaning ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 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/filters/ffmpeg_demuxer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/ffmpeg_demuxer_unittest.cc
===================================================================
--- media/filters/ffmpeg_demuxer_unittest.cc (revision 12628)
+++ media/filters/ffmpeg_demuxer_unittest.cc (working copy)
@@ -112,29 +112,43 @@
memset(&g_packet, 0, sizeof(g_packet));
}
-// Simple implementation of Assignable<Buffer> that lets us poke at values.
-class TestBuffer : public Assignable<Buffer> {
+// Ref counted object so we can create callbacks to call DemuxerStream::Read().
+class TestReader : public base::RefCountedThreadSafe<TestReader> {
public:
- TestBuffer() : assigned_(false) {}
- virtual ~TestBuffer() {}
+ TestReader() : called_(false), expecting_call_(false) {}
+ virtual ~TestReader() {}
- // Assignable<Buffer> implementation.
- virtual void SetBuffer(Buffer* buffer) {
- buffer_ = buffer;
+ void Reset() {
+ EXPECT_FALSE(expecting_call_);
+ expecting_call_ = false;
+ called_ = false;
+ buffer_ = NULL;
}
- void OnAssignment() {
- EXPECT_FALSE(assigned_);
- assigned_ = true;
+ void Read(DemuxerStream* stream) {
+ EXPECT_FALSE(expecting_call_);
+ called_ = false;
+ expecting_call_ = true;
+ stream->Read(NewCallback(this, &TestReader::ReadComplete));
}
+ void ReadComplete(Buffer* buffer) {
+ EXPECT_FALSE(called_);
+ EXPECT_TRUE(expecting_call_);
+ expecting_call_ = false;
+ called_ = true;
+ buffer_ = buffer;
+ }
+
// Mock getters/setters.
Buffer* buffer() { return buffer_; }
- bool assigned() { return assigned_; }
+ bool called() { return called_; }
+ bool expecting_call() { return expecting_call_; }
private:
scoped_refptr<Buffer> buffer_;
- bool assigned_;
+ bool called_;
+ bool expecting_call_;
};
} // namespace
@@ -336,13 +350,13 @@
g_packet.size = kDataSize;
// Attempt a read from the audio stream and run the message loop until done.
- scoped_refptr<TestBuffer> buffer(new TestBuffer());
- audio_stream->Read(buffer);
+ scoped_refptr<TestReader> reader(new TestReader());
+ reader->Read(audio_stream);
pipeline.RunAllTasks();
- EXPECT_TRUE(buffer->assigned());
- EXPECT_TRUE(buffer->buffer());
- EXPECT_EQ(audio_data, buffer->buffer()->GetData());
- EXPECT_EQ(kDataSize, buffer->buffer()->GetDataSize());
+ EXPECT_TRUE(reader->called());
+ EXPECT_TRUE(reader->buffer());
+ EXPECT_EQ(audio_data, reader->buffer()->GetData());
+ EXPECT_EQ(kDataSize, reader->buffer()->GetDataSize());
// Prepare our test video packet.
g_packet.stream_index = kVideo;
@@ -350,25 +364,25 @@
g_packet.size = kDataSize;
// Attempt a read from the video stream and run the message loop until done.
- buffer = new TestBuffer();
- video_stream->Read(buffer);
+ reader->Reset();
+ reader->Read(video_stream);
pipeline.RunAllTasks();
- EXPECT_TRUE(buffer->assigned());
- EXPECT_TRUE(buffer->buffer());
- EXPECT_EQ(video_data, buffer->buffer()->GetData());
- EXPECT_EQ(kDataSize, buffer->buffer()->GetDataSize());
+ EXPECT_TRUE(reader->called());
+ EXPECT_TRUE(reader->buffer());
+ EXPECT_EQ(video_data, reader->buffer()->GetData());
+ EXPECT_EQ(kDataSize, reader->buffer()->GetDataSize());
// Simulate end of stream.
g_av_read_frame = AVERROR_IO;
// Attempt a read from the audio stream and run the message loop until done.
- buffer = new TestBuffer();
- audio_stream->Read(buffer);
+ reader->Reset();
+ reader->Read(audio_stream);
pipeline.RunAllTasks();
- EXPECT_FALSE(buffer->assigned());
- EXPECT_FALSE(buffer->buffer());
+ EXPECT_FALSE(reader->called());
+ EXPECT_FALSE(reader->buffer());
// Manually release buffer, which should release any remaining AVPackets.
- buffer = NULL;
+ reader = NULL;
EXPECT_EQ(0, g_oustanding_packets);
}
« no previous file with comments | « media/filters/ffmpeg_demuxer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698