OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/public/cpp/environment/logging.h" | 5 #include "mojo/public/cpp/environment/logging.h" |
6 #include "mojo/public/cpp/utility/run_loop.h" | 6 #include "mojo/public/cpp/utility/run_loop.h" |
7 #include "mojo/services/media/common/cpp/circular_buffer_media_pipe_adapter.h" | 7 #include "mojo/services/media/common/cpp/circular_buffer_media_pipe_adapter.h" |
8 #include "mojo/services/media/common/interfaces/media_common.mojom.h" | 8 #include "mojo/services/media/common/interfaces/media_common.mojom.h" |
9 #include "mojo/services/media/common/interfaces/media_transport.mojom.h" | 9 #include "mojo/services/media/common/interfaces/media_transport.mojom.h" |
10 | 10 |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 // read-only. | 108 // read-only. |
109 ScopedSharedBufferHandle duplicated_handle; | 109 ScopedSharedBufferHandle duplicated_handle; |
110 res = DuplicateBuffer(buffer_handle_.get(), nullptr, &duplicated_handle); | 110 res = DuplicateBuffer(buffer_handle_.get(), nullptr, &duplicated_handle); |
111 if (res != MOJO_RESULT_OK) { | 111 if (res != MOJO_RESULT_OK) { |
112 MOJO_LOG(ERROR) << "Failed to duplicate handle in " << __PRETTY_FUNCTION__ | 112 MOJO_LOG(ERROR) << "Failed to duplicate handle in " << __PRETTY_FUNCTION__ |
113 << " (error " << res << ")"; | 113 << " (error " << res << ")"; |
114 Fault(MediaResult::UNKNOWN_ERROR); | 114 Fault(MediaResult::UNKNOWN_ERROR); |
115 return; | 115 return; |
116 } | 116 } |
117 | 117 |
118 // TODO(johngro) : We should not have to send the buffer size, it should be an | 118 pipe_->SetBuffer(duplicated_handle.Pass(), []() {}); |
119 // intrinsic property of the buffer itself and be query-able via the handle. | |
120 pipe_->SetBuffer(duplicated_handle.Pass(), buffer_size_, []() {}); | |
121 } | 119 } |
122 | 120 |
123 void CircularBufferMediaPipeAdapter::SetSignalCallback(SignalCbk cbk) { | 121 void CircularBufferMediaPipeAdapter::SetSignalCallback(SignalCbk cbk) { |
124 bool schedule; | 122 bool schedule; |
125 signal_cbk_ = cbk; | 123 signal_cbk_ = cbk; |
126 schedule = (signal_cbk_ != nullptr); | 124 schedule = (signal_cbk_ != nullptr); |
127 | 125 |
128 // If the user supplied a non-null callback, make sure we schedule a | 126 // If the user supplied a non-null callback, make sure we schedule a |
129 // callback if we are currently signalled. | 127 // callback if we are currently signalled. |
130 if (schedule) { | 128 if (schedule) { |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
517 uint64_t CircularBufferMediaPipeAdapter::GetBufferSize() const { | 515 uint64_t CircularBufferMediaPipeAdapter::GetBufferSize() const { |
518 if (nullptr == buffer_) | 516 if (nullptr == buffer_) |
519 return 0; | 517 return 0; |
520 | 518 |
521 MOJO_DCHECK(buffer_size_); | 519 MOJO_DCHECK(buffer_size_); |
522 return buffer_size_ - 1; | 520 return buffer_size_ - 1; |
523 } | 521 } |
524 | 522 |
525 } // namespace media | 523 } // namespace media |
526 } // namespace mojo | 524 } // namespace mojo |
OLD | NEW |