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); |
} |