diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-28 20:32:42 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-28 20:32:42 +0000 |
commit | 5bba583182085a5d9ef2ff586b5a648b6e3e950a (patch) | |
tree | a72e8911af8a8a95fffdada045c8ca902483b946 /media/base | |
parent | e1a5418305f1a426068915b3243079eb1b184211 (diff) | |
download | chromium_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.cc | 1 | ||||
-rw-r--r-- | media/base/video_frame.h | 11 |
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); }; |