blob: 4958dc1084fa1d0293bed0aa1ed6a323f2d5f5a5 [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
Danil Chapovalovb703db92019-04-08 16:59:28 +020018#include "api/task_queue/task_queue_factory.h"
philipel2fee4d62018-03-21 16:52:13 +010019#include "api/video/video_stream_decoder.h"
Danil Chapovalovb703db92019-04-08 16:59:28 +020020#include "api/video_codecs/sdp_video_format.h"
philipel2fee4d62018-03-21 16:52:13 +010021
22namespace webrtc {
23// The |decoder_settings| parameter is a map between:
24// <payload type> --> <<video format>, <number of cores>>.
25// The video format is used when instantiating a decoder, and
26// the number of cores is used when initializing the decoder.
Danil Chapovalovb703db92019-04-08 16:59:28 +020027std::unique_ptr<VideoStreamDecoderInterface> CreateVideoStreamDecoder(
28 VideoStreamDecoderInterface::Callbacks* callbacks,
philipel2fee4d62018-03-21 16:52:13 +010029 VideoDecoderFactory* decoder_factory,
Danil Chapovalovb703db92019-04-08 16:59:28 +020030 TaskQueueFactory* task_queue_factory,
philipel2fee4d62018-03-21 16:52:13 +010031 std::map<int, std::pair<SdpVideoFormat, int>> decoder_settings);
32
33} // namespace webrtc
34
35#endif // API_VIDEO_VIDEO_STREAM_DECODER_CREATE_H_