summaryrefslogtreecommitdiffstats
path: root/remoting/client/frame_consumer.h
Commit message (Collapse)AuthorAgeFilesLines
* Add GetFrameConsumer() in VideoRenderer.sergeyu2016-01-051-47/+0
| | | | | | | | | | | | Also moved FrameConsumer interface to remoting/protocol. This will allow to implement video rendering in WebrtcConnectionToHost as WebRTC stack is responsible for video decoding. BUG=547158 Review URL: https://codereview.chromium.org/1559043004 Cr-Commit-Position: refs/heads/master@{#367600}
* Switch to standard integer types in remoting/.avi2015-12-221-1/+1
| | | | | | | | | BUG=138542 TBR=wez@chromium.org Review URL: https://codereview.chromium.org/1542203002 Cr-Commit-Position: refs/heads/master@{#366684}
* remoting: Simplify FrameConsumer interface and remove FrameProducer interface.sergeyu2015-08-201-23/+4
| | | | | | | | | | | | | | | | | | | | Now FrameConsumer implementation is responsible for scaling. This makes interaction with FrameConsumer much simpler. Also removed FrameProducer interface as it's no longer needed. Currently video scaling is only used in the plugin when Graphics3D is not available. In that case Graphics2D::SetScale() performs better than trying to scale the image in the plugin, especially given that the scaling code is not optimized for PNaCl. This refactoring also allowed to simplify threading logic in the rendering both on Android and in the plugin. BUG=256850, 486917, 509914 Review URL: https://codereview.chromium.org/1288063004 Cr-Commit-Position: refs/heads/master@{#344404}
* Allow shaped-desktop hosts to send shape only when it changes.wez2015-07-171-8/+9
| | | | | | | | | | | | | | | | | | | | Previously hosts supplying a shaped desktop needed to attach the desktop shape to every frame, wasting bandwidth since the shape changes relatively infrequently. This CL updates the VideoRenderer implementations to preserve the shape (or lack of one) from the preceding frame if the VideoPacket does not include the use_desktop_shape field. Also simplifies FrameConsumerProxy to remove the need for ref-counting, updates NULL->nullptr throughout remoting/codec/, and removes unnecessary transparency logic from VideoDecoderVpx. BUG=446288 Review URL: https://codereview.chromium.org/1236663002 Cr-Commit-Position: refs/heads/master@{#339212}
* Add VideoProcessor interface.sergeyu@chromium.org2014-01-231-1/+2
| | | | | | | | | | | | | The new VideoProcessor interface abstracts video layer in chromoting client. RectangleUpdateDecoder is the default implementation. Another implementation will be added to suppord decoding using <video> and MediaSource API (or Pepper video decode API if we decide to use it instead in the future). BUG=321825 Review URL: https://codereview.chromium.org/136763009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246547 0039d316-1c4b-4281-b951-d872f2087c98
* Byte-swap the video frame pixels before passing them to Java.lambroslambrou@chromium.org2013-10-021-0/+10
| | | | | | | | | | When a complete video frame is decoded, this CL converts the pixels from BGRA to a format suitable for loading into a Java Bitmap directly. This removes the need to create a temporary int[] array in Java. Review URL: https://codereview.chromium.org/23677011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226405 0039d316-1c4b-4281-b951-d872f2087c98
* Remove dependency on Skia from chromoting client.sergeyu@chromium.org2013-09-251-8/+9
| | | | | | | | | | | | | | Now DesktopRegion, DesktopRect and DesktopSize are used instead of corresponding skia types. R=alexeypa@chromium.org TBR=reed@google.com (for _moved_ skia dependency) Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=224101 Review URL: https://codereview.chromium.org/23440046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@225265 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 224101 "Remove dependency on Skia from chromoting client."sergeyu@chromium.org2013-09-191-9/+8
| | | | | | | | | | | | | | | | | > Remove dependency on Skia from chromoting client. > > Now DesktopRegion, DesktopRect and DesktopSize are used instead of > corresponding skia types. > > TBR=reed@google.com (for _moved_ skia dependency) > > Review URL: https://chromiumcodereview.appspot.com/23440046 TBR=sergeyu@chromium.org Review URL: https://codereview.chromium.org/24217003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224205 0039d316-1c4b-4281-b951-d872f2087c98
* Remove dependency on Skia from chromoting client.sergeyu@chromium.org2013-09-191-8/+9
| | | | | | | | | | | Now DesktopRegion, DesktopRect and DesktopSize are used instead of corresponding skia types. TBR=reed@google.com (for _moved_ skia dependency) Review URL: https://chromiumcodereview.appspot.com/23440046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@224101 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for drawing video onto a Java ByteBuffersolb@chromium.org2013-07-171-0/+1
| | | | | | | | We now place frames into a Java-accessible memory region as we decode them. Review URL: https://chromiumcodereview.appspot.com/19297003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212063 0039d316-1c4b-4281-b951-d872f2087c98
* Abstract PPAPI's ImageData behind webrtc::DesktopFrame interfacesolb@chromium.org2013-07-041-5/+5
| | | | | | | | | | | | This abstracts away RectangleUpdateDecoder's direct use of the the former class. It will ease the development of non--Web app client implementations. BUG=255309 TBR=brettw (third_party/webrtc dependency) Review URL: https://chromiumcodereview.appspot.com/18233015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210113 0039d316-1c4b-4281-b951-d872f2087c98
* Propagate DPI information to web-app.jamiewalch@chromium.org2012-07-201-1/+2
| | | | | | | | | | BUG=135089 TEST= Review URL: https://chromiumcodereview.appspot.com/10801003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147605 0039d316-1c4b-4281-b951-d872f2087c98
* RefCounted types should not have public destructors, delegate cleanuprsleevi@chromium.org2012-06-261-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | For Delegate/Observer-type classes that specify an interface but do not have any particular lifetime requirements, make their destructors protected. This is to allow their interfaces to be implemented safely by RefCounted types. With public destructors, it's possible to do "scoped_ptr<Delegate> foo", and then assign a RefCountedDelegateImpl, which would lead to a double free. As none of these Delegates actually need public destructors (ownership of the Delegate* is not transferred during a function call / class constructor), mark the destructors protected so that it becomes a compile warning to try to delete them via the Delegate*. BUG=123295 TEST=it compiles Review URL: https://chromiumcodereview.appspot.com/10383262 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144086 0039d316-1c4b-4281-b951-d872f2087c98
* This CL makes several the following improvements to the Chromoting decoder ↵alexeypa@chromium.org2012-02-241-34/+26
| | | | | | | | | | | | | | | pipeline: 1. Only the clipping area, not the full frame, is drawn. This reduces the risk of out of memory situation on high page zoom levels. Screen updates are also incremental including scrolling scenarios. 2. Decoders now write pixels directly to the Pepper API backing store making it one memcpy less. 3. Scaling and panning is fully controlled by the plugin. The decoder only supplies the pixels it was asked for by the plugin. BUG=109938 Review URL: http://codereview.chromium.org/9331003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123573 0039d316-1c4b-4281-b951-d872f2087c98
* Replace RectVectors with SkRegions in Decoder.wez@chromium.org2012-01-291-5/+5
| | | | | | | | | | | BUG=105401 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=118790 Review URL: http://codereview.chromium.org/9277001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119632 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 118790 - Compile error due to missing operator== on SkRegionrsleevi@chromium.org2012-01-241-5/+5
| | | | | | | | | | | | | | Replace RectVectors with SkRegions in Decoder. BUG=105401 Review URL: http://codereview.chromium.org/9277001 TBR=wez@chromium.org Review URL: https://chromiumcodereview.appspot.com/9146030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118793 0039d316-1c4b-4281-b951-d872f2087c98
* Replace RectVectors with SkRegions in Decoder.wez@chromium.org2012-01-241-5/+5
| | | | | | | | | BUG=105401 Review URL: http://codereview.chromium.org/9277001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118790 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Remove unneeded forward declarations from remoting.thestig@chromium.org2011-11-111-2/+0
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8536002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109593 0039d316-1c4b-4281-b951-d872f2087c98
* Move code in src/remoting to the new callbacks.sergeyu@chromium.org2011-11-101-10/+7
| | | | | | | | | BUG=None TEST=Remoting still works. Review URL: http://codereview.chromium.org/8493020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109367 0039d316-1c4b-4281-b951-d872f2087c98
* Move us fully from gfx:: over to skia types for consistency.dmaclach@chromium.org2011-09-301-2/+2
| | | | | | | | | | | BUG=92085 TEST=BUILD Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=103523 Review URL: http://codereview.chromium.org/7992011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103533 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 103523 - Move us fully from gfx:: over to skia types for consistency.dmaclach@chromium.org2011-09-301-2/+2
| | | | | | | | | | | | BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/7992011 TBR=dmaclach@chromium.org Review URL: http://codereview.chromium.org/8103006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103526 0039d316-1c4b-4281-b951-d872f2087c98
* Move us fully from gfx:: over to skia types for consistency.dmaclach@chromium.org2011-09-301-2/+2
| | | | | | | | | BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/7992011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103523 0039d316-1c4b-4281-b951-d872f2087c98
* This is a monster CL.ajwong@chromium.org2010-10-041-2/+6
| | | | | | | | | | | | | | | | | | | | It started as an attempt to put the decoder onto another thread. However, this became complicated due to multiple object ownership transfers and coupling between the decode layer and the network layer; the decoder's states were highly coupled with how the network packets were processed. This could probably be broken up slightly, but at this point, it's easier to just commit as a whole The refactor includes: 1) Making the decoder interface unaware of "network packet" types. 2) Making the network layer process packets in order. 3) Threading through asynchronous APIs all over the place. 4) Simplifying the rectangle update protocol. 5) Cleaning up object lifetime and ownership semantics between the decode layer and the renderer. As of right now, the Verbatim format is still broken on the encode side because it uses the old protocol. BUG=52883, 57351 TEST=still connects to chromoting_simple_host Review URL: http://codereview.chromium.org/3305001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61402 0039d316-1c4b-4281-b951-d872f2087c98
* Add in a new FrameConsumer interface, Decode API, and a ↵ajwong@chromium.org2010-09-271-0/+59
| | | | | | | | | | | | | | | RectangleUpdateDecoder abstraction. This should allow a decoder that can still request the view to allocate frames without being owned by the view itself. This allows for cleaner threading semantics and reduced coupling of classes. The new decoder API keeps the decoder from being aware of the network packet types tightening up the API layering. BUG=52833 TEST=None. This code isn't used yet. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=60703 Review URL: http://codereview.chromium.org/3335012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60721 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Add in a new FrameConsumer interface, Decode API, and a ↵ajwong@chromium.org2010-09-271-59/+0
| | | | | | | | | | RectangleUpdateDecoder abstraction." Reverting r60703 due to build break. TBR=willchan git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60705 0039d316-1c4b-4281-b951-d872f2087c98
* Add in a new FrameConsumer interface, Decode API, and a ↵ajwong@chromium.org2010-09-271-0/+59
RectangleUpdateDecoder abstraction. This should allow a decoder that can still request the view to allocate frames without being owned by the view itself. This allows for cleaner threading semantics and reduced coupling of classes. The new decoder API keeps the decoder from being aware of the network packet types tightening up the API layering. BUG=52833 TEST=None. This code isn't used yet. Review URL: http://codereview.chromium.org/3335012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60703 0039d316-1c4b-4281-b951-d872f2087c98