Chromium Code Reviews| Index: media/base/mac/videotoolbox_helpers.h |
| diff --git a/ios/chrome/browser/ui/webui/history/metrics_handler.h b/media/base/mac/videotoolbox_helpers.h |
| similarity index 11% |
| copy from ios/chrome/browser/ui/webui/history/metrics_handler.h |
| copy to media/base/mac/videotoolbox_helpers.h |
| index 3d6fca9df71b61b94c26c355c7f7715d72144453..76927abbe02819ff984b2085a8cdee2a90d45061 100644 |
| --- a/ios/chrome/browser/ui/webui/history/metrics_handler.h |
| +++ b/media/base/mac/videotoolbox_helpers.h |
| @@ -2,50 +2,64 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#ifndef IOS_CHROME_BROWSER_UI_WEBUI_HISTORY_METRICS_HANDLER_H_ |
| -#define IOS_CHROME_BROWSER_UI_WEBUI_HISTORY_METRICS_HANDLER_H_ |
| +#ifndef MEDIA_BASE_MAC_VIDEOTOOLBOX_HELPERS_H_ |
| +#define MEDIA_BASE_MAC_VIDEOTOOLBOX_HELPERS_H_ |
| -#include "base/compiler_specific.h" |
| -#include "base/macros.h" |
| -#include "ios/public/provider/web/web_ui_ios_message_handler.h" |
| +#include "base/mac/scoped_cftyperef.h" |
| +#include "media/base/mac/videotoolbox_glue.h" |
| +#include "media/base/media_export.h" |
| -/////////////////////////////////////////////////////////////////////////////// |
| -// MetricsHandler |
| +namespace media { |
| -// Let the page contents record UMA actions. Only use when you can't do it from |
| -// C++. For example, we currently use it to let the NTP log the position of the |
| -// Most Visited or Bookmark the user clicked on, as we don't get that |
| -// information through RequestOpenURL. You will need to update the metrics |
| -// dashboard with the action names you use, as our processor won't catch that |
| -// information (treat it as RecordComputedMetrics) |
| +namespace video_toolbox { |
| -namespace base { |
| -class ListValue; |
| -} |
| +// Create a CFDictionaryRef with the given keys and values. |
| +MEDIA_EXPORT base::ScopedCFTypeRef<CFDictionaryRef> |
| +DictionaryWithKeysAndValues(CFTypeRef* keys, CFTypeRef* values, size_t size); |
| -class MetricsHandler : public web::WebUIIOSMessageHandler { |
| - public: |
| - MetricsHandler(); |
| - ~MetricsHandler() override; |
| +// Create a CFDictionaryRef with the given key and value. |
| +MEDIA_EXPORT base::ScopedCFTypeRef<CFDictionaryRef> DictionaryWithKeyValue( |
| + CFTypeRef key, |
| + CFTypeRef value); |
| - // WebUIIOSMessageHandler implementation. |
| - void RegisterMessages() override; |
| +// Create a CFArrayRef with the given array of integers. |
| +MEDIA_EXPORT base::ScopedCFTypeRef<CFArrayRef> ArrayWithIntegers(const int* v, |
| + size_t size); |
| - // Callback for the "metricsHandler:recordAction" message. This records a |
| - // user action. |
| - void HandleRecordAction(const base::ListValue* args); |
| +// Copy a H.264 frame stored in a CM sample buffer to an Annex B buffer. Copies |
| +// parameter sets for keyframes before the frame data as well. |
| +MEDIA_EXPORT bool CopySampleBufferToAnnexBBuffer( |
| + CoreMediaGlue::CMSampleBufferRef sbuf, |
| + bool keyframe, |
| + std::string* annexb_buffer); |
| +MEDIA_EXPORT bool CopySampleBufferToAnnexBBuffer( |
| + CoreMediaGlue::CMSampleBufferRef sbuf, |
| + bool keyframe, |
| + size_t annexb_buffer_size, |
| + char* annexb_buffer, |
| + size_t* used_buffer_size); |
| - // TODO(dbeam): http://crbug.com/104338 |
| +// Helper class to add session properties to a VTCompressionSessionRef. |
| +class MEDIA_EXPORT SessionPropertySetter { |
| + public: |
| + SessionPropertySetter(); |
|
miu
2016/02/11 21:09:40
Please remove the zero-arg and copy ctors (see com
emircan
2016/02/12 03:40:56
Done.
|
| + SessionPropertySetter( |
| + base::ScopedCFTypeRef<VideoToolboxGlue::VTCompressionSessionRef> session, |
| + const VideoToolboxGlue* const glue); |
| + SessionPropertySetter(const SessionPropertySetter& setter); |
| + ~SessionPropertySetter(); |
| - // Callback for the "metricsHandler:recordInHistogram" message. This records |
| - // into a histogram. |args| contains the histogram name, the value to record, |
| - // and the maximum allowed value, which can be at most 4000. The histogram |
| - // will use at most 100 buckets, one for each 1, 10, or 100 different values, |
| - // depending on the maximum value. |
| - void HandleRecordInHistogram(const base::ListValue* args); |
| + bool SetSessionProperty(CFStringRef key, int32_t value); |
| + bool SetSessionProperty(CFStringRef key, bool value); |
| + bool SetSessionProperty(CFStringRef key, CFStringRef value); |
| private: |
| - DISALLOW_COPY_AND_ASSIGN(MetricsHandler); |
| + base::ScopedCFTypeRef<VideoToolboxGlue::VTCompressionSessionRef> session_; |
| + const VideoToolboxGlue* glue_; |
| }; |
| -#endif // IOS_CHROME_BROWSER_UI_WEBUI_HISTORY_METRICS_HANDLER_H_ |
| +} // namespace video_toolbox |
| + |
| +} // namespace media |
| + |
| +#endif // MEDIA_BASE_MAC_VIDEOTOOLBOX_HELPERS_H_ |