summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/include/ThrottledSource.h
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-06-01 13:38:13 -0700
committerAndreas Huber <andih@google.com>2010-06-01 13:41:16 -0700
commitc282e3eee921453fc9188705b4879d6289b71f9c (patch)
tree104a2900e82b373939b771264cbe2932eca07225 /media/libstagefright/include/ThrottledSource.h
parentba0fab325cd8379378a2c8ad14dd1c44bf2760f3 (diff)
downloadframeworks_av-c282e3eee921453fc9188705b4879d6289b71f9c.zip
frameworks_av-c282e3eee921453fc9188705b4879d6289b71f9c.tar.gz
frameworks_av-c282e3eee921453fc9188705b4879d6289b71f9c.tar.bz2
A debugging DataSource artifically limiting the available bandwidth.
Change-Id: I4ca75337a52599d211ea066fd94e649748df052d
Diffstat (limited to 'media/libstagefright/include/ThrottledSource.h')
-rw-r--r--media/libstagefright/include/ThrottledSource.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/media/libstagefright/include/ThrottledSource.h b/media/libstagefright/include/ThrottledSource.h
new file mode 100644
index 0000000..88164b3
--- /dev/null
+++ b/media/libstagefright/include/ThrottledSource.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef THROTTLED_SOURCE_H_
+
+#define THROTTLED_SOURCE_H_
+
+#include <media/stagefright/DataSource.h>
+#include <utils/threads.h>
+
+namespace android {
+
+struct ThrottledSource : public DataSource {
+ ThrottledSource(
+ const sp<DataSource> &source,
+ int32_t bandwidthLimitBytesPerSecond);
+
+ virtual status_t initCheck() const;
+
+ virtual ssize_t readAt(off_t offset, void *data, size_t size);
+
+ virtual status_t getSize(off_t *size);
+ virtual uint32_t flags();
+
+private:
+ Mutex mLock;
+
+ sp<DataSource> mSource;
+ int32_t mBandwidthLimitBytesPerSecond;
+ int64_t mStartTimeUs;
+ size_t mTotalTransferred;
+
+ ThrottledSource(const ThrottledSource &);
+ ThrottledSource &operator=(const ThrottledSource &);
+};
+
+} // namespace android
+
+#endif // THROTTLED_SOURCE_H_