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

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLMediaElement.cpp

Issue 2263823002: Deliver change notifications to SourceBuffer track lists. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Call VideoTrackList::trackSelected also the SourceBuffer track list Created 4 years, 3 months 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 2390 matching lines...) Expand 10 before | Expand all | Expand 10 after
2401 else 2401 else
2402 pause(); 2402 pause();
2403 } 2403 }
2404 2404
2405 AudioTrackList& HTMLMediaElement::audioTracks() 2405 AudioTrackList& HTMLMediaElement::audioTracks()
2406 { 2406 {
2407 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled()); 2407 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
2408 return *m_audioTracks; 2408 return *m_audioTracks;
2409 } 2409 }
2410 2410
2411 void HTMLMediaElement::audioTrackChanged(WebMediaPlayer::TrackId trackId, bool e nabled) 2411 void HTMLMediaElement::audioTrackChanged(AudioTrack* track)
2412 { 2412 {
2413 BLINK_MEDIA_LOG << "audioTrackChanged(" << (void*)this << ") trackId= " << S tring(trackId) << " enabled=" << boolString(enabled); 2413 BLINK_MEDIA_LOG << "audioTrackChanged(" << (void*)this << ") trackId= " << S tring(track->id()) << " enabled=" << boolString(track->enabled());
2414 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled()); 2414 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
2415 2415
2416 audioTracks().scheduleChangeEvent(); 2416 audioTracks().scheduleChangeEvent();
2417 2417
2418 // FIXME: Add call on m_mediaSource to notify it of track changes once the S ourceBuffer.audioTracks attribute is added. 2418 if (m_mediaSource)
2419 m_mediaSource->onTrackChanged(track);
2419 2420
2420 if (!m_audioTracksTimer.isActive()) 2421 if (!m_audioTracksTimer.isActive())
2421 m_audioTracksTimer.startOneShot(0, BLINK_FROM_HERE); 2422 m_audioTracksTimer.startOneShot(0, BLINK_FROM_HERE);
2422 } 2423 }
2423 2424
2424 void HTMLMediaElement::audioTracksTimerFired(TimerBase*) 2425 void HTMLMediaElement::audioTracksTimerFired(TimerBase*)
2425 { 2426 {
2426 Vector<WebMediaPlayer::TrackId> enabledTrackIds; 2427 Vector<WebMediaPlayer::TrackId> enabledTrackIds;
2427 for (unsigned i = 0; i < audioTracks().length(); ++i) { 2428 for (unsigned i = 0; i < audioTracks().length(); ++i) {
2428 AudioTrack* track = audioTracks().anonymousIndexedGetter(i); 2429 AudioTrack* track = audioTracks().anonymousIndexedGetter(i);
(...skipping 28 matching lines...) Expand all
2457 2458
2458 audioTracks().remove(trackId); 2459 audioTracks().remove(trackId);
2459 } 2460 }
2460 2461
2461 VideoTrackList& HTMLMediaElement::videoTracks() 2462 VideoTrackList& HTMLMediaElement::videoTracks()
2462 { 2463 {
2463 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled()); 2464 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
2464 return *m_videoTracks; 2465 return *m_videoTracks;
2465 } 2466 }
2466 2467
2467 void HTMLMediaElement::selectedVideoTrackChanged(WebMediaPlayer::TrackId* select edTrackId) 2468 void HTMLMediaElement::selectedVideoTrackChanged(VideoTrack* track)
2468 { 2469 {
2469 BLINK_MEDIA_LOG << "selectedVideoTrackChanged(" << (void*)this << ") selecte dTrackId=" << (selectedTrackId ? String(*selectedTrackId) : "none"); 2470 BLINK_MEDIA_LOG << "selectedVideoTrackChanged(" << (void*)this << ") selecte dTrackId=" << (track->selected() ? String(track->id()) : "none");
2470 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled()); 2471 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
2471 2472
2472 if (selectedTrackId) 2473 if (track->selected())
2473 videoTracks().trackSelected(*selectedTrackId); 2474 videoTracks().trackSelected(track->id());
2474 2475
2475 // FIXME: Add call on m_mediaSource to notify it of track changes once the S ourceBuffer.videoTracks attribute is added. 2476 videoTracks().scheduleChangeEvent();
2476 2477
2477 webMediaPlayer()->selectedVideoTrackChanged(selectedTrackId); 2478 if (m_mediaSource)
2479 m_mediaSource->onTrackChanged(track);
2480
2481 WebMediaPlayer::TrackId id = track->id();
2482 webMediaPlayer()->selectedVideoTrackChanged(track->selected() ? &id : nullpt r);
2478 } 2483 }
2479 2484
2480 WebMediaPlayer::TrackId HTMLMediaElement::addVideoTrack(const WebString& id, Web MediaPlayerClient::VideoTrackKind kind, const WebString& label, const WebString& language, bool selected) 2485 WebMediaPlayer::TrackId HTMLMediaElement::addVideoTrack(const WebString& id, Web MediaPlayerClient::VideoTrackKind kind, const WebString& label, const WebString& language, bool selected)
2481 { 2486 {
2482 AtomicString kindString = VideoKindToString(kind); 2487 AtomicString kindString = VideoKindToString(kind);
2483 BLINK_MEDIA_LOG << "addVideoTrack(" << (void*)this << ", '" << (String)id << "', '" << (AtomicString)kindString 2488 BLINK_MEDIA_LOG << "addVideoTrack(" << (void*)this << ", '" << (String)id << "', '" << (AtomicString)kindString
2484 << "', '" << (String)label << "', '" << (String)language << "', " << boo lString(selected) << ")"; 2489 << "', '" << (String)label << "', '" << (String)language << "', " << boo lString(selected) << ")";
2485 2490
2486 if (!RuntimeEnabledFeatures::audioVideoTracksEnabled()) 2491 if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
2487 return blink::WebMediaPlayer::TrackId(); 2492 return blink::WebMediaPlayer::TrackId();
(...skipping 1534 matching lines...) Expand 10 before | Expand all | Expand 10 after
4022 4027
4023 IntRect HTMLMediaElement::AutoplayHelperClientImpl::absoluteBoundingBoxRect() co nst 4028 IntRect HTMLMediaElement::AutoplayHelperClientImpl::absoluteBoundingBoxRect() co nst
4024 { 4029 {
4025 IntRect result; 4030 IntRect result;
4026 if (LayoutObject* object = m_element->layoutObject()) 4031 if (LayoutObject* object = m_element->layoutObject())
4027 result = object->absoluteBoundingBoxRect(); 4032 result = object->absoluteBoundingBoxRect();
4028 return result; 4033 return result;
4029 } 4034 }
4030 4035
4031 } // namespace blink 4036 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/html/HTMLMediaElement.h ('k') | third_party/WebKit/Source/core/html/HTMLMediaSource.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698