| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Ericsson AB. All rights reserved. | 2 * Copyright (C) 2011 Ericsson AB. All rights reserved. |
| 3 * Copyright (C) 2013 Google Inc. All rights reserved. | 3 * Copyright (C) 2013 Google 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 | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 // So this class runs pre-finalizer to finalize |m_trackData| promptly. | 73 // So this class runs pre-finalizer to finalize |m_trackData| promptly. |
| 74 void dispose(); | 74 void dispose(); |
| 75 | 75 |
| 76 MediaStreamSource* source() const { return m_source.get(); } | 76 MediaStreamSource* source() const { return m_source.get(); } |
| 77 | 77 |
| 78 String id() const { return m_id; } | 78 String id() const { return m_id; } |
| 79 bool enabled() const { return m_enabled; } | 79 bool enabled() const { return m_enabled; } |
| 80 void setEnabled(bool enabled) { m_enabled = enabled; } | 80 void setEnabled(bool enabled) { m_enabled = enabled; } |
| 81 bool muted() const { return m_muted; } | 81 bool muted() const { return m_muted; } |
| 82 void setMuted(bool muted) { m_muted = muted; } | 82 void setMuted(bool muted) { m_muted = muted; } |
| 83 WebMediaStreamTrack::ContentHintType contentHint() { return m_contentHint; } |
| 84 void setContentHint(WebMediaStreamTrack::ContentHintType); |
| 83 AudioSourceProvider* getAudioSourceProvider() { return &m_sourceProvider; } | 85 AudioSourceProvider* getAudioSourceProvider() { return &m_sourceProvider; } |
| 84 void setSourceProvider(WebAudioSourceProvider* provider) { | 86 void setSourceProvider(WebAudioSourceProvider* provider) { |
| 85 m_sourceProvider.wrap(provider); | 87 m_sourceProvider.wrap(provider); |
| 86 } | 88 } |
| 87 | 89 |
| 88 TrackData* getTrackData() const { return m_trackData.get(); } | 90 TrackData* getTrackData() const { return m_trackData.get(); } |
| 89 void setTrackData(std::unique_ptr<TrackData> trackData) { | 91 void setTrackData(std::unique_ptr<TrackData> trackData) { |
| 90 m_trackData = std::move(trackData); | 92 m_trackData = std::move(trackData); |
| 91 } | 93 } |
| 92 void getSettings(WebMediaStreamTrack::Settings&); | 94 void getSettings(WebMediaStreamTrack::Settings&); |
| 93 | 95 |
| 94 DECLARE_TRACE(); | 96 DECLARE_TRACE(); |
| 95 | 97 |
| 96 private: | 98 private: |
| 97 MediaStreamComponent(const String& id, MediaStreamSource*); | 99 MediaStreamComponent(const String& id, MediaStreamSource*); |
| 98 MediaStreamComponent(const String& id, | 100 MediaStreamComponent(const String& id, |
| 99 MediaStreamSource*, | 101 MediaStreamSource*, |
| 100 bool enabled, | 102 bool enabled, |
| 101 bool muted); | 103 bool muted, |
| 104 WebMediaStreamTrack::ContentHintType); |
| 102 | 105 |
| 103 // AudioSourceProviderImpl wraps a WebAudioSourceProvider::provideInput() | 106 // AudioSourceProviderImpl wraps a WebAudioSourceProvider::provideInput() |
| 104 // calls into chromium to get a rendered audio stream. | 107 // calls into chromium to get a rendered audio stream. |
| 105 | 108 |
| 106 class PLATFORM_EXPORT AudioSourceProviderImpl final | 109 class PLATFORM_EXPORT AudioSourceProviderImpl final |
| 107 : public AudioSourceProvider { | 110 : public AudioSourceProvider { |
| 108 public: | 111 public: |
| 109 AudioSourceProviderImpl() : m_webAudioSourceProvider(0) {} | 112 AudioSourceProviderImpl() : m_webAudioSourceProvider(0) {} |
| 110 | 113 |
| 111 ~AudioSourceProviderImpl() override {} | 114 ~AudioSourceProviderImpl() override {} |
| 112 | 115 |
| 113 // Wraps the given blink::WebAudioSourceProvider to | 116 // Wraps the given blink::WebAudioSourceProvider to |
| 114 // blink::AudioSourceProvider. | 117 // blink::AudioSourceProvider. |
| 115 void wrap(WebAudioSourceProvider*); | 118 void wrap(WebAudioSourceProvider*); |
| 116 | 119 |
| 117 // blink::AudioSourceProvider | 120 // blink::AudioSourceProvider |
| 118 void provideInput(AudioBus*, size_t framesToProcess) override; | 121 void provideInput(AudioBus*, size_t framesToProcess) override; |
| 119 | 122 |
| 120 private: | 123 private: |
| 121 WebAudioSourceProvider* m_webAudioSourceProvider; | 124 WebAudioSourceProvider* m_webAudioSourceProvider; |
| 122 Mutex m_provideInputLock; | 125 Mutex m_provideInputLock; |
| 123 }; | 126 }; |
| 124 | 127 |
| 125 AudioSourceProviderImpl m_sourceProvider; | 128 AudioSourceProviderImpl m_sourceProvider; |
| 126 Member<MediaStreamSource> m_source; | 129 Member<MediaStreamSource> m_source; |
| 127 String m_id; | 130 String m_id; |
| 128 bool m_enabled; | 131 bool m_enabled; |
| 129 bool m_muted; | 132 bool m_muted; |
| 133 WebMediaStreamTrack::ContentHintType m_contentHint; |
| 130 std::unique_ptr<TrackData> m_trackData; | 134 std::unique_ptr<TrackData> m_trackData; |
| 131 }; | 135 }; |
| 132 | 136 |
| 133 typedef HeapVector<Member<MediaStreamComponent>> MediaStreamComponentVector; | 137 typedef HeapVector<Member<MediaStreamComponent>> MediaStreamComponentVector; |
| 134 | 138 |
| 135 } // namespace blink | 139 } // namespace blink |
| 136 | 140 |
| 137 #endif // MediaStreamComponent_h | 141 #endif // MediaStreamComponent_h |
| OLD | NEW |