#include "third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame.h"
#include <utility>
#include "base/unguessable_token.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_codec_specifics_vp_8.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_decode_target_indication.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoded_video_frame_metadata.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoded_video_frame_options.h"
#include "third_party/blink/renderer/core/typed_arrays/dom_array_buffer.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_encoded_video_frame_delegate.h"
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
#include "third_party/webrtc/api/frame_transformer_interface.h"
namespace blink {
BASE_FEATURE(…);
namespace {
static constexpr size_t kMaxNumDependencies = …;
bool IsAllowedSetMetadataChange(
const RTCEncodedVideoFrameMetadata* original_metadata,
const RTCEncodedVideoFrameMetadata* metadata) { … }
base::expected<void, String> ValidateMetadata(
const RTCEncodedVideoFrameMetadata* metadata) { … }
}
RTCEncodedVideoFrame* RTCEncodedVideoFrame::Create(
RTCEncodedVideoFrame* original_frame,
ExceptionState& exception_state) { … }
RTCEncodedVideoFrame* RTCEncodedVideoFrame::Create(
RTCEncodedVideoFrame* original_frame,
const RTCEncodedVideoFrameOptions* options_dict,
ExceptionState& exception_state) { … }
RTCEncodedVideoFrame::RTCEncodedVideoFrame(
std::unique_ptr<webrtc::TransformableVideoFrameInterface> webrtc_frame)
: … { … }
RTCEncodedVideoFrame::RTCEncodedVideoFrame(
std::unique_ptr<webrtc::TransformableVideoFrameInterface> webrtc_frame,
base::UnguessableToken owner_id,
int64_t counter)
: … { … }
RTCEncodedVideoFrame::RTCEncodedVideoFrame(
scoped_refptr<RTCEncodedVideoFrameDelegate> delegate)
: … { … }
String RTCEncodedVideoFrame::type() const { … }
uint32_t RTCEncodedVideoFrame::timestamp() const { … }
DOMArrayBuffer* RTCEncodedVideoFrame::data(ExecutionContext* context) const { … }
RTCEncodedVideoFrameMetadata* RTCEncodedVideoFrame::getMetadata() const { … }
base::UnguessableToken RTCEncodedVideoFrame::OwnerId() { … }
int64_t RTCEncodedVideoFrame::Counter() { … }
base::expected<void, String> RTCEncodedVideoFrame::SetMetadata(
const RTCEncodedVideoFrameMetadata* metadata) { … }
void RTCEncodedVideoFrame::setMetadata(RTCEncodedVideoFrameMetadata* metadata,
ExceptionState& exception_state) { … }
void RTCEncodedVideoFrame::setData(ExecutionContext*, DOMArrayBuffer* data) { … }
String RTCEncodedVideoFrame::toString(ExecutionContext* context) const { … }
void RTCEncodedVideoFrame::SyncDelegate() const { … }
scoped_refptr<RTCEncodedVideoFrameDelegate> RTCEncodedVideoFrame::Delegate()
const { … }
std::unique_ptr<webrtc::TransformableVideoFrameInterface>
RTCEncodedVideoFrame::PassWebRtcFrame(v8::Isolate* isolate,
bool detach_frame_data) { … }
void RTCEncodedVideoFrame::Trace(Visitor* visitor) const { … }
}