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

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

Issue 2050043002: Generate and assign media track ids in demuxers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@use-streamparser-trackid
Patch Set: Rebase Created 4 years, 6 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 2375 matching lines...) Expand 10 before | Expand all | Expand 10 after
2386 } 2386 }
2387 2387
2388 AudioTrackList& HTMLMediaElement::audioTracks() 2388 AudioTrackList& HTMLMediaElement::audioTracks()
2389 { 2389 {
2390 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled()); 2390 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
2391 return *m_audioTracks; 2391 return *m_audioTracks;
2392 } 2392 }
2393 2393
2394 void HTMLMediaElement::audioTrackChanged(WebMediaPlayer::TrackId trackId, bool e nabled) 2394 void HTMLMediaElement::audioTrackChanged(WebMediaPlayer::TrackId trackId, bool e nabled)
2395 { 2395 {
2396 DVLOG(MEDIA_LOG_LEVEL) << "audioTrackChanged(" << (void*)this << ") trackId= " << trackId << " enabled=" << boolString(enabled); 2396 DVLOG(MEDIA_LOG_LEVEL) << "audioTrackChanged(" << (void*)this << ") trackId= " << (String)trackId << " enabled=" << boolString(enabled);
chcunningham 2016/06/13 19:32:12 Track Id is a string now right? is this needed? If
servolk 2016/06/13 22:00:16 Track id is a blink::WebString, and surprisingly b
2397 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled()); 2397 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
2398 2398
2399 audioTracks().scheduleChangeEvent(); 2399 audioTracks().scheduleChangeEvent();
2400 2400
2401 // FIXME: Add call on m_mediaSource to notify it of track changes once the S ourceBuffer.audioTracks attribute is added. 2401 // FIXME: Add call on m_mediaSource to notify it of track changes once the S ourceBuffer.audioTracks attribute is added.
2402 2402
2403 if (!m_audioTracksTimer.isActive()) 2403 if (!m_audioTracksTimer.isActive())
2404 m_audioTracksTimer.startOneShot(0, BLINK_FROM_HERE); 2404 m_audioTracksTimer.startOneShot(0, BLINK_FROM_HERE);
2405 } 2405 }
2406 2406
2407 void HTMLMediaElement::audioTracksTimerFired(Timer<HTMLMediaElement>*) 2407 void HTMLMediaElement::audioTracksTimerFired(Timer<HTMLMediaElement>*)
2408 { 2408 {
2409 Vector<WebMediaPlayer::TrackId> enabledTrackIds; 2409 Vector<WebMediaPlayer::TrackId> enabledTrackIds;
2410 for (unsigned i = 0; i < audioTracks().length(); ++i) { 2410 for (unsigned i = 0; i < audioTracks().length(); ++i) {
2411 AudioTrack* track = audioTracks().anonymousIndexedGetter(i); 2411 AudioTrack* track = audioTracks().anonymousIndexedGetter(i);
2412 if (track->enabled()) 2412 if (track->enabled())
2413 enabledTrackIds.append(track->trackId()); 2413 enabledTrackIds.append(track->trackId());
2414 } 2414 }
2415 2415
2416 webMediaPlayer()->enabledAudioTracksChanged(enabledTrackIds); 2416 webMediaPlayer()->enabledAudioTracksChanged(enabledTrackIds);
2417 } 2417 }
2418 2418
2419 WebMediaPlayer::TrackId HTMLMediaElement::addAudioTrack(const WebString& id, Web MediaPlayerClient::AudioTrackKind kind, const WebString& label, const WebString& language, bool enabled) 2419 WebMediaPlayer::TrackId HTMLMediaElement::addAudioTrack(const WebString& id, Web MediaPlayerClient::AudioTrackKind kind, const WebString& label, const WebString& language, bool enabled)
2420 { 2420 {
2421 AtomicString kindString = AudioKindToString(kind); 2421 AtomicString kindString = AudioKindToString(kind);
2422 DVLOG(MEDIA_LOG_LEVEL) << "addAudioTrack(" << (void*)this << ", '" << (Strin g)id << "', ' " << (AtomicString)kindString 2422 DVLOG(MEDIA_LOG_LEVEL) << "addAudioTrack(" << (void*)this << ", '" << (Strin g)id << "', ' " << (AtomicString)kindString
2423 << "', '" << (String)label << "', '" << (String)language << "', " << boo lString(enabled) << ")"; 2423 << "', '" << (String)label << "', '" << (String)language << "', " << boo lString(enabled) << ")";
2424 2424
2425 if (!RuntimeEnabledFeatures::audioVideoTracksEnabled()) 2425 if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
2426 return 0; 2426 return blink::WebMediaPlayer::TrackId();
2427 2427
2428 AudioTrack* audioTrack = AudioTrack::create(id, kindString, label, language, enabled); 2428 AudioTrack* audioTrack = AudioTrack::create(id, kindString, label, language, enabled);
2429 audioTracks().add(audioTrack); 2429 audioTracks().add(audioTrack);
2430 2430
2431 return audioTrack->trackId(); 2431 return audioTrack->trackId();
2432 } 2432 }
2433 2433
2434 void HTMLMediaElement::removeAudioTrack(WebMediaPlayer::TrackId trackId) 2434 void HTMLMediaElement::removeAudioTrack(WebMediaPlayer::TrackId trackId)
2435 { 2435 {
2436 DVLOG(MEDIA_LOG_LEVEL) << "removeAudioTrack(" << (void*)this << ")"; 2436 DVLOG(MEDIA_LOG_LEVEL) << "removeAudioTrack(" << (void*)this << ")";
2437 2437
2438 if (!RuntimeEnabledFeatures::audioVideoTracksEnabled()) 2438 if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
2439 return; 2439 return;
2440 2440
2441 audioTracks().remove(trackId); 2441 audioTracks().remove(trackId);
2442 } 2442 }
2443 2443
2444 VideoTrackList& HTMLMediaElement::videoTracks() 2444 VideoTrackList& HTMLMediaElement::videoTracks()
2445 { 2445 {
2446 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled()); 2446 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
2447 return *m_videoTracks; 2447 return *m_videoTracks;
2448 } 2448 }
2449 2449
2450 void HTMLMediaElement::selectedVideoTrackChanged(WebMediaPlayer::TrackId* select edTrackId) 2450 void HTMLMediaElement::selectedVideoTrackChanged(WebMediaPlayer::TrackId* select edTrackId)
2451 { 2451 {
2452 DVLOG(MEDIA_LOG_LEVEL) << "selectedVideoTrackChanged(" << (void*)this << ") selectedTrackId=" << (selectedTrackId ? String::format("%u", *selectedTrackId) : "none"); 2452 DVLOG(MEDIA_LOG_LEVEL) << "selectedVideoTrackChanged(" << (void*)this << ") selectedTrackId=" << (selectedTrackId ? ((String)*selectedTrackId) : "none");
2453 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled()); 2453 DCHECK(RuntimeEnabledFeatures::audioVideoTracksEnabled());
2454 2454
2455 if (selectedTrackId) 2455 if (selectedTrackId)
2456 videoTracks().trackSelected(*selectedTrackId); 2456 videoTracks().trackSelected(*selectedTrackId);
2457 2457
2458 // FIXME: Add call on m_mediaSource to notify it of track changes once the S ourceBuffer.videoTracks attribute is added. 2458 // FIXME: Add call on m_mediaSource to notify it of track changes once the S ourceBuffer.videoTracks attribute is added.
2459 2459
2460 webMediaPlayer()->selectedVideoTrackChanged(selectedTrackId); 2460 webMediaPlayer()->selectedVideoTrackChanged(selectedTrackId);
2461 } 2461 }
2462 2462
2463 WebMediaPlayer::TrackId HTMLMediaElement::addVideoTrack(const WebString& id, Web MediaPlayerClient::VideoTrackKind kind, const WebString& label, const WebString& language, bool selected) 2463 WebMediaPlayer::TrackId HTMLMediaElement::addVideoTrack(const WebString& id, Web MediaPlayerClient::VideoTrackKind kind, const WebString& label, const WebString& language, bool selected)
2464 { 2464 {
2465 AtomicString kindString = VideoKindToString(kind); 2465 AtomicString kindString = VideoKindToString(kind);
2466 DVLOG(MEDIA_LOG_LEVEL) << "addVideoTrack(" << (void*)this << ", '" << (Strin g)id << "', '" << (AtomicString)kindString 2466 DVLOG(MEDIA_LOG_LEVEL) << "addVideoTrack(" << (void*)this << ", '" << (Strin g)id << "', '" << (AtomicString)kindString
2467 << "', '" << (String)label << "', '" << (String)language << "', " << boo lString(selected) << ")"; 2467 << "', '" << (String)label << "', '" << (String)language << "', " << boo lString(selected) << ")";
2468 2468
2469 if (!RuntimeEnabledFeatures::audioVideoTracksEnabled()) 2469 if (!RuntimeEnabledFeatures::audioVideoTracksEnabled())
2470 return 0; 2470 return blink::WebMediaPlayer::TrackId();
2471 2471
2472 // If another track was selected (potentially by the user), leave it selecte d. 2472 // If another track was selected (potentially by the user), leave it selecte d.
2473 if (selected && videoTracks().selectedIndex() != -1) 2473 if (selected && videoTracks().selectedIndex() != -1)
2474 selected = false; 2474 selected = false;
2475 2475
2476 VideoTrack* videoTrack = VideoTrack::create(id, kindString, label, language, selected); 2476 VideoTrack* videoTrack = VideoTrack::create(id, kindString, label, language, selected);
2477 videoTracks().add(videoTrack); 2477 videoTracks().add(videoTrack);
2478 2478
2479 return videoTrack->trackId(); 2479 return videoTrack->trackId();
2480 } 2480 }
(...skipping 1503 matching lines...) Expand 10 before | Expand all | Expand 10 after
3984 3984
3985 IntRect HTMLMediaElement::AutoplayHelperClientImpl::absoluteBoundingBoxRect() co nst 3985 IntRect HTMLMediaElement::AutoplayHelperClientImpl::absoluteBoundingBoxRect() co nst
3986 { 3986 {
3987 IntRect result; 3987 IntRect result;
3988 if (LayoutObject* object = m_element->layoutObject()) 3988 if (LayoutObject* object = m_element->layoutObject())
3989 result = object->absoluteBoundingBoxRect(); 3989 result = object->absoluteBoundingBoxRect();
3990 return result; 3990 return result;
3991 } 3991 }
3992 3992
3993 } // namespace blink 3993 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698