#include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transform.h"
#include "base/functional/callback.h"
#include "base/functional/callback_forward.h"
#include "base/sequence_checker.h"
#include "rtc_rtp_script_transform.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
#include "third_party/blink/renderer/bindings/core/v8/idl_types.h"
#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/event_type_names.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/messaging/blink_transferable_message.h"
#include "third_party/blink/renderer/core/workers/custom_event_message.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_rtp_script_transformer.h"
#include "third_party/blink/renderer/modules/peerconnection/rtc_transform_event.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/bindings/script_state.h"
#include "third_party/blink/renderer/platform/bindings/v8_binding.h"
#include "third_party/blink/renderer/platform/heap/cross_thread_persistent.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/scheduler/public/post_cross_thread_task.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_copier_base.h"
#include "third_party/blink/renderer/platform/wtf/cross_thread_functional.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
namespace blink {
namespace {
Event* CreateRTCTransformEvent(
CrossThreadWeakHandle<RTCRtpScriptTransform> transform,
scoped_refptr<base::SequencedTaskRunner> transform_task_runner,
ScriptState* script_state,
CustomEventMessage data) { … }
bool IsValidReceiverDirection(const String& direction) { … }
}
RTCRtpScriptTransform* RTCRtpScriptTransform::Create(
ScriptState* script_state,
DedicatedWorker* worker,
ExceptionState& exception_state) { … }
RTCRtpScriptTransform* RTCRtpScriptTransform::Create(
ScriptState* script_state,
DedicatedWorker* worker,
const ScriptValue& message,
ExceptionState& exception_state) { … }
RTCRtpScriptTransform* RTCRtpScriptTransform::Create(
ScriptState* script_state,
DedicatedWorker* worker,
const ScriptValue& message,
HeapVector<ScriptValue>& transfer,
ExceptionState& exception_state) { … }
void RTCRtpScriptTransform::CreateAudioUnderlyingSourceAndSink(
WTF::CrossThreadOnceClosure disconnect_callback_source,
scoped_refptr<blink::RTCEncodedAudioStreamTransformer::Broker>
encoded_audio_transformer) { … }
void RTCRtpScriptTransform::CreateVideoUnderlyingSourceAndSink(
WTF::CrossThreadOnceClosure disconnect_callback_source,
scoped_refptr<blink::RTCEncodedVideoStreamTransformer::Broker>
encoded_video_transformer) { … }
void RTCRtpScriptTransform::SetUpAudioRtpTransformer(
WTF::CrossThreadOnceClosure disconnect_callback_source,
scoped_refptr<blink::RTCEncodedAudioStreamTransformer::Broker>
encoded_audio_transformer) { … }
void RTCRtpScriptTransform::SetUpVideoRtpTransformer(
WTF::CrossThreadOnceClosure disconnect_callback_source,
scoped_refptr<blink::RTCEncodedVideoStreamTransformer::Broker>
encoded_video_transformer) { … }
void RTCRtpScriptTransform::SetRtpTransformer(
CrossThreadWeakHandle<RTCRtpScriptTransformer> transformer,
scoped_refptr<base::SingleThreadTaskRunner> transformer_task_runner) { … }
void RTCRtpScriptTransform::AttachToReceiver(RTCRtpReceiver* receiver) { … }
void RTCRtpScriptTransform::Detach() { … }
RTCRtpScriptTransform::SendKeyFrameRequestResult
RTCRtpScriptTransform::HandleSendKeyFrameRequestResults() { … }
void RTCRtpScriptTransform::SendKeyFrameRequestToReceiver(
CrossThreadFunction<void(const SendKeyFrameRequestResult)> callback) { … }
void RTCRtpScriptTransform::Trace(Visitor* visitor) const { … }
}