webrtc_m130/webrtc/media/engine/scopedvideodecoder.h
andersc 063f0c0d3a Reland of Prepare for injectable SW decoders (patchset #1 id:1 of https://codereview.webrtc.org/3010953002/ )
Reason for revert:
Fix bug introduced by keeping the allocated decoders in a map.

Original issue's description:
> Revert of Prepare for injectable SW decoders (patchset #3 id:40001 of https://codereview.webrtc.org/3009973002/ )
>
> Reason for revert:
> Tentative revert since it seems to cause problems in Chrome, MAC.
>
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/42684
>
>
>
> Original issue's description:
> > Prepare for injectable SW decoders
> >
> > Pretty much mirrors the work done on the encoding side in CLs:
> >
> > "Clean up ownership of webrtc::VideoEncoder"
> > https://codereview.webrtc.org/3007643002/
> >
> > "Let VideoEncoderSoftwareFallbackWrapper own the wrapped encoder"
> > https://codereview.webrtc.org/3007683002/
> >
> > "WebRtcVideoEngine: Encapsulate logic for unifying internal and external video codecs"
> > https://codereview.webrtc.org/3006713002/
> >
> > BUG=webrtc:7925
> >
> > Review-Url: https://codereview.webrtc.org/3009973002
> > Cr-Commit-Position: refs/heads/master@{#19641}
> > Committed: 084c55a63a
>
> TBR=magjed@webrtc.org,andersc@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7925
>
> Review-Url: https://codereview.webrtc.org/3010953002
> Cr-Commit-Position: refs/heads/master@{#19647}
> Committed: 1f88531038

TBR=magjed@webrtc.org,perkj@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7925

Review-Url: https://codereview.webrtc.org/3005363002
Cr-Commit-Position: refs/heads/master@{#19782}
2017-09-11 18:50:51 +00:00

35 lines
1.3 KiB
C++

/*
* Copyright (c) 2017 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 WEBRTC_MEDIA_ENGINE_SCOPEDVIDEODECODER_H_
#define WEBRTC_MEDIA_ENGINE_SCOPEDVIDEODECODER_H_
#include <memory>
#include "webrtc/media/engine/webrtcvideodecoderfactory.h"
namespace cricket {
// Helper function that creates a webrtc::VideoDecoder held by an
// std::unique_ptr instead of having to be deleted through
// WebRtcVideoDecoderFactory::DestroyVideoDecoder. The factory passed in must
// outlive the returned encoder.
// TODO(andersc): This helper function will be deleted once
// cricket::WebRtcVideoDecoderFactory is deprecated, see
// https://bugs.chromium.org/p/webrtc/issues/detail?id=7925 for more info.
std::unique_ptr<webrtc::VideoDecoder> CreateScopedVideoDecoder(
cricket::WebRtcVideoDecoderFactory* factory,
const VideoCodec& codec,
VideoDecoderParams params);
} // namespace cricket
#endif // WEBRTC_MEDIA_ENGINE_SCOPEDVIDEODECODER_H_