aboutsummaryrefslogtreecommitdiff
path: root/cast
AgeCommit message (Collapse)Author
2021-05-27Cleanup some documentationJordan Bayles
This patch cleans up some documentation around PRESUBMIT and external library support. Change-Id: Id09981eab4ddc7bd3fb3e1ffc56e25c5b720af44 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2920640 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2021-05-14[Streaming] Add some validity checking/cleanupupstream-masterJordan Bayles
This patch does some updates to how we do validity checking for offer messages, based on a TODO. Change-Id: I09f7c530fb4b1b9cba8759e081577a92420a5364 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2896253 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com>
2021-05-10Create Base Class for ReceiverRyan Keane
This class defines a base class for the //cast/streaming/receiver class. It is necessary to allow for unit testing of classes which require a Receiver type. Change-Id: I7a462ec64d83b41beb6e4a6d31098dc85f521fa2 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2876289 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Ryan Keane <rwkeane@google.com>
2021-05-03Update Build RulesRyan Keane
In some cases, the full set of platform/api code will not be needed. Instead, just logging can suffice. This CL updates BUILD rules to allow for that smaller subset of dependencies. Bug: internal b/186668530 Change-Id: I0df802871610c5839ac2000fc25e4eba028be930 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2860519 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Ryan Keane <rwkeane@google.com>
2021-04-27[Cast] Add capabilities handling to ReceiverSessionJordan Bayles
This patch is the first in a series for finishing support for remoting in the ReceiverSession. In this patch, the public API for the session adds explicit remoting opt-in, and the session can now respond to capabilities. Bug: b/184186390 Change-Id: Ic1abcd32d240d9c64dec4b56fb01d6b3c74e9ddb Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2815610 Reviewed-by: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-21Cleanup TODOs from @miuJordan Bayles
This patch removes all remaining TODOs from the now-departed @miu, either reassigning them to jophba, or for the majority, just implementing the fix directly. Change-Id: I73c21f577bf115cf37ec880fac54eef1555de7c5 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2831302 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2021-04-13[Cast] Remove deprecated WiFi status codeJordan Bayles
The WiFi status logs have been turned down in Chrome, and no longer need to be supported in libcast. This patch removes all references to the GET_STATUS and STATUS_RESPONSE messages. Bug: 1197178 Change-Id: Id48844c0e3dd921ec95d1cb803603161ddcdcbfe Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2815609 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Reviewed-by: Takumi Fujimoto <takumif@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-08[HOTFIX] Fix Chrome issuesJordan Bayles
Chrome build is complaining about a missing constructor as well as a bunch of static initialized stuff due to const declarations. This patch should put Chrome in a good state by making things constexpr and adding constructors where expected. TBR=rwkeane@chromium.org Change-Id: I6b98e04a8a103092bdeb02cd78a4799b7115c498 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2815613 Reviewed-by: Jordan Bayles <jophba@chromium.org> Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-08[Cast] Cleanup Resolution + ReceiverSessionJordan Bayles
This patch changes the way Dimensions and Resolution objects are used in Open Screen--consolidating them into just one set of Dimensions and Resolution objects that can be used throughout the library, and updates the mirroring control protocol specification to be crisper about the difference between Resolution objects and Dimensions objects--and removing frame rates where they don't really make sense. As part of this cleanup, it also refactors the ReceiverSession to not expose the Answer messaging system at all, instead using new publicly exposed types. Finally, the capture recommendations are removed from the Receiver side, in favor of shared constants. Bug: b/184186374 Change-Id: I5e6a1c6798d07cb7f388ff5179c0bfa325d89229 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2808336 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-07Refactor RpcBroker to provide std::unique_ptrJordan Bayles
This patch changes RpcBroker from providing a const RpcMessage& to providing a std::unique_ptr<RpcMessage> instead for subscribers. The //media/remoting component uses this extensively and makes assumptions about the RpcBroker returning a std::unique_ptr that are, in my opinion, not worth modifying--especially considering that RPC messages are frequently passed across threads. Bug: b/184683535 Change-Id: Id1521cd885f0964b65f4ab4f45d88b126faffc30 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2809203 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-06[Cast] Enable Remoting in the SenderSessionJordan Bayles
This patch exposes remoting functionality on the SenderSession class, allowing embedders to request starting remoting. Bug: b/184186374 Change-Id: If82cffab9eda78e8b7d83d3f46a657e45267e8d6 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2626352 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2021-04-06Internal changeGoogler
PiperOrigin-RevId: 366868587 Change-Id: Ib4b471f04f99a479e7e1d28ee40569e81e491b5b Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2806230 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2021-04-02Revert "[Cast] Rename Negotiate/OnNegotiated methods"Jordan Bayles
This reverts commit 21f04aefd1b06a959576202fc3a7616bc4de0b1d. Reason for revert: Rename breaks Fuchsia build. Original change's description: > [Cast] Rename Negotiate/OnNegotiated methods > > This patch renames SenderSession Negotiate to NegotiateMirroring and > OnNegotiated to OnMirroringNegotiated, in advance of a larger patch that > exposes remoting on the SenderSession. > > Bug: b/184186374 > Change-Id: Ibfa38a822d6fdf5a39ebb83ef493442451fcc91e > Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2798518 > Reviewed-by: Ryan Keane <rwkeane@google.com> > Commit-Queue: Jordan Bayles <jophba@chromium.org> Bug: b/184186374 Change-Id: I8ac2534d47e27a3fa151b72aa0098688a771a410 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2801912 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2021-04-02[Cast/Remoting] Update RPC protoJordan Bayles
As part of deprecating Chrome's media_remoting_rpc.proto, this patch takes changes made after our port was complete in patch: https://chromium-review.googlesource.com/c/chromium/src/+/2582999 Bug: b/184051346 Change-Id: I59a7580b6c569c5e84c8904bc915972587807cd0 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2801211 Reviewed-by: Takumi Fujimoto <takumif@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-04-01Remove OperationLoopbtolsch
This change removes OperationLoop because it's only used in one place and is arguably confusing. OperationLoop mixes sleep() and select() usage, with separate timeouts, which has resulted in some "tuning" bugs in the past. Since there's no benefit to the sleep portion and it is also what causes the confusion, this change removes it and thing directly uses SocketHandleWaiter in PlatformClientPosix. Bug: None Change-Id: I9f62c9253bee7d29b26d1838d34c1399f4d472b5 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2798852 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2021-04-01Reset needs_key_frame after forcingbtolsch
This change resets needs_key_frame to false after the encoding loop sees it once to pass it to the vp8 encoder. Previously, once a key frame is needed, every frame thereafter would become a key frame. Bug: None Change-Id: Ia64ab56fd800892462cf8d103c4a9e454d1c850f Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2798115 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2021-04-01[Cast] Make additional Constraint fields optionalJordan Bayles
This patch makes the maxDelay and maxPixelsPerSecond fields optional. Bug: 1154956 Change-Id: I0afc8b31a657a5a6224a74a7c168273fb86ac59b Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2794863 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Brandon Tolsch <btolsch@chromium.org>
2021-03-31[Cast] Rename Negotiate/OnNegotiated methodsJordan Bayles
This patch renames SenderSession Negotiate to NegotiateMirroring and OnNegotiated to OnMirroringNegotiated, in advance of a larger patch that exposes remoting on the SenderSession. Bug: b/184186374 Change-Id: Ibfa38a822d6fdf5a39ebb83ef493442451fcc91e Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2798518 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-03-30[Cast] Fix Standalone Sender/ReceiverJordan Bayles
Over the last year, the standalone sender and receiver applications have gone through some major changes, and unfortunately a few regressions have been introduced. This patch fixes the poor performance. This was actually caused by a "fix" to the PlatformClientPosix implementation, where we were using inappropriate values for network looping (50ms, which is an eternity). Bug: b/182937147 Change-Id: I39af927401ce940b81829e5b2992e06bc544ef01 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2792912 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-03-30[Cast] Fix bandwidth estimatorJordan Bayles
Currently, the bandwidth estimator always reports 0kbps, even though we are successfully sending packets. Turns out, the LoopingFileSender is erroneously using a second SenderPacketRouter that is separate from the SenderSession's instance, so it has no packets to report. This feature is now exposed on the SenderSession, since bandwidth estimation is a helpful signal for embedders to throttle capture. Bug: b/183996401 Change-Id: I932085dfe00df29d8ae79a184ee10b1d3fe5594d Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2792913 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-03-23Improve unencrypted offer error messagingJordan Bayles
This patch improves offer message error handling, adding a specific case for unencrypted offers--meaning that either the aesKey or aesIvMask is missing or not properly set. Bug: b/183070430 Change-Id: Iec27f254dfd4d379318cbdbc4855955c24d49db1 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2771244 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-03-22Fix standalone receiver publishingbtolsch
This change makes the IP address record the standalone receiver publishes consistent with the one on which it's listening. It still prioritizes listening on IPv4 addresses, but previously it might also advertise an IPv6 address via mDNS. Bug: None Change-Id: Ic9496d63e7c075b2e2dab708042dfeec963e5337 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2765985 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
2021-03-18Add device capabilities to standalone receiverbtolsch
This change adds audio/video out device capabilities to the standalone receiver's mDNS advertisement. Bug: b/182937156 Change-Id: I7ef402960df6f88a1a9c1c20dd3c138123725f06 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2765986 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2021-03-18Move sender streaming socket logbtolsch
This change moves the log that reports the endpoint to which the standalone sender is connected. The current log point has an incorrect port because the answer message hasn't been received yet. Bug: None Change-Id: I34e8ba39e99202513cb65c909832eaa3409b1cf7 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2765987 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2021-03-11Internal changeGoogler
PiperOrigin-RevId: 355200754 Change-Id: Ic9f1e51d5b6df49074b777a3b7261493c55125a4 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2750548 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2021-03-05Fix a few more X509 struct accessesDavid Benjamin
I missed these earlier. Change-Id: I53873874f850193839003c8cb812a0bf68074453 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2740099 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
2021-03-04Store NAME_CONSTRAINTS objects in local variablesDavid Benjamin
This avoids repurposing BoringSSL's internal fields, which would break if the X509 objects were ever passed into BoringSSL functions that used those fields. Change-Id: I84b11dba5dfda5483da00b71e0c4a9f672c20174 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2737735 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
2021-03-04Maintain self-issued bit in a local variableDavid Benjamin
EXFLAG_SI is recomputed in each loop anyway, so there is no point storing it with the certificate in the first place. It is also, in this code, not *entirely* path-independent due to the is_root check. This fixes a potential bug where checking one path impacts the behavior of another path. Change-Id: If9b0d157dd49c44723c1a8e2f83eebfc3fc2779c Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2737756 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
2021-03-04Use X509 getters instead of reaching into BoringSSL internalsDavid Benjamin
This CL is needed to compile with the latest revision of BoringSSL. We're in the process of aligning with OpenSSL upstream and switching the X509 structure from direct struct access to accessors. This CL fixes most instances leaves the mutation of x509->nc and x509->ex_flags (which, even before the struct became opaque, was unsupported), since they're a little more subtle. This also switches from X509V3_EXT_d2i to X509_get_ext_d2i, which saves some code. Note, however, both the old and new version of the CL do not correctly handle encoding errors in the extensions. For this CL, I've preserved the original bugs and have focused on resolving the direct struct accesses, rather than doing a thorough review for correctness. Change-Id: Ib7c535b726684719baa15c76a84e95a18e0d8114 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2737755 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
2021-02-17Fix an incorrect usage of ErrorOr.Fabrice de Gans-Riberi
This fixes an incorrect usage of ErrorOr in Environment that was triggering an assert in debug mode. The code was not properly checking that the result was a value before using it. Change-Id: I2f1c5cc18a66c3293d33e0c758f7b5f51848e688 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2698270 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-02-09Fix gn check errors for chromiumbtolsch
Bug: 1159043, 1159044, 1159045, 1159046, 1159047 Bug: 1159048, 1159049, 1159050, 1159051 Change-Id: I4c01784608057662fc432f4ac35ced7c0be9b601 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2678725 Commit-Queue: Brandon Tolsch <btolsch@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2021-02-05Update mDNS service bindingJordan Bayles
This is a followup patch to: https://chromium-review.googlesource.com/c/openscreen/+/2643397 To make it RFC compliant, we now send to the multicast group address, not to ANY. We also bind to ANY address instead of the local address of the interface, since binding filters multicast traffic to only bound addresses. Joining the multicast group is what filters the traffic instead. Bug: b/178102949 Change-Id: I1d7e44b5e90d2f1f1d395cb9a8a689edf16bfafb Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2665304 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-02-05Use timegm/_mkgmtime instead of mktimeMin Yun
mktime return localized timezone result. Certification uses UTC time zone, so call timegm/_mkgmtime to match with certification. Change-Id: I338ca14bb75e75d45c1de1ab976a61ec2e51eeca Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2658656 Reviewed-by: Brandon Tolsch <btolsch@chromium.org> Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
2021-02-01Fix UDP bind timing issueJordan Bayles
This patch fixes a potential timing issue where we attempt to send an Answer message before the UDP socket is bound. The current behavior is that we construct an Answer with a UDP port value of 0, which results in the Answer failing validation and an error Answer message being sent back to the sender. The new behavior is that the Answer message is not sent until the environment is notified that the UDP socket has been bound. This is accomplished by an addition to the UDPSocket::Client abstract class, a new OnBound event. Bug: b/174501332 Change-Id: I4bcebe78d8d41c29bb4b4698c5565f0dd9ef2c17 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2645893 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2021-01-25[c++17] Make consistent use of noexceptJan Wilken Dörrie
This change makes openscreen ready to be compiled with -std=c++17. In particular, c++17 demands the consistent use of the noexcept keyword accross declaration and definition. Bug: chromium:752720 Change-Id: I4715cbc7ccc9576e33ad7dec0ce6c1f6ebd9935b Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2643286 Commit-Queue: mark a. foltz <mfoltz@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2021-01-11Set up Receiver and Sender for remotingJordan Bayles
This patch updates the Sender and Receiver classes to be usable for remoting. Bug: b/175606988 Change-Id: Ia515f211ab26362933746c660848bfd6474c959f Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2611785 Reviewed-by: Yuri Wiitala <miu@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2021-01-11Fix standalone_sender BUILD.gn for Mac.Yuri Wiitala
Merges the source_set("standalone_sender") target with the executable("cast_sender") target, to become a single executable target. This fixes the cast_sender build on Mac (not sure why it was working on Linux???). Change-Id: Ifef996c56892079bfb692be756d3e2e6ea9ffe85 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2619025 Reviewed-by: Jordan Bayles <jophba@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-12-18Internal changeRyan Keane
PiperOrigin-RevId: 347889652 Change-Id: I99bfa2a3de0f2d4555ce5a40f0dc1b109be40722 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2595341 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-12-18Internal changeShawn Quereshi
PiperOrigin-RevId: 346876868 Change-Id: Ibdc1bb192bab2ef00519bf8e28bb95eb46d8819a Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2596076 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-12-18Internal changeRyan Keane
PiperOrigin-RevId: 346675711 Change-Id: I3bdab2b11f9cf5ceb757ffe761e0878acd8b2046 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2596075 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-12-18Internal changeGoogler
PiperOrigin-RevId: 345051013 Change-Id: Ie78ef1ad3bf0a09bd2dd12023abb83c3ad0436ab Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2596074 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-12-18Internal changeVigen Issahhanjan
PiperOrigin-RevId: 343389838 Change-Id: I91336772932e7323b18f177d280d38a6e7c65802 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2595722 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-12-17Internal changeVigen Issahhanjan
PiperOrigin-RevId: 343365350 Change-Id: If6d9f95b1407f88100f2a394d3ba2535579e147c Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2597836 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-12-17Bikeshed: fix spelling mistakesJordan Bayles
Change-Id: If9531c66df28cfd86728d7a5ece42753037c0509 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2596321 Commit-Queue: Jordan Bayles <jophba@chromium.org> Commit-Queue: mark a. foltz <mfoltz@chromium.org> Reviewed-by: mark a. foltz <mfoltz@chromium.org>
2020-12-16Internal changeVigen Issahhanjan
PiperOrigin-RevId: 342737330 Change-Id: I50662c13ed675fb04e054dac432d4fcdf1baa0f4 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2594568 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-12-16Port/Rewrite of Chrome's RPCBrokerJordan Bayles
This patch includes a port of Chrome's RPCBroker and related unit tests, rewritten using Open Screen types and modern C++ design standards. For the original RPCBroker, see: https://source.chromium.org/chromium/chromium/src/+/master:/media/remoting/rpc_broker.h Bug: b/175606986 Change-Id: I93893c355ec11f66376a2113e512e00308fc7594 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2590549 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org>
2020-12-16Fix some places that became microseconds but are supposed to be millis.Yuri Wiitala
The refactoring in commit c9201dd611b0aa8d66fe7ef2749c7ce0c157f0a1 accidentally replaced some time conversions/definitions that were milliseconds with microseconds. Change-Id: Ie7f329060b77064ce41acf72696a99c4f88b2104 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2594219 Commit-Queue: Jordan Bayles <jophba@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>
2020-12-15Fix Android senders by accepting 0 sequence number.Jordan Bayles
This patch updates the libcast receiver to accept 0 as a valid sequence number. TBR=miu@chromium.org Bug: b/175720188 Change-Id: I17ff6f8390b76d22ed39d756ffc2143ac7a039e8 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2594152 Reviewed-by: Jordan Bayles <jophba@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org> Commit-Queue: Jordan Bayles <jophba@chromium.org>
2020-12-12Internal changeAlex Leung
PiperOrigin-RevId: 342117974 Change-Id: I9e15d3dfae41a06f5d06cd130e23bf9736676417 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2586158 Reviewed-by: Ryan Keane <rwkeane@google.com> Commit-Queue: Ryan Keane <rwkeane@google.com>
2020-12-11Full Cast Standalone Sender (Mirroring)Yuri Wiitala
This patch adds all the necessary sender-side logic for talking to the agent on a Cast Receiver, to LAUNCH the Mirroring App, and to estabilsh a VirtualConnection for Mirroring App message routing. It heavily modifies the role of LoopingFileCastAgent: This class now becomes a "single-use workflow" that walks through all the steps needed for establishing streaming and tearing it down. With this patch, the Standalone Sender can now be used with the Standalone Receiver once again. Bug: b/162542369 Change-Id: Ib7d990995b5a036bd0299806a42d4a92f89d9209 Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2586061 Commit-Queue: Yuri Wiitala <miu@chromium.org> Reviewed-by: Jordan Bayles <jophba@chromium.org>