| 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..a42f4b7c2bfb780c16f9b997cc9f65528647f290 100644
|
| --- a/ios/chrome/browser/ui/webui/history/metrics_handler.h
|
| +++ b/media/base/mac/videotoolbox_helpers.h
|
| @@ -2,50 +2,63 @@
|
| // 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,
|
| + uint8_t* 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(
|
| + base::ScopedCFTypeRef<VideoToolboxGlue::VTCompressionSessionRef> session,
|
| + const VideoToolboxGlue* const glue);
|
| + ~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);
|
| + const base::ScopedCFTypeRef<VideoToolboxGlue::VTCompressionSessionRef>
|
| + session_;
|
| + const VideoToolboxGlue* const glue_;
|
| };
|
|
|
| -#endif // IOS_CHROME_BROWSER_UI_WEBUI_HISTORY_METRICS_HANDLER_H_
|
| +} // namespace video_toolbox
|
| +
|
| +} // namespace media
|
| +
|
| +#endif // MEDIA_BASE_MAC_VIDEOTOOLBOX_HELPERS_H_
|
|
|