| Index: media/filters/ffmpeg_demuxer.cc
|
| diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
|
| index c7e00ce5c5f235becbf20499e099c406f5ded6f6..fb31f4bdf56b4c728984a3b6a92b822d8c07438e 100644
|
| --- a/media/filters/ffmpeg_demuxer.cc
|
| +++ b/media/filters/ffmpeg_demuxer.cc
|
| @@ -525,9 +525,13 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
|
| // Fixing chained ogg is non-trivial, so for now just reuse the last good
|
| // timestamp. The decoder will rewrite the timestamps to be sample accurate
|
| // later. See http://crbug.com/396864.
|
| - if (fixup_negative_timestamps_ &&
|
| - (buffer->timestamp() == kNoTimestamp() ||
|
| - buffer->timestamp() < last_packet_timestamp_)) {
|
| + //
|
| + // TODO(dalecurtis): ffvp9 packet parser generates AV_NOPTS packets when a
|
| + // superframe is split, so adjust timestamps here...
|
| + // TODO(chcunningham): It may be that some super frame parts are correct to
|
| + // have PTS as they aren't intended for rendering.
|
| + if ((fixup_negative_timestamps_ || buffer->timestamp() == kNoTimestamp()) &&
|
| + (buffer->timestamp() < last_packet_timestamp_)) {
|
| buffer->set_timestamp(last_packet_timestamp_ +
|
| (last_packet_duration_ != kNoTimestamp()
|
| ? last_packet_duration_
|
|
|