Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(226)

Side by Side Diff: Source/core/html/track/TextTrack.cpp

Issue 74623002: Remove the logic for de-duplicating in-band text track cues (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: WebVTTParser.cpp was moved Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « Source/core/html/track/TextTrack.h ('k') | Source/core/html/track/TextTrackCue.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * Copyright (C) 2011, 2012, 2013 Apple Inc. All rights reserved. 3 * Copyright (C) 2011, 2012, 2013 Apple Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 int TextTrack::trackIndexRelativeToRenderedTracks() 410 int TextTrack::trackIndexRelativeToRenderedTracks()
411 { 411 {
412 ASSERT(m_mediaElement); 412 ASSERT(m_mediaElement);
413 413
414 if (m_renderedTrackIndex == invalidTrackIndex) 414 if (m_renderedTrackIndex == invalidTrackIndex)
415 m_renderedTrackIndex = m_mediaElement->textTracks()->getTrackIndexRelati veToRenderedTracks(this); 415 m_renderedTrackIndex = m_mediaElement->textTracks()->getTrackIndexRelati veToRenderedTracks(this);
416 416
417 return m_renderedTrackIndex; 417 return m_renderedTrackIndex;
418 } 418 }
419 419
420 bool TextTrack::hasCue(TextTrackCue* cue)
421 {
422 if (cue->startTime() < 0 || cue->endTime() < 0)
423 return false;
424
425 if (!m_cues || !m_cues->length())
426 return false;
427
428 size_t searchStart = 0;
429 size_t searchEnd = m_cues->length();
430
431 while (1) {
432 ASSERT(searchStart <= m_cues->length());
433 ASSERT(searchEnd <= m_cues->length());
434
435 TextTrackCue* existingCue;
436
437 // Cues in the TextTrackCueList are maintained in start time order.
438 if (searchStart == searchEnd) {
439 if (!searchStart)
440 return false;
441
442 // If there is more than one cue with the same start time, back up t o first one so we
443 // consider all of them.
444 while (searchStart >= 2 && cue->startTime() == m_cues->item(searchSt art - 2)->startTime())
445 --searchStart;
446
447 bool firstCompare = true;
448 while (1) {
449 if (!firstCompare)
450 ++searchStart;
451 firstCompare = false;
452 if (searchStart > m_cues->length())
453 return false;
454
455 existingCue = m_cues->item(searchStart - 1);
456 if (!existingCue || cue->startTime() > existingCue->startTime())
457 return false;
458
459 if (*existingCue != *cue)
460 continue;
461
462 return true;
463 }
464 }
465
466 size_t index = (searchStart + searchEnd) / 2;
467 existingCue = m_cues->item(index);
468 if (cue->startTime() < existingCue->startTime() || (cue->startTime() == existingCue->startTime() && cue->endTime() > existingCue->endTime()))
469 searchEnd = index;
470 else
471 searchStart = index + 1;
472 }
473
474 ASSERT_NOT_REACHED();
475 return false;
476 }
477
478 const AtomicString& TextTrack::interfaceName() const 420 const AtomicString& TextTrack::interfaceName() const
479 { 421 {
480 return EventTargetNames::TextTrack; 422 return EventTargetNames::TextTrack;
481 } 423 }
482 424
483 ExecutionContext* TextTrack::executionContext() const 425 ExecutionContext* TextTrack::executionContext() const
484 { 426 {
485 return m_document; 427 return m_document;
486 } 428 }
487 429
488 } // namespace WebCore 430 } // namespace WebCore
489 431
OLDNEW
« no previous file with comments | « Source/core/html/track/TextTrack.h ('k') | Source/core/html/track/TextTrackCue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698