Hey, Not very familiar with the html5 code, but looks good On Wed, Jun 03, 2015 at 05:22:54PM -0500, Jeremy White wrote: > Signed-off-by: Jeremy White <jwhite@xxxxxxxxxxxxxxx> > --- > display.js | 60 ++++++++++++++++++++++++++++++++++++++---------------------- > enums.js | 11 +++++++++++ > spiceconn.js | 4 ++++ > spicemsg.js | 23 +++++++++++++++++++++++ > 4 files changed, 76 insertions(+), 22 deletions(-) > > diff --git a/display.js b/display.js > index a749dae..7027230 100644 > --- a/display.js > +++ b/display.js > @@ -487,32 +487,21 @@ SpiceDisplayConn.prototype.process_channel_message = function(msg) > } > if (this.streams[m.base.id].codec_type === SPICE_VIDEO_CODEC_TYPE_MJPEG) > { > - var tmpstr = "data:image/jpeg,"; > - var img = new Image; > - var i; > - for (i = 0; i < m.data.length; i++) > - { > - tmpstr += '%'; > - if (m.data[i] < 16) > - tmpstr += '0'; > - tmpstr += m.data[i].toString(16); > - } > - var strm_base = new SpiceMsgDisplayBase(); > - strm_base.surface_id = this.streams[m.base.id].surface_id; > - strm_base.box = this.streams[m.base.id].dest; > - strm_base.clip = this.streams[m.base.id].clip; > - img.o = > - { base: strm_base, > - tag: "mjpeg." + m.base.id, > - descriptor: null, > - sc : this, > - }; > - img.onload = handle_draw_jpeg_onload; > - img.src = tmpstr; > + process_mjpeg_stream_data(this, m); > + > } > return true; > } > > + if (msg.type == SPICE_MSG_DISPLAY_STREAM_DATA_SIZED) > + { > + var m = new SpiceMsgDisplayStreamDataSized(msg.data); > + if (this.streams[m.base.id].codec_type === SPICE_VIDEO_CODEC_TYPE_MJPEG) > + process_mjpeg_stream_data(this, m); > + return true; > + } > + > + > if (msg.type == SPICE_MSG_DISPLAY_STREAM_CLIP) > { > var m = new SpiceMsgDisplayStreamClip(msg.data); > @@ -821,3 +810,30 @@ function handle_draw_jpeg_onload() > this.o.sc.surfaces[this.o.base.surface_id].draw_count++; > } > } > + > +function process_mjpeg_stream_data(sc, m) > +{ > + var tmpstr = "data:image/jpeg,"; > + var img = new Image; > + var i; > + for (i = 0; i < m.data.length; i++) > + { > + tmpstr += '%'; > + if (m.data[i] < 16) > + tmpstr += '0'; > + tmpstr += m.data[i].toString(16); > + } > + var strm_base = new SpiceMsgDisplayBase(); > + strm_base.surface_id = sc.streams[m.base.id].surface_id; > + strm_base.box = m.dest || sc.streams[m.base.id].dest; > + strm_base.clip = sc.streams[m.base.id].clip; > + img.o = > + { base: strm_base, > + tag: "mjpeg." + m.base.id, > + descriptor: null, > + sc : sc, > + }; > + img.onload = handle_draw_jpeg_onload; > + img.src = tmpstr; > +} > + > diff --git a/enums.js b/enums.js > index 17d77cb..7f55e46 100644 > --- a/enums.js > +++ b/enums.js > @@ -127,6 +127,10 @@ var SPICE_MSG_DISPLAY_DRAW_TRANSPARENT = 312; > var SPICE_MSG_DISPLAY_DRAW_ALPHA_BLEND = 313; > var SPICE_MSG_DISPLAY_SURFACE_CREATE = 314; > var SPICE_MSG_DISPLAY_SURFACE_DESTROY = 315; > +var SPICE_MSG_DISPLAY_STREAM_DATA_SIZED = 316; > +var SPICE_MSG_DISPLAY_MONITORS_CONFIG = 317; > +var SPICE_MSG_DISPLAY_DRAW_COMPOSITE = 318; > +var SPICE_MSG_DISPLAY_STREAM_ACTIVATE_REPORT = 319; > > var SPICE_MSGC_DISPLAY_INIT = 101; > > @@ -171,6 +175,13 @@ var SPICE_MAIN_CAP_NAME_AND_UUID = 1; > var SPICE_MAIN_CAP_AGENT_CONNECTED_TOKENS = 2; > var SPICE_MAIN_CAP_SEAMLESS_MIGRATE = 3; > > +var SPICE_DISPLAY_CAP_SIZED_STREAM = 0; > +var SPICE_DISPLAY_CAP_MONITORS_CONFIG = 1; > +var SPICE_DISPLAY_CAP_COMPOSITE = 2; > +var SPICE_DISPLAY_CAP_A8_SURFACE = 3; > +var SPICE_DISPLAY_CAP_STREAM_REPORT = 4; > +var SPICE_DISPLAY_CAP_LZ4_COMPRESSION = 5; > + I guess not all of these new constants are needed for this commit, but they are there for completeness? ACK. Christophe
Attachment:
pgprsfAepc4EC.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel