summaryrefslogtreecommitdiffstats
path: root/media/base
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-28 20:32:42 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-28 20:32:42 +0000
commit5bba583182085a5d9ef2ff586b5a648b6e3e950a (patch)
treea72e8911af8a8a95fffdada045c8ca902483b946 /media/base
parente1a5418305f1a426068915b3243079eb1b184211 (diff)
downloadchromium_src-5bba583182085a5d9ef2ff586b5a648b6e3e950a.zip
chromium_src-5bba583182085a5d9ef2ff586b5a648b6e3e950a.tar.gz
chromium_src-5bba583182085a5d9ef2ff586b5a648b6e3e950a.tar.bz2
Use FFmpeg's reordered_opaque for presentation timestamp reordering.
This fixes numerous audio/video synchronization issues caused by PtsHeap getting out of sync due to the decoder silently dropping/reordering frames. Most decoder libraries (including FFmpeg and OpenMAX) feature some form of presentation timestamp reordering. This is the first step in moving away from using PtsHeap and instead requireing VideoDecodeEngines + their libraries to handle presentation timestamp reordering. This change also removes VideoFrame::GetRepeatCount() as it is an FFmpeg-specific detail. The duration is now properly calculated inside FFmpegVideoDecodeEngine. BUG=26036 TEST=videos linked in bugs remain in sync, as do all other videos Review URL: http://codereview.chromium.org/1726015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45856 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base')
-rw-r--r--media/base/video_frame.cc1
-rw-r--r--media/base/video_frame.h11
2 files changed, 0 insertions, 12 deletions
diff --git a/media/base/video_frame.cc b/media/base/video_frame.cc
index 6767ee4..0b8239c 100644
--- a/media/base/video_frame.cc
+++ b/media/base/video_frame.cc
@@ -152,7 +152,6 @@ VideoFrame::VideoFrame(VideoFrame::Format format,
width_ = width;
height_ = height;
planes_ = 0;
- repeat_count_ = 0;
memset(&strides_, 0, sizeof(strides_));
memset(&data_, 0, sizeof(data_));
}
diff --git a/media/base/video_frame.h b/media/base/video_frame.h
index 0ad0628..e5cb8ba 100644
--- a/media/base/video_frame.h
+++ b/media/base/video_frame.h
@@ -80,14 +80,6 @@ class VideoFrame : public StreamSample {
// StreamSample interface.
virtual bool IsEndOfStream() const;
- int GetRepeatCount() const {
- return repeat_count_;
- }
-
- void SetRepeatCount(int repeat_count) {
- repeat_count_ = repeat_count;
- }
-
protected:
// Clients must use the static CreateFrame() method to create a new frame.
VideoFrame(Format format,
@@ -119,9 +111,6 @@ class VideoFrame : public StreamSample {
// Array of data pointers to each plane.
uint8* data_[kMaxPlanes];
- // Display meta data
- int repeat_count_;
-
DISALLOW_COPY_AND_ASSIGN(VideoFrame);
};