| Index: webrtc/media/engine/videodecodersoftwarefallbackwrapper.h
|
| diff --git a/webrtc/video_decoder.h b/webrtc/media/engine/videodecodersoftwarefallbackwrapper.h
|
| similarity index 36%
|
| copy from webrtc/video_decoder.h
|
| copy to webrtc/media/engine/videodecodersoftwarefallbackwrapper.h
|
| index 7a41840ba8fbf9b3d357c0bd730e84d1cd1c47dd..8e1a97d8179ce0e5170fc894eab81cd09dc2191f 100644
|
| --- a/webrtc/video_decoder.h
|
| +++ b/webrtc/media/engine/videodecodersoftwarefallbackwrapper.h
|
| @@ -1,5 +1,5 @@
|
| /*
|
| - * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
|
| + * Copyright (c) 2016 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
|
| @@ -8,81 +8,16 @@
|
| * be found in the AUTHORS file in the root of the source tree.
|
| */
|
|
|
| -#ifndef WEBRTC_VIDEO_DECODER_H_
|
| -#define WEBRTC_VIDEO_DECODER_H_
|
| +#ifndef WEBRTC_MEDIA_ENGINE_VIDEODECODERSOFTWAREFALLBACKWRAPPER_H_
|
| +#define WEBRTC_MEDIA_ENGINE_VIDEODECODERSOFTWAREFALLBACKWRAPPER_H_
|
|
|
| #include <memory>
|
| #include <string>
|
| -#include <vector>
|
|
|
| -#include "webrtc/common_types.h"
|
| -#include "webrtc/typedefs.h"
|
| -#include "webrtc/video_frame.h"
|
| +#include "webrtc/video_decoder.h"
|
|
|
| namespace webrtc {
|
|
|
| -class RTPFragmentationHeader;
|
| -// TODO(pbos): Expose these through a public (root) header or change these APIs.
|
| -struct CodecSpecificInfo;
|
| -class VideoCodec;
|
| -
|
| -class DecodedImageCallback {
|
| - public:
|
| - virtual ~DecodedImageCallback() {}
|
| -
|
| - virtual int32_t Decoded(VideoFrame& decodedImage) = 0;
|
| - // Provides an alternative interface that allows the decoder to specify the
|
| - // decode time excluding waiting time for any previous pending frame to
|
| - // return. This is necessary for breaking positive feedback in the delay
|
| - // estimation when the decoder has a single output buffer.
|
| - // TODO(perkj): Remove default implementation when chromium has been updated.
|
| - virtual int32_t Decoded(VideoFrame& decodedImage, int64_t decode_time_ms) {
|
| - // The default implementation ignores custom decode time value.
|
| - return Decoded(decodedImage);
|
| - }
|
| -
|
| - virtual int32_t ReceivedDecodedReferenceFrame(const uint64_t pictureId) {
|
| - return -1;
|
| - }
|
| -
|
| - virtual int32_t ReceivedDecodedFrame(const uint64_t pictureId) { return -1; }
|
| -};
|
| -
|
| -class VideoDecoder {
|
| - public:
|
| - enum DecoderType {
|
| - kH264,
|
| - kVp8,
|
| - kVp9,
|
| - kUnsupportedCodec,
|
| - };
|
| -
|
| - static VideoDecoder* Create(DecoderType codec_type);
|
| -
|
| - virtual ~VideoDecoder() {}
|
| -
|
| - virtual int32_t InitDecode(const VideoCodec* codec_settings,
|
| - int32_t number_of_cores) = 0;
|
| -
|
| - virtual int32_t Decode(const EncodedImage& input_image,
|
| - bool missing_frames,
|
| - const RTPFragmentationHeader* fragmentation,
|
| - const CodecSpecificInfo* codec_specific_info = NULL,
|
| - int64_t render_time_ms = -1) = 0;
|
| -
|
| - virtual int32_t RegisterDecodeCompleteCallback(
|
| - DecodedImageCallback* callback) = 0;
|
| -
|
| - virtual int32_t Release() = 0;
|
| -
|
| - // Returns true if the decoder prefer to decode frames late.
|
| - // That is, it can not decode infinite number of frames before the decoded
|
| - // frame is consumed.
|
| - virtual bool PrefersLateDecoding() const { return true; }
|
| -
|
| - virtual const char* ImplementationName() const { return "unknown"; }
|
| -};
|
| -
|
| // Class used to wrap external VideoDecoders to provide a fallback option on
|
| // software decoding when a hardware decoder fails to decode a stream due to
|
| // hardware restrictions, such as max resolution.
|
| @@ -121,29 +56,6 @@ class VideoDecoderSoftwareFallbackWrapper : public webrtc::VideoDecoder {
|
| DecodedImageCallback* callback_;
|
| };
|
|
|
| -// Video decoder class to be used for unknown codecs. Doesn't support decoding
|
| -// but logs messages to LS_ERROR.
|
| -class NullVideoDecoder : public VideoDecoder {
|
| - public:
|
| - NullVideoDecoder();
|
| -
|
| - int32_t InitDecode(const VideoCodec* codec_settings,
|
| - int32_t number_of_cores) override;
|
| -
|
| - int32_t Decode(const EncodedImage& input_image,
|
| - bool missing_frames,
|
| - const RTPFragmentationHeader* fragmentation,
|
| - const CodecSpecificInfo* codec_specific_info,
|
| - int64_t render_time_ms) override;
|
| -
|
| - int32_t RegisterDecodeCompleteCallback(
|
| - DecodedImageCallback* callback) override;
|
| -
|
| - int32_t Release() override;
|
| -
|
| - const char* ImplementationName() const override;
|
| -};
|
| -
|
| } // namespace webrtc
|
|
|
| -#endif // WEBRTC_VIDEO_DECODER_H_
|
| +#endif // WEBRTC_MEDIA_ENGINE_VIDEODECODERSOFTWAREFALLBACKWRAPPER_H_
|
|
|