blob: 974fd804ce566db9c7393ef32328c151161cc2f3 [file] [log] [blame]
philipel2fee4d62018-03-21 16:52:13 +01001/*
2 * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef API_VIDEO_VIDEO_STREAM_DECODER_CREATE_H_
12#define API_VIDEO_VIDEO_STREAM_DECODER_CREATE_H_
13
14#include <map>
15#include <memory>
16#include <utility>
17
Jonas Orelande62c2f22022-03-29 11:04:48 +020018#include "api/field_trials_view.h"
Danil Chapovalovb703db92019-04-08 16:59:28 +020019#include "api/task_queue/task_queue_factory.h"
philipel2fee4d62018-03-21 16:52:13 +010020#include "api/video/video_stream_decoder.h"
Danil Chapovalovb703db92019-04-08 16:59:28 +020021#include "api/video_codecs/sdp_video_format.h"
philipel2fee4d62018-03-21 16:52:13 +010022
23namespace webrtc {
Artem Titov0e61fdd2021-07-25 21:50:14 +020024// The `decoder_settings` parameter is a map between:
philipel2fee4d62018-03-21 16:52:13 +010025// <payload type> --> <<video format>, <number of cores>>.
26// The video format is used when instantiating a decoder, and
27// the number of cores is used when initializing the decoder.
Danil Chapovalovb703db92019-04-08 16:59:28 +020028std::unique_ptr<VideoStreamDecoderInterface> CreateVideoStreamDecoder(
29 VideoStreamDecoderInterface::Callbacks* callbacks,
philipel2fee4d62018-03-21 16:52:13 +010030 VideoDecoderFactory* decoder_factory,
Danil Chapovalovb703db92019-04-08 16:59:28 +020031 TaskQueueFactory* task_queue_factory,
Jonas Orelande02f9ee2022-03-25 12:43:14 +010032 std::map<int, std::pair<SdpVideoFormat, int>> decoder_settings,
Jonas Orelande62c2f22022-03-29 11:04:48 +020033 const FieldTrialsView* field_trials = nullptr);
philipel2fee4d62018-03-21 16:52:13 +010034
35} // namespace webrtc
36
37#endif // API_VIDEO_VIDEO_STREAM_DECODER_CREATE_H_