Commit Graph

14 Commits

Author SHA1 Message Date
84f6a3fc6b Move optional.h to webrtc/api/
We use Optional in our public API, so its header should be in
webrtc/api/.

BUG=webrtc:8205

Review-Url: https://codereview.webrtc.org/3011943002
Cr-Commit-Position: refs/heads/master@{#19693}
2017-09-05 15:43:13 +00:00
1f88531038 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}
2017-09-04 09:43:10 +00:00
084c55a63a 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}
2017-09-01 17:38:15 +00:00
a35df4260f WebRtcVideoEngine: Encapsulate logic for unifying internal and external video codecs
This CL encapsulates the logic for unifying the internal and external
video encoders into a helper class. The purpose is to prepare for
introducing a new video encoder factory interface that inherently
represents all encoders (i.e. both internal and external). A helper
interface EncoderFactoryAdapter is introduced that both the old
WebRtcVideoEncoderFactory and the new factory interface can implement
and serves as common point to leave the rest of the code unchanged.

BUG=webrtc:7925

Review-Url: https://codereview.webrtc.org/3006713002
Cr-Commit-Position: refs/heads/master@{#19600}
2017-08-30 11:21:30 +00:00
f52d34d682 Let VideoEncoderSoftwareFallbackWrapper own the wrapped encoder
Currently, ownership of the wrapped hardware encoder is handled outside
VideoEncoderSoftwareFallbackWrapper. It's easier if
VideoEncoderSoftwareFallbackWrapper owns and relases it instead.

BUG=webrtc:7925

Review-Url: https://codereview.webrtc.org/3007683002
Cr-Commit-Position: refs/heads/master@{#19572}
2017-08-29 07:58:52 +00:00
3f89758398 Clean up ownership of webrtc::VideoEncoder
Currently, webrtc::VideoEncoders are supposed to be deleted through the
factory that created them with the
WebRtcVideoEncoderFactory::DestroyVideoEncoder method. In practice,
we sometimes use this method and sometimes we just call delete on the
webrtc::VideoEncoder pointer. We want to be able to consistently use the
normal destructor of webrtc::VideoEncoder instead of having to call
DestroyVideoEncoder so that we can put webrtc::VideoEncoder inside
an std::unique_ptr and make ownership more clear. As part of webrtc:7925
we also want to make a new encoder factory class that does not have the
DestroyVideoEncoder() method, and this CL is a step in that direction.

This CL introduces a helper function CreateScopedVideoEncoder that takes
a webrtc::VideoEncoder and a WebRtcVideoEncoderFactory pointer, and
returns a new webrtc::VideoEncoder instance that can be deleted through
the regular destructor.

This CL also removes WebRtcSimulcastEncoderFactory that almost only
contains logic for handling the DestroyVideoEncoder calls that we no
longer need, and inlines the rest of the logic inside the
WebRtcVideoChannel::WebRtcVideoSendStream::CreateVideoEncoder method.

BUG=webrtc:7925

Review-Url: https://codereview.webrtc.org/3007643002
Cr-Commit-Position: refs/heads/master@{#19564}
2017-08-28 15:05:42 +00:00
440b6d9a0f Move video send/receive stream headers to webrtc/call.
Moved the headers video_receive_stream.h and video_send_stream.h from
webrtc/ into webrtc/call/ as part of the Slim and Modular work.

The GN target webrtc:video_stream_api has moved to
webrtc/call:video_stream_api.

There are headers left in webrtc/ with the same name including the
moved headers in webrtc/call/ for not breaking external projects
depending on WebRTC.

At the same time, some minor cleanup is done: Non-pure-virtual functions declared in the two affected headers now have definitions in the same target. After making this change, our 'chromium-style' plugin detected some style violations that have now been fixed: non-inlined constructors and destructors have been added to a number of classes, both inside the GN target of the two affected headers, and in other targets.

BUG=webrtc:8107

Review-Url: https://codereview.webrtc.org/3000253002
Cr-Commit-Position: refs/heads/master@{#19448}
2017-08-22 12:43:23 +00:00
c0d481a4a6 Protected streams report RTP messages directly to the FlexFec streams
In preparation of making RTP packet demuxing many-to-one (one SSRC goes to one sink, but one sink may have multiple SSRCs), we need to remove FlexFEC's dependence on being able to register itself with the demuxer. Instead, we register FlexFEC streams with the streams they protect; when those streams get packets, they'll forward them to their associated FlexFEC streams, too.

BUG=webrtc:7135

Review-Url: https://codereview.webrtc.org/2974453002
Cr-Commit-Position: refs/heads/master@{#19219}
2017-08-02 14:39:07 +00:00
c20978e581 Rename webrtc/base -> webrtc/rtc_base
NOPRESUBMIT=True # cpplint errors that aren't caused by this CL.
NOTRY=True
NOTREECHECKS=True
TBR=kwiberg@webrtc.org, kjellander@webrtc.org

Bug: webrtc:7634
Change-Id: I3cca0fbaa807b563c95979cccd6d1bec32055f36
Reviewed-on: https://chromium-review.googlesource.com/562156
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18919}
2017-07-06 19:11:40 +00:00
a80c16a67c Revert "Update includes for webrtc/{base => rtc_base} rename (2/3)"
This reverts commit c3771cc4d37f5573fe53b7c7cff295a4f0f9560f.
(breaks downstream internal project)

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2972463002 .
Cr-Commit-Position: refs/heads/master@{#18873}
2017-07-01 14:48:18 +00:00
c3771cc4d3 Update includes for webrtc/{base => rtc_base} rename (2/3)
I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`

BUG=webrtc:7634
NOPRESUBMIT=True # cpplint errors that aren't caused by this CL.

Review-Url: https://codereview.webrtc.org/2969623003
Cr-Commit-Position: refs/heads/master@{#18870}
2017-06-30 20:42:44 +00:00
6b826ef66d Add cropping to VIEEncoder to match simulcast streams resolution
Detect when simulcaststreamfactory adjust resolution and remeber cropping
parameters in VIEEncoder.
Expose EncoderStreamFactory in webrtcvideoengine2.

BUG=webrtc:7375, webrtc:6958

Review-Url: https://codereview.webrtc.org/2936393002
Cr-Commit-Position: refs/heads/master@{#18632}
2017-06-16 13:53:48 +00:00
67561a6411 Use the same QP max for tests as in production
BUG=webrtc:7664

Review-Url: https://codereview.webrtc.org/2941023002
Cr-Commit-Position: refs/heads/master@{#18611}
2017-06-15 13:34:42 +00:00
f184138a5f s/WebRtcVideoChannel2/WebRtcVideoChannel and s/WebRtcVideoEngine2/WebRtcVideoEngine
WebRtcVideoChannel and and WebRtcVideoEngine seem to have been removed, and only WebRtcVideoChannel2 and WebRtcVideoEngine2 remain, which removes the need for the "2" postfix.

BUG=None

Review-Url: https://codereview.webrtc.org/2932073002
Cr-Commit-Position: refs/heads/master@{#18531}
2017-06-12 08:16:46 +00:00