Chromium Code Reviews| Index: media/filters/legacy_frame_processor.cc |
| diff --git a/media/filters/legacy_frame_processor.cc b/media/filters/legacy_frame_processor.cc |
| index de1deb7dfe0b983a6fff269891ef69c1075e5e68..ae3b3e5738ae89689be4affff162e7bcfbaac12f 100644 |
| --- a/media/filters/legacy_frame_processor.cc |
| +++ b/media/filters/legacy_frame_processor.cc |
| @@ -90,7 +90,9 @@ bool LegacyFrameProcessor::ProcessFrames( |
| for (TrackBufferMap::iterator itr = track_buffers_.begin(); |
| itr != track_buffers_.end(); ++itr) { |
| - itr->second->stream()->OnNewMediaSegment(segment_timestamp); |
| + // Let text tracks manage their own segment start times. |
| + if (itr->second->stream()->type() != DemuxerStream::TEXT) |
|
wolenetz
2014/04/02 22:54:45
|*new_media_segment| can become true between Proce
DaleCurtis
2014/04/02 23:02:27
That sounds like overly complicated logic which wo
acolwell GONE FROM CHROMIUM
2014/04/03 00:26:52
I believe the root of the problem is that the text
DaleCurtis
2014/04/08 20:42:30
Done.
|
| + itr->second->stream()->OnNewMediaSegment(segment_timestamp); |
| } |
| } |
| @@ -246,6 +248,18 @@ bool LegacyFrameProcessor::OnTextBuffers( |
| if (filtered_buffers.empty()) |
| return true; |
| + if (*new_media_segment) { |
| + *new_media_segment = false; |
| + for (TrackBufferMap::iterator itr = track_buffers_.begin(); |
| + itr != track_buffers_.end(); |
| + ++itr) { |
| + if (itr->second->stream()->type() == DemuxerStream::TEXT) { |
| + itr->second->stream()->OnNewMediaSegment( |
| + filtered_buffers.front()->GetDecodeTimestamp()); |
| + } |
| + } |
| + } |
| + |
| return AppendAndUpdateDuration(track->stream(), filtered_buffers); |
| } |