Changeset 150561 in webkit
- Timestamp:
- May 22, 2013 8:36:15 PM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 4 deleted
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r150555 r150561 1 2013-05-22 Jer Noble <jer.noble@apple.com> 2 3 Mac: Set the default audio buffer size to a large value for <video> elements. 4 https://bugs.webkit.org/show_bug.cgi?id=116342 5 6 Reviewed by Eric Carlson. 7 8 * wtf/Platform.h: Add a WTF_USE_AUDIO_SESSION setting. 1 2013-05-22 Dean Jackson <dino@apple.com> 2 3 Rolling out r150555. It borked about 30 media tests. 4 5 * wtf/Platform.h: 9 6 10 7 2013-05-21 Anders Carlsson <andersca@apple.com> -
trunk/Source/WTF/wtf/Platform.h
r150555 r150561 1019 1019 #endif /* #if PLATFORM(MAC) && (PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070) */ 1020 1020 1021 #if PLATFORM(MAC) || PLATFORM(IOS)1022 #define WTF_USE_AUDIO_SESSION 11023 #endif1024 1025 1021 #endif /* WTF_Platform_h */ -
trunk/Source/WebCore/ChangeLog
r150560 r150561 1 2013-05-22 Dean Jackson <dino@apple.com> 2 3 Rolling out r150555. It borked about 30 media tests. 4 5 * WebCore.xcodeproj/project.pbxproj: 6 * html/HTMLMediaElement.cpp: 7 (WebCore::HTMLMediaElement::HTMLMediaElement): 8 * html/HTMLMediaElement.h: 9 * platform/audio/AudioSession.cpp: 10 (WebCore): 11 (WebCore::AudioSession::AudioSession): 12 (WebCore::AudioSession::preferredBufferDuration): 13 (WebCore::AudioSession::setPreferredBufferDuration): 14 * platform/audio/AudioSession.h: 15 * platform/audio/AudioSessionListener.h: 16 (AudioSessionListener): 17 * platform/audio/AudioSessionManager.cpp: Removed. 18 * platform/audio/AudioSessionManager.h: Removed. 19 * platform/audio/ios/AudioDestinationIOS.cpp: 20 (WebCore::AudioDestinationIOS::configure): 21 * platform/audio/ios/AudioSessionIOS.mm: 22 (WebCore::AudioSession::preferredBufferDuration): 23 (WebCore::AudioSession::setPreferredBufferDuration): 24 * platform/audio/mac/AudioDestinationMac.cpp: 25 (WebCore::AudioDestination::hardwareSampleRate): 26 (WebCore::AudioDestinationMac::AudioDestinationMac): 27 (WebCore::AudioDestinationMac::configure): 28 * platform/audio/mac/AudioDestinationMac.h: 29 (AudioDestinationMac): 30 * platform/audio/mac/AudioSessionMac.cpp: Removed. 31 * platform/audio/mac/AudioSessionManagerMac.cpp: Removed. 32 1 33 2013-05-20 Jeffrey Pfau <jpfau@apple.com> 2 34 … … 31 63 (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer): Add matching resume reason 32 64 33 2013-05-22 Jer Noble <jer.noble@apple.com>34 35 Unreviewed build fix; cast OSStatus to an int before passing it to printf.36 37 * platform/audio/mac/AudioSessionMac.cpp:38 (WebCore::AudioSession::setPreferredBufferSize):39 40 65 2013-05-22 Dean Jackson <dino@apple.com> 41 66 … … 57 82 * rendering/RenderSnapshottedPlugIn.cpp: 58 83 (WebCore::RenderSnapshottedPlugIn::handleEvent): Don't set play state here. Let the restart functions do it. 59 60 2013-05-22 Jer Noble <jer.noble@apple.com>61 62 Mac: Set the default audio buffer size to a large value for <video> elements.63 https://bugs.webkit.org/show_bug.cgi?id=11634264 65 Reviewed by Eric Carlson.66 67 To enable power savings by waking up the audio hardware less often, set the68 requested buffer frame size to a large value, such as 4096. Since this results69 in approximately 100ms worth of buffer, set the buffer size to a much lower70 value when playing WebAudio, which is much more sensitive to latency than video71 or audio elements.72 73 Introduce a new class, AudioSessionManager, as well as a helper class,74 AudioSessionManagerToken. Audio elements, video elements, and WebAudio destination75 nodes will create and retain a token, and release the token in their destructor.76 This allows the AudioSessionManager to track how many of what type of audio-77 generating objects are in existence.78 79 This requires implementing AudioSession for Mac platforms. Move the implementation80 for retrieving the hardware sample rate and setting the buffer duration into81 AudioSessionMac from AudioDestinationMac, to be shared with AudioSessionManagerMac.82 83 Change the AudioSession method preferredBufferLength() into preferredBufferSize(),84 as the callers really want to specify a buffer size, not a buffer duration. On iOS,85 where the available API requires a duration, perform the conversion from duration to86 size on behalf of the caller.87 88 * html/HTMLMediaElement.h: Add a AudioSessionManagerToken member.89 * html/HTMLMediaElement.cpp:90 (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize the token.91 * platform/audio/AudioSession.cpp:92 (WebCore::AudioSession::preferredBufferSize): Renamed from preferredBufferLength.93 (WebCore::AudioSession::setPreferredBufferSize): Renamed from setPreferredBufferLength.94 * platform/audio/AudioSession.h:95 * platform/audio/AudioSessionManager.cpp:96 (AudioSessionManagerToken::create): Simple factory method.97 (AudioSessionManagerToken::AudioSessionManagerToken): Call AudioSessionManager::incrementCount().98 (AudioSessionManagerToken::~AudioSessionManagerToken): Call AudioSessionManager::decrementCount().99 (AudioSessionManager::sharedManager): Simple singleton method.100 (AudioSessionManager::AudioSessionManager): Simple constructor.101 (AudioSessionManager::has): Return whether the type is present.102 (AudioSessionManager::incrementCount): Increment, then call updateSessionState()103 (AudioSessionManager::decrementCount): Decrement, then call updateSessionState()104 (AudioSessionManager::updateSessionState): Stub, does nothing.105 * platform/audio/AudioSessionManager.h:106 * platform/audio/ios/AudioDestinationIOS.cpp:107 (WebCore::AudioDestinationIOS::configure): Call setPreferredBufferSize() instead of setPreferredBufferLength()108 * platform/audio/ios/AudioSessionIOS.mm:109 (WebCore::AudioSession::preferredBufferSize): Renamed from preferredBufferLength.110 (WebCore::AudioSession::setPreferredBufferSize): Renamed from setPreferredBufferLength111 * platform/audio/mac/AudioDestinationMac.cpp:112 (WebCore::AudioDestination::hardwareSampleRate): Call AudioSession::sampleRate().113 (WebCore::AudioDestinationMac::AudioDestinationMac): Create the AudioSessionManagerToken.114 (WebCore::AudioDestinationMac::configure): Do not set the buffer size (this is done in AudioSessionManagerMac).115 * platform/audio/mac/AudioDestinationMac.h:116 * platform/audio/mac/AudioSessionMac.cpp: Added.117 (WebCore::defaultDevice): Added, returns the default audio device.118 (WebCore::AudioSession::AudioSession): Simple constructor.119 (WebCore::AudioSession::~AudioSession): Simple destructor.120 (WebCore::AudioSession::category): Stub, unimplemented.121 (WebCore::AudioSession::setCategory): Ditto.122 (WebCore::AudioSession::categoryOverride): Ditto.123 (WebCore::AudioSession::setCategoryOverride): Ditto.124 (WebCore::AudioSession::numberOfOutputChannels): Ditto.125 (WebCore::AudioSession::setActive): Ditto.126 (WebCore::AudioSession::sampleRate): Use the HAL to return the default audio device sample rate.127 (WebCore::AudioSession::preferredBufferSize): Return the current HAL setting.128 (WebCore::AudioSession::setPreferredBufferSize): Set the buffer size.129 * platform/audio/mac/AudioSessionManagerMac.cpp:130 (AudioSessionManager::updateSessionState): Set the buffer size depending on what audio outputs are present.131 * WebCore.xcodeproj/project.pbxproj: Add the new files to the project.132 84 133 85 2013-05-22 Max Vujovic <mvujovic@adobe.com> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r150555 r150561 5208 5208 CD47B3FC16CC34F800A21EC8 /* CDMPrivateAVFoundation.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD47B3FA16CC34F800A21EC8 /* CDMPrivateAVFoundation.mm */; }; 5209 5209 CD4AC52A1496AE9A0087C4EF /* Composite.wav in Copy Audio Resources */ = {isa = PBXBuildFile; fileRef = CD4AC5281496AE2F0087C4EF /* Composite.wav */; }; 5210 CD54DE4717468B6F005E5B36 /* AudioSessionManagerMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD54DE4517468B6F005E5B36 /* AudioSessionManagerMac.cpp */; };5211 CD54DE4B17469C6D005E5B36 /* AudioSessionMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CD54DE4917469C6D005E5B36 /* AudioSessionMac.cpp */; };5212 5210 CD7E05221651C28200C1201F /* WebCoreAVFResourceLoader.mm in Sources */ = {isa = PBXBuildFile; fileRef = CD7E05211651A84100C1201F /* WebCoreAVFResourceLoader.mm */; }; 5213 5211 CD82030A1395AB6A00F956C6 /* WebVideoFullscreenController.h in Headers */ = {isa = PBXBuildFile; fileRef = CD8203061395AB6A00F956C6 /* WebVideoFullscreenController.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 5230 5228 CDA98E0E1603FE5800FEA3B1 /* MediaKeySession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDA98DC716014F2C00FEA3B1 /* MediaKeySession.cpp */; }; 5231 5229 CDAA8D0A14D71B2E0061EA60 /* PlatformClockCM.mm in Sources */ = {isa = PBXBuildFile; fileRef = CDAA8D0814D385600061EA60 /* PlatformClockCM.mm */; }; 5232 CDAE8C091746B95700532D78 /* AudioSessionManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDAE8C071746B95700532D78 /* AudioSessionManager.cpp */; };5233 5230 CDB859F7160D48A400E5B07F /* MediaKeyEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDB859F4160D489900E5B07F /* MediaKeyEvent.cpp */; }; 5234 5231 CDB859FA160D494900E5B07F /* JSMediaKeyEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CDB859F8160D493E00E5B07F /* JSMediaKeyEvent.cpp */; }; … … 11960 11957 CD4AC5281496AE2F0087C4EF /* Composite.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; name = Composite.wav; path = platform/audio/resources/Composite.wav; sourceTree = SOURCE_ROOT; }; 11961 11958 CD4E0AFA11F7BC27009D3811 /* fullscreen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = fullscreen.css; sourceTree = "<group>"; }; 11962 CD54DE4517468B6F005E5B36 /* AudioSessionManagerMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioSessionManagerMac.cpp; sourceTree = "<group>"; };11963 CD54DE4917469C6D005E5B36 /* AudioSessionMac.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioSessionMac.cpp; sourceTree = "<group>"; };11964 11959 CD7E05201651A84100C1201F /* WebCoreAVFResourceLoader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WebCoreAVFResourceLoader.h; path = objc/WebCoreAVFResourceLoader.h; sourceTree = "<group>"; }; 11965 11960 CD7E05211651A84100C1201F /* WebCoreAVFResourceLoader.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = WebCoreAVFResourceLoader.mm; path = objc/WebCoreAVFResourceLoader.mm; sourceTree = "<group>"; }; … … 12001 11996 CDAA8D0714D385600061EA60 /* PlatformClockCM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformClockCM.h; sourceTree = "<group>"; }; 12002 11997 CDAA8D0814D385600061EA60 /* PlatformClockCM.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformClockCM.mm; sourceTree = "<group>"; }; 12003 CDAE8C071746B95700532D78 /* AudioSessionManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioSessionManager.cpp; sourceTree = "<group>"; };12004 CDAE8C081746B95700532D78 /* AudioSessionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioSessionManager.h; sourceTree = "<group>"; };12005 11998 CDB859F2160D489900E5B07F /* MediaKeyError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaKeyError.h; sourceTree = "<group>"; }; 12006 11999 CDB859F3160D489900E5B07F /* MediaKeyError.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaKeyError.idl; sourceTree = "<group>"; }; … … 20770 20763 CDA79823170A258300D45C55 /* AudioSession.cpp */, 20771 20764 CDA79822170A24F400D45C55 /* AudioSessionListener.h */, 20772 CDAE8C071746B95700532D78 /* AudioSessionManager.cpp */,20773 CDAE8C081746B95700532D78 /* AudioSessionManager.h */,20774 20765 FD31605312B026F700C1A359 /* AudioSourceProvider.h */, 20775 20766 FD62F52D145898D80094B0ED /* AudioSourceProviderClient.h */, … … 20838 20829 FD3160B912B0272A00C1A359 /* AudioFileReaderMac.h */, 20839 20830 FD3160BA12B0272A00C1A359 /* FFTFrameMac.cpp */, 20840 CD54DE4517468B6F005E5B36 /* AudioSessionManagerMac.cpp */,20841 CD54DE4917469C6D005E5B36 /* AudioSessionMac.cpp */,20842 20831 ); 20843 20832 path = mac; … … 25038 25027 4358E8801360A31700E4748C /* FEDropShadow.cpp in Sources */, 25039 25028 84730D7E1248F0B300D3A9C9 /* FEFlood.cpp in Sources */, 25040 CD54DE4B17469C6D005E5B36 /* AudioSessionMac.cpp in Sources */,25041 25029 84801954108BAFB300CB2B1F /* FEGaussianBlur.cpp in Sources */, 25042 25030 84730D801248F0B300D3A9C9 /* FELighting.cpp in Sources */, … … 26370 26358 F55B3DCF1251F12D003EF269 /* ResetInputType.cpp in Sources */, 26371 26359 514BC842161CF05C004D52F4 /* ResourceBuffer.cpp in Sources */, 26372 CD54DE4717468B6F005E5B36 /* AudioSessionManagerMac.cpp in Sources */,26373 26360 514BC83F161CF04A004D52F4 /* ResourceBuffer.mm in Sources */, 26374 26361 934F713E0D5A6F2800018D69 /* ResourceErrorBase.cpp in Sources */, … … 26813 26800 B2C3DA4A0D006C1D00EF6F26 /* TextStream.cpp in Sources */, 26814 26801 9759E93F14EF1CF80026A2DD /* TextTrack.cpp in Sources */, 26815 CDAE8C091746B95700532D78 /* AudioSessionManager.cpp in Sources */,26816 26802 9759E94214EF1CF80026A2DD /* TextTrackCue.cpp in Sources */, 26817 26803 071A9EC2168FBC43002629F9 /* TextTrackCueGeneric.cpp in Sources */, -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r150555 r150561 137 137 #endif 138 138 139 #if USE(AUDIO_SESSION)140 #include "AudioSessionManager.h"141 #endif142 143 139 using namespace std; 144 140 … … 320 316 #if ENABLE(WEB_AUDIO) 321 317 , m_audioSourceNode(0) 322 #endif323 #if USE(AUDIO_SESSION)324 , m_audioSessionManagerToken(AudioSessionManagerToken::create(tagName == videoTag ? AudioSessionManager::Video : AudioSessionManager::Audio))325 318 #endif 326 319 { -
trunk/Source/WebCore/html/HTMLMediaElement.h
r150555 r150561 50 50 namespace WebCore { 51 51 52 #if USE(AUDIO_SESSION)53 class AudioSessionManagerToken;54 #endif55 52 #if ENABLE(WEB_AUDIO) 56 53 class AudioSourceProvider; … … 769 766 RefPtr<PlatformTextTrackMenuInterface> m_platformMenu; 770 767 #endif 771 772 #if USE(AUDIO_SESSION)773 OwnPtr<AudioSessionManagerToken> m_audioSessionManagerToken;774 #endif775 768 }; 776 769 -
trunk/Source/WebCore/platform/audio/AudioSession.cpp
r150555 r150561 26 26 #include "config.h" 27 27 #include "AudioSession.h" 28 29 #if USE(AUDIO_SESSION)30 28 31 29 #include "AudioSessionListener.h" … … 62 60 } 63 61 64 #if !PLATFORM(IOS) && !PLATFORM(MAC)62 #if !PLATFORM(IOS) 65 63 class AudioSessionPrivate { 66 64 }; 67 65 68 66 AudioSession::AudioSession() 69 : m_private( nullptr)67 : m_private(0) 70 68 { 71 69 notImplemented(); … … 115 113 } 116 114 117 size_t AudioSession::preferredBufferSize() const115 float AudioSession::preferredBufferDuration() const 118 116 { 119 117 notImplemented(); … … 121 119 } 122 120 123 void AudioSession::setPreferredBuffer Size(size_t)121 void AudioSession::setPreferredBufferDuration(float) 124 122 { 125 123 notImplemented(); … … 128 126 129 127 } 130 131 #endif // USE(AUDIO_SESSION) -
trunk/Source/WebCore/platform/audio/AudioSession.h
r150555 r150561 26 26 #ifndef AudioSession_h 27 27 #define AudioSession_h 28 29 #if USE(AUDIO_SESSION)30 28 31 29 #include <wtf/HashSet.h> … … 65 63 void setActive(bool); 66 64 67 size_t preferredBufferSize() const;68 void setPreferredBuffer Size(size_t);65 float preferredBufferDuration() const; 66 void setPreferredBufferDuration(float seconds); 69 67 70 68 void beganAudioInterruption(); … … 81 79 } 82 80 83 #endif // USE(AUDIO_SESSION)84 85 81 #endif // AudioSession_h -
trunk/Source/WebCore/platform/audio/AudioSessionListener.h
r150555 r150561 27 27 #define AudioSessionListener_h 28 28 29 #if USE(AUDIO_SESSION)30 31 29 namespace WebCore { 32 30 33 31 class AudioSessionListener { 34 WTF_MAKE_NONCOPYABLE(AudioSessionListener) ;32 WTF_MAKE_NONCOPYABLE(AudioSessionListener) 35 33 public: 36 34 virtual void beganAudioInterruption() = 0; … … 43 41 } 44 42 45 #endif // USE(AUDIO_SESSION)46 47 43 #endif // AudioSessionListener_h -
trunk/Source/WebCore/platform/audio/ios/AudioDestinationIOS.cpp
r150555 r150561 189 189 ASSERT(!result); 190 190 191 AudioSession::sharedSession().setPreferredBuffer Size(kPreferredBufferSize);191 AudioSession::sharedSession().setPreferredBufferDuration(narrowPrecisionToFloat(kPreferredBufferSize / m_sampleRate)); 192 192 } 193 193 -
trunk/Source/WebCore/platform/audio/ios/AudioSessionIOS.mm
r150555 r150561 27 27 #import "AudioSession.h" 28 28 29 #if USE(AUDIO_SESSION) &&PLATFORM(IOS)29 #if PLATFORM(IOS) 30 30 31 31 #import "SoftLinking.h" … … 202 202 } 203 203 204 size_t AudioSession::preferredBufferSize() const205 { 206 return [[AVAudioSession sharedInstance] preferredIOBufferDuration] * sampleRate();207 } 208 209 void AudioSession::setPreferredBuffer Size(size_t bufferSize)204 float AudioSession::preferredBufferDuration() const 205 { 206 return [[AVAudioSession sharedInstance] preferredIOBufferDuration]; 207 } 208 209 void AudioSession::setPreferredBufferDuration(float duration) 210 210 { 211 211 NSError *error = nil; 212 float duration = bufferSize / sampleRate();213 212 [[AVAudioSession sharedInstance] setPreferredIOBufferDuration:duration error:&error]; 214 213 ASSERT(!error); … … 217 216 } 218 217 219 #endif // USE(AUDIO_SESSION) &&PLATFORM(IOS)218 #endif // PLATFORM(IOS) -
trunk/Source/WebCore/platform/audio/mac/AudioDestinationMac.cpp
r150555 r150561 34 34 35 35 #include "AudioIOCallback.h" 36 #include "AudioSessionManager.h"37 36 #include "FloatConversion.h" 38 37 #include "Logging.h" … … 65 64 { 66 65 // Determine the default output device's sample-rate. 67 return AudioSession::sharedSession().sampleRate(); 66 AudioDeviceID deviceID = kAudioDeviceUnknown; 67 UInt32 infoSize = sizeof(deviceID); 68 69 AudioObjectPropertyAddress defaultOutputDeviceAddress = { kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster }; 70 OSStatus result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &defaultOutputDeviceAddress, 0, 0, &infoSize, (void*)&deviceID); 71 if (result) 72 return 0; // error 73 74 Float64 nominalSampleRate; 75 infoSize = sizeof(Float64); 76 77 AudioObjectPropertyAddress nominalSampleRateAddress = { kAudioDevicePropertyNominalSampleRate, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster }; 78 result = AudioObjectGetPropertyData(deviceID, &nominalSampleRateAddress, 0, 0, &infoSize, (void*)&nominalSampleRate); 79 if (result) 80 return 0; // error 81 82 return narrowPrecisionToFloat(nominalSampleRate); 68 83 } 69 84 … … 83 98 , m_sampleRate(sampleRate) 84 99 , m_isPlaying(false) 85 , m_audioSessionManagerToken(AudioSessionManagerToken::create(AudioSessionManager::WebAudio))86 100 { 87 101 // Open and initialize DefaultOutputUnit … … 135 149 result = AudioUnitSetProperty(m_outputUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 0, (void*)&streamFormat, sizeof(AudioStreamBasicDescription)); 136 150 ASSERT(!result); 151 152 // Set the buffer frame size. 153 UInt32 bufferSize = kBufferSize; 154 result = AudioUnitSetProperty(m_outputUnit, kAudioDevicePropertyBufferFrameSize, kAudioUnitScope_Output, 0, (void*)&bufferSize, sizeof(bufferSize)); 155 ASSERT(!result); 137 156 } 138 157 -
trunk/Source/WebCore/platform/audio/mac/AudioDestinationMac.h
r150555 r150561 33 33 #include "AudioDestination.h" 34 34 #include <AudioUnit/AudioUnit.h> 35 #include <wtf/OwnPtr.h>36 35 #include <wtf/RefPtr.h> 37 36 38 37 namespace WebCore { 39 40 class AudioSessionManagerToken;41 38 42 39 // An AudioDestination using CoreAudio's default output AudioUnit … … 67 64 float m_sampleRate; 68 65 bool m_isPlaying; 69 70 #if USE(AUDIO_SESSION)71 OwnPtr<AudioSessionManagerToken> m_audioSessionManagerToken;72 #endif73 66 }; 74 67
Note: See TracChangeset
for help on using the changeset viewer.