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

Side by Side Diff: Source/core/platform/audio/MultiChannelResampler.cpp

Issue 14628008: Require use of AudioBus::create() to avoid ref-counting issues (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Require use of Created 7 years, 7 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
« no previous file with comments | « Source/core/platform/audio/AudioResampler.cpp ('k') | Source/core/platform/audio/Reverb.cpp » ('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 * 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 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 { 57 {
58 bool isBusGood = bus && bus->numberOfChannels() == 1; 58 bool isBusGood = bus && bus->numberOfChannels() == 1;
59 ASSERT(isBusGood); 59 ASSERT(isBusGood);
60 if (!isBusGood) 60 if (!isBusGood)
61 return; 61 return;
62 62
63 // Get the data from the multi-channel provider when the first channel a sks for it. 63 // Get the data from the multi-channel provider when the first channel a sks for it.
64 // For subsequent channels, we can just dish out the channel data from t hat (stored in m_multiChannelBus). 64 // For subsequent channels, we can just dish out the channel data from t hat (stored in m_multiChannelBus).
65 if (!m_currentChannel) { 65 if (!m_currentChannel) {
66 m_framesToProcess = framesToProcess; 66 m_framesToProcess = framesToProcess;
67 m_multiChannelBus = adoptRef(new AudioBus(m_numberOfChannels, frames ToProcess)); 67 m_multiChannelBus = AudioBus::create(m_numberOfChannels, framesToPro cess);
68 m_multiChannelProvider->provideInput(m_multiChannelBus.get(), frames ToProcess); 68 m_multiChannelProvider->provideInput(m_multiChannelBus.get(), frames ToProcess);
69 } 69 }
70 70
71 // All channels must ask for the same amount. This should always be the case, but let's just make sure. 71 // All channels must ask for the same amount. This should always be the case, but let's just make sure.
72 bool isGood = m_multiChannelBus.get() && framesToProcess == m_framesToPr ocess; 72 bool isGood = m_multiChannelBus.get() && framesToProcess == m_framesToPr ocess;
73 ASSERT(isGood); 73 ASSERT(isGood);
74 if (!isGood) 74 if (!isGood)
75 return; 75 return;
76 76
77 // Copy the channel data from what we received from m_multiChannelProvid er. 77 // Copy the channel data from what we received from m_multiChannelProvid er.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 // channels, since they all buffer in the same way and are processing th e same number of frames. 114 // channels, since they all buffer in the same way and are processing th e same number of frames.
115 m_kernels[channelIndex]->process(&channelProvider, 115 m_kernels[channelIndex]->process(&channelProvider,
116 destination->channel(channelIndex)->mut ableData(), 116 destination->channel(channelIndex)->mut ableData(),
117 framesToProcess); 117 framesToProcess);
118 } 118 }
119 } 119 }
120 120
121 } // namespace WebCore 121 } // namespace WebCore
122 122
123 #endif // ENABLE(WEB_AUDIO) 123 #endif // ENABLE(WEB_AUDIO)
OLDNEW
« no previous file with comments | « Source/core/platform/audio/AudioResampler.cpp ('k') | Source/core/platform/audio/Reverb.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698