This CL adds helper functions in media/engine/convert_legacy_video_factory.h to convert from the old WebRtcVideoEncoder and WebRtcVideoDecoder to the new webrtc::VideoEncoder and webrtc::VideoDecoder. The purpose is to make it as easy as possible for clients to migrate to the new API and allow us to stop depending on the internal SW codecs as soon as possible. There still exists an ugly decoder adapter class in the video engine. The reason is that we need to continue to pass in the |receive_stream_id| decoder params to some legacy clients. Bug: webrtc:7925 Change-Id: I43ff03e036411a85d4940fe517a34489f171d698 Reviewed-on: https://webrtc-review.googlesource.com/15181 Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Anders Carlsson <andersc@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20475}
56 lines
1.7 KiB
C++
56 lines
1.7 KiB
C++
/*
|
|
* Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef MEDIA_ENGINE_WEBRTCVIDEODECODERFACTORY_H_
|
|
#define MEDIA_ENGINE_WEBRTCVIDEODECODERFACTORY_H_
|
|
|
|
#include "common_types.h" // NOLINT(build/include)
|
|
#include "media/base/codec.h"
|
|
#include "rtc_base/refcount.h"
|
|
|
|
namespace webrtc {
|
|
class VideoDecoder;
|
|
}
|
|
|
|
namespace cricket {
|
|
|
|
struct VideoDecoderParams {
|
|
VideoDecoderParams();
|
|
std::string receive_stream_id;
|
|
};
|
|
|
|
// Deprecated. Use webrtc::VideoDecoderFactory instead.
|
|
// https://bugs.chromium.org/p/webrtc/issues/detail?id=7925
|
|
class WebRtcVideoDecoderFactory {
|
|
public:
|
|
// Caller takes the ownership of the returned object and it should be released
|
|
// by calling DestroyVideoDecoder().
|
|
virtual webrtc::VideoDecoder* CreateVideoDecoderWithParams(
|
|
const VideoCodec& codec,
|
|
VideoDecoderParams params);
|
|
|
|
// DEPRECATED.
|
|
// These methods should not be used by new code and will eventually be
|
|
// removed. See http://crbug.com/webrtc/8140.
|
|
virtual webrtc::VideoDecoder* CreateVideoDecoder(webrtc::VideoCodecType type);
|
|
|
|
virtual webrtc::VideoDecoder* CreateVideoDecoderWithParams(
|
|
webrtc::VideoCodecType type,
|
|
VideoDecoderParams params);
|
|
|
|
virtual ~WebRtcVideoDecoderFactory() {}
|
|
|
|
virtual void DestroyVideoDecoder(webrtc::VideoDecoder* decoder) = 0;
|
|
};
|
|
|
|
} // namespace cricket
|
|
|
|
#endif // MEDIA_ENGINE_WEBRTCVIDEODECODERFACTORY_H_
|