Hi,
On Mon, Jul 20, 2015 at 06:35:28PM -0400, Sandy Stutsman wrote:
> Hi Again.
> >> diff --git a/src/spice-widget.c b/src/spice-widget.c
> >> index 59f9792..3ec2e65 100644
> >> --- a/src/spice-widget.c
> >> +++ b/src/spice-widget.c
> >> @@ -293,7 +293,12 @@ static void update_
The video encoder uses the client reports and/or notifications of server frame
drops as its feedback mechanisms.
It uses these to figure out the lowest bit rate that causes negative feedback,
and the highest bit rate that allows a return to positive feedbacks. It then
works to narrow this range
The GStreamer encoders don't follow the specified bit rate very closely: they
can decide to exceed it for ten seconds or more if they consider the scene
deserves it. Such long bursts are enough to cause network congestion, resulting
in long bouts of dropped frames.
So the GStreamer video encoder
To do so we reference the source bitmap chunks in the GStreamer buffer and rely
on the buffer's lifetime being short enough.
Note that we can only avoid copies for the first 1 Mpixels or so. That's
because Spice splits larger frames into more chunks and we can fit memory
fragments inside a GStre
Signed-off-by: Francois Gouget
---
Having support for h264 is interesting in its own right but this shows
adding extra codecs is quite easy.
Changes since take 3:
- None.
server/gstreamer_encoder.c | 17 -
server/red_dispatcher.c| 2 ++
2 files changed, 18 insertions(+
Signed-off-by: Francois Gouget
---
By default GStreamer 1.0 is used if available, otherwise GStreamer 0.10
is used and Spice is compiled without GStreamer support as a last
resort. It's possible to explicitly require a specific Gstreamer version
with --enable-gstreamer=1.0 and --enable-gstream
This way the video encoder is not forced to use malloc()/free().
This also allows more flexibility in how the video encoder manages the buffer
which allows for a zero-copy implementation in both video encoders.
The current implementations also ensure that there is no reallocation of the
VideoBuff
---
Changes since take 3:
- None.
Changes since take 1:
- Fixed a brace placement.
examples/spiceqxl.xorg.conf.example | 7 +++
src/qxl.h | 1 +
src/qxl_driver.c| 2 ++
src/spiceqxl_spice_server.c | 15 +++
4 files chang
---
Changes since take 3:
- None.
scripts/Xspice | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/scripts/Xspice b/scripts/Xspice
index 281535d..02875f5 100755
--- a/scripts/Xspice
+++ b/scripts/Xspice
@@ -86,6 +86,7 @@ parser.add_argument('--zlib-glz-wan-compression',
# T
This patch simply replaces the mjpeg_encoder_xxx() call points with a more
object oriented design.
Signed-off-by: Francois Gouget
---
Changes since take 3:
- A NULL video_encoder means that the stream creation failed so
red_stop_stream() no longer sends messages to destroy it in
that ca
The video encoder preferences can be expressed by building a semi-colon
separated list of encoder:codec pairs. For instance 'gstreamer:vp8;spice:mjpeg'
to pick first the GStreamer VP8 video encoder first and used the original MJPEG
video encoder one as a fallback.
The server has a default prefer
Clients that support multiple codecs should advertise the
SPICE_DISPLAY_CAP_MULTI_CODEC capability and one SPICE_DISPLAY_CAP_CODEC_XXX
per supported codec.
---
This should be followed by a spice-common commit that ensures we get the
right version of these headers (possibly that commit could be
This follows up on the previous patch series with the addition of full
bit rate support. This brings the GStreamer video encoder to feature
parity with the builtin Spice MJPEG one so I think it's ready to be
committed.
To summarize the changes since the last round:
- The bit rate is automatic
The GStreamer video encoder supports both regular and sized streams.
It is otherwise quite basic and lacks any rate control: the bitrate is set at
startup and will not react to changes in the network conditions. Still it
should work fine on LANs.
Signed-off-by: Francois Gouget
---
Changes sinc
---
Changes since take 3:
- None
Changes since take 2:
- This patch also adds h264.
spice.proto | 2 ++
1 file changed, 2 insertions(+)
diff --git a/spice.proto b/spice.proto
index 4ea1263..fa4d448 100644
--- a/spice.proto
+++ b/spice.proto
@@ -329,6 +329,8 @@ flags8 path_flags { /* TODO: C
Signed-off-by: Frediano Ziglio
---
codegen/dissector_test.c | 424 ++-
1 file changed, 423 insertions(+), 1 deletion(-)
diff --git a/codegen/dissector_test.c b/codegen/dissector_test.c
index 25a33b5..5a49f40 100644
--- a/codegen/dissector_test.c
+++ b/
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py| 2 +-
python_modules/ptypes.py | 91 +++---
python_modules/spice_parser.py | 2 +-
3 files changed, 35 insertions(+), 60 deletions(-)
diff --git a/python_modules/dissector.py b/python_
Check different format or small arrays formatting.
Is possible to omit to have a tree and dump just the elements.
This is useful for small arrays or if is possible to format all
the item (for instance having a small structure) in a single line.
Signed-off-by: Frediano Ziglio
---
codegen/Makefile
Try to test possible combinations of different attributes
with arrays to make sure output is what is expected.
Signed-off-by: Frediano Ziglio
---
codegen/out_array_primitive.txt | 109 +
codegen/out_array_raw.txt | 12 +++-
codegen/out_array_struct.txt|
Was not implemented. These attributes allows to specify length of
other fields in bytes. Previously was possibly only to specify
arrays length in number of elements.
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 64 +
1 file changed,
Before was dump as raw data
Signed-off-by: Frediano Ziglio
---
spice.proto | 128
1 file changed, 120 insertions(+), 8 deletions(-)
diff --git a/spice.proto b/spice.proto
index fe0eb34..880a8be 100644
--- a/spice.proto
+++ b/spice.pro
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 4
1 file changed, 4 insertions(+)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index 3e1fd6d..2a25a51 100644
--- a/python_modules/dissector.py
+++ b/python_modules/dissector.py
@@ -430,6 +430,10 @@ d
Signed-off-by: Frediano Ziglio
---
spice.proto | 25 -
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/spice.proto b/spice.proto
index 880a8be..270464f 100644
--- a/spice.proto
+++ b/spice.proto
@@ -687,6 +687,29 @@ struct Surface {
uint32 surface_id;
}
Make sure the generated dissector contains all strings from
the protocol file.
Signed-off-by: Frediano Ziglio
---
codegen/Makefile.am | 2 +-
codegen/check_strings | 33 +
2 files changed, 34 insertions(+), 1 deletion(-)
create mode 100755 codegen/check_string
Is possible the nested fields override text as text could be updated
at the end of container.
Check we don't do it and we correctly nest protocol items.
Signed-off-by: Frediano Ziglio
---
codegen/check_dissector | 1 +
codegen/data_struct2| Bin 0 -> 9 bytes
codegen/out_struct2.txt | 28 +
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 14 +++---
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index c88118f..554f59c 100644
--- a/python_modules/dissector.py
+++ b/python_modules/dissecto
Add some classes to be able to store retrieved data from structure
and messages.
The idea is to generate code dynamically when variable are readed.
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 104 +++-
1 file changed, 103 insertions(+)
Check members are all of a giver type and call stubs for each type.
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 50 +++--
1 file changed, 48 insertions(+), 2 deletions(-)
diff --git a/python_modules/dissector.py b/python_modules/disse
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py| 7 ++-
python_modules/ptypes.py | 3 ++-
python_modules/spice_parser.py | 4 ++--
3 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index 5c6b6fc..
Instead of only show the hexadecimal value show all bits.
Signed-off-by: Frediano Ziglio
---
codegen/Makefile.am | 1 +
codegen/check_dissector | 3 ++
codegen/dissector_test.c| 22 +
codegen/out_base1.txt | 81 +
codegen/out_fl
Type will be mapped to an enumerator containing all channel types.
Signed-off-by: Frediano Ziglio
---
codegen/Makefile.am | 1 +
codegen/check_dissector | 2 ++
codegen/out_channel.txt | 7 +++
codegen/test.proto | 15 +++
python_modules/dissector.py |
Specifying attributes for items allows to specify different attribute
for the same member where some are specific to the item while the
other to the array.
The element attributes are attached to the array as they cannot be
attached to the type as the object is unique for each type.
Same for pointer
This attribute is not use in code.
Signed-off-by: Frediano Ziglio
---
python_modules/ptypes.py | 4
1 file changed, 4 deletions(-)
diff --git a/python_modules/ptypes.py b/python_modules/ptypes.py
index d8b6c90..cc6960f 100644
--- a/python_modules/ptypes.py
+++ b/python_modules/ptypes.py
@@
---
python_modules/dissector.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index 413aca4..a7add96 100644
--- a/python_modules/dissector.py
+++ b/python_modules/dissector.py
@@ -223,7 +223,7 @@ def write_wireshark_fi
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 48 +++--
1 file changed, 46 insertions(+), 2 deletions(-)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index a7add96..aa71615 100644
--- a/python_modules/dissector.
Support ws_txt and ws_txt_n attributes.
These attributes are there to allow to set specific text to different
elements.
The can be used to output in a single line the features of a structure.
Or they can be used to format small array items.
They can applied to almost everything from primitives, arr
Write a function and call it to be able to reuse it.
Signed-off-by: Frediano Ziglio
---
codegen/Makefile.am | 1 +
codegen/check_dissector | 2 ++
codegen/out_struct1.txt | 7 +++
codegen/test.proto | 9 +
python_modules/dissector.py | 20
Allow to reuse code and check better if field was already registered
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 58 +
1 file changed, 48 insertions(+), 10 deletions(-)
diff --git a/python_modules/dissector.py b/python_modules/dis
Read the pointer and if not 0 create a function to parse it and
call it.
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 49 +
1 file changed, 49 insertions(+)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
ind
If just raw data add a single field.
If more complex loop through them.
Signed-off-by: Frediano Ziglio
---
codegen/Makefile.am | 4
codegen/check_dissector | 4
codegen/data_u16s | Bin 0 -> 2000 bytes
codegen/out_array_primitive.txt | 25
Added a stub dissector.py code.
Added file to Makefiles.
Add option to call dissector and code to call it.
Signed-off-by: Frediano Ziglio
---
common/Makefile.am | 1 +
python_modules/Makefile.am | 1 +
python_modules/dissector.py | 14 ++
spice_codegen.py| 17
Signed-off-by: Frediano Ziglio
---
python_modules/codegen.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python_modules/codegen.py b/python_modules/codegen.py
index f324498..55500b7 100644
--- a/python_modules/codegen.py
+++ b/python_modules/codegen.py
@@ -193,7 +193,7 @@
This allow to emulate reading from network
Signed-off-by: Frediano Ziglio
---
codegen/check_dissector | 4 ++--
codegen/dissector_test.c | 32 +---
2 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/codegen/check_dissector b/codegen/check_dissector
inde
---
python_modules/dissector.py | 39 +++
1 file changed, 39 insertions(+)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index d623576..827f7f0 100644
--- a/python_modules/dissector.py
+++ b/python_modules/dissector.py
@@ -25,6 +25,45 @
Signed-off-by: Frediano Ziglio
---
python_modules/spice_parser.py | 1 -
1 file changed, 1 deletion(-)
diff --git a/python_modules/spice_parser.py b/python_modules/spice_parser.py
index 80b559b..97af8b2 100644
--- a/python_modules/spice_parser.py
+++ b/python_modules/spice_parser.py
@@ -58,7 +58
Signed-off-by: Frediano Ziglio
---
python_modules/ptypes.py | 32
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/python_modules/ptypes.py b/python_modules/ptypes.py
index d031d09..845fa73 100644
--- a/python_modules/ptypes.py
+++ b/python_modules/
Generate global definitions.
Generate function to registers various dissector components.
For the moment the field array is empty bu we save some global to
be able to register new ones.
Add a base test for generated dissector.
Signed-off-by: Frediano Ziglio
---
Makefile.am | 2 +
Signed-off-by: Frediano Ziglio
---
spice.proto | 416
1 file changed, 219 insertions(+), 197 deletions(-)
diff --git a/spice.proto b/spice.proto
index 4ea1263..52d6971 100644
--- a/spice.proto
+++ b/spice.proto
@@ -5,14 +5,14 @@
typed
I'm generating code for dissector from demarshaller.
Make simple to hangle ifdef/endif not having to check manually attribute.
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 18 ++
1 file changed, 18 insertions(+)
diff --git a/python_modules/dissector.py b/pyth
Add fields to base tree (so basically there is no tree).
Names is now generated from container + member name.
The check for duplicate is not that strong, should check if same field
is defined with same attributes.
Signed-off-by: Frediano Ziglio
---
codegen/Makefile.am | 39 +
These descriptions will be used to show in wireshark dissector.
Signed-off-by: Frediano Ziglio
---
python_modules/ptypes.py | 16
python_modules/spice_parser.py | 2 +-
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/python_modules/ptypes.py b/python_modul
ws_type override the type (BOOLEAN -> FT_BOOLEAN).
ws_base override the base (DEC -> BASE_HEX).
ws_desc override the description.
ws allow to specify description and name for wireshark. Name is
important as allows filters. Having a single attribute with 2 values
allows to quickly specify the main a
Messages are not generated as stub.
Code partially from demarshaller.
Signed-off-by: Frediano Ziglio
---
codegen/Makefile.am | 3 +-
codegen/check_dissector | 13 +
codegen/dissector_test.c| 54 -
python_modules/dissector.py | 138 +
Parse all members of the containers
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 19 +++
1 file changed, 19 insertions(+)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index 588becd..ed3b939 100644
--- a/python_modules/dissector.py
++
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index af0494c..40e348a 100644
--- a/python_modules/dissector.py
+++ b/python_modules/dissector.py
@@ -236,6 +236,8 @@ def
Store into references for future usage.
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 32
1 file changed, 32 insertions(+)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index cd653b3..da89def 100644
--- a/python_module
Use an array to declare tree items instead of allocating it statically.
This save a bit of memory and it also generate smaller code to read.
A tree in wireshark represent an item which could be expanded.
Possibly wireshark is using these registrations to save expansion
state in the user interface.
As we have a file to specify the protocol and as is hard to align
wireshark dissector for each change we made I'm trying to do
part of this job to a code generator.
The idea is to have the dissector split in two part, one hand
written and the other automatic.
I tested that changing the code and p
This to prepare to generate wireshark dissector which use
glib types instead of new C ones (for compatibility with some
compiler).
Signed-off-by: Frediano Ziglio
---
python_modules/codegen.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/python_modules/codegen.py b/pytho
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 41 -
1 file changed, 40 insertions(+), 1 deletion(-)
diff --git a/python_modules/dissector.py b/python_modules/dissector.py
index caf817f..b204c61 100644
--- a/python_modules/dissector.py
++
To make output more useful fields from the protocol should have
additional information like description, name, type and so on.
List of attributes added:
- ws_desc, just a simple description
- ws_name name of the field. See below
- ws allow to specify a description and a name. Useful as easy to
t
This attribute allow structure to be aligned instead of be contained
in a separate function.
This is helpful as variable are declared in the function so allows
other member to reference to a nested structure.
Signed-off-by: Frediano Ziglio
---
python_modules/dissector.py | 11 ---
1 file
---
python_modules/codegen.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/python_modules/codegen.py b/python_modules/codegen.py
index 02ffdb9..c470988 100644
--- a/python_modules/codegen.py
+++ b/python_modules/codegen.py
@@ -357,6 +357,7 @@ class CodeWriter:
return index
d
Blocks was mainly the same, reduce code.
Signed-off-by: Frediano Ziglio
---
python_modules/marshal.py | 29 +++--
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/python_modules/marshal.py b/python_modules/marshal.py
index b77b910..1d38d3d 100644
--- a/pyth
Signed-off-by: Frediano Ziglio
---
python_modules/codegen.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/python_modules/codegen.py b/python_modules/codegen.py
index 55500b7..02ffdb9 100644
--- a/python_modules/codegen.py
+++ b/python_modules/codegen.py
@@ -130,8 +130,7 @
The module was used in the initial try/except so make sure it is
already imported.
Signed-off-by: Frediano Ziglio
---
python_modules/spice_parser.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/python_modules/spice_parser.py b/python_modules/spice_parser.py
index d60bb10
Verify that the attribute is known. This could help for instance to
avoid some future typo mistake.
Also we have a list of attributes we can comment.
Signed-off-by: Frediano Ziglio
---
python_modules/ptypes.py | 72
1 file changed, 72 insertions(+
- Original Message -
> From: "Christophe Fergeau"
> To: "Frediano Ziglio"
> Cc: spice-devel@lists.freedesktop.org
> Sent: Tuesday, July 21, 2015 4:37:15 PM
> Subject: Re: [Spice-devel] [PATCH v2 12/43] Generate some definition for
> dissector
>
> On Wed, Jul 08, 2015 at 02:53:45PM +01
On Wed, Jul 08, 2015 at 02:53:45PM +0100, Frediano Ziglio wrote:
> Generate global definitions.
> Generate function to registers various dissector components.
> For the moment the field array is empty bu we save some global to
> be able to register new ones.
> Add a base test for generated dissecto
On Tue, Jul 21, 2015 at 11:34:08AM -0400, Laine Stump wrote:
> On 07/21/2015 09:41 AM, Daniel P. Berrange wrote:
> > On Tue, Jul 21, 2015 at 03:35:50PM +0200, Martin Kletzander wrote:
> >> On Tue, Jul 21, 2015 at 01:50:22PM +0100, Daniel P. Berrange wrote:
> >>> On Tue, Jul 21, 2015 at 11:44:27AM +
On Tue, Jul 21, 2015 at 03:35:50PM +0200, Martin Kletzander wrote:
> On Tue, Jul 21, 2015 at 01:50:22PM +0100, Daniel P. Berrange wrote:
> >On Tue, Jul 21, 2015 at 11:44:27AM +0200, Martin Kletzander wrote:
> >>On Tue, Jul 21, 2015 at 09:36:55AM +0200, Christophe Fergeau wrote:
> >>>On Mon, Jul 20,
On Tue, Jul 21, 2015 at 11:44:27AM +0200, Martin Kletzander wrote:
> On Tue, Jul 21, 2015 at 09:36:55AM +0200, Christophe Fergeau wrote:
> >On Mon, Jul 20, 2015 at 11:25:52AM +0200, Martin Kletzander wrote:
> >>I spend all morning fixing this to be installed properly in the
> >>system. Anyway, I f
On Tue, Jul 21, 2015 at 01:50:22PM +0100, Daniel P. Berrange wrote:
On Tue, Jul 21, 2015 at 11:44:27AM +0200, Martin Kletzander wrote:
On Tue, Jul 21, 2015 at 09:36:55AM +0200, Christophe Fergeau wrote:
>On Mon, Jul 20, 2015 at 11:25:52AM +0200, Martin Kletzander wrote:
>>I spend all morning fix
On Tue, Jul 21, 2015 at 08:41:33AM -0400, Frediano Ziglio wrote:
On Tue, Jul 21, 2015 at 09:36:55AM +0200, Christophe Fergeau wrote:
>On Mon, Jul 20, 2015 at 11:25:52AM +0200, Martin Kletzander wrote:
>> I spend all morning fixing this to be installed properly in the
>> system. Anyway, I finall
>
> On Tue, Jul 21, 2015 at 09:36:55AM +0200, Christophe Fergeau wrote:
> >On Mon, Jul 20, 2015 at 11:25:52AM +0200, Martin Kletzander wrote:
> >> I spend all morning fixing this to be installed properly in the
> >> system. Anyway, I finally managed to make this work and found out the
> >> guest
On Tue, Jul 21, 2015 at 09:36:55AM +0200, Christophe Fergeau wrote:
On Mon, Jul 20, 2015 at 11:25:52AM +0200, Martin Kletzander wrote:
I spend all morning fixing this to be installed properly in the
system. Anyway, I finally managed to make this work and found out the
guest I used for it is not
>
> On Wed, Jul 01, 2015 at 06:10:00PM +0100, Frediano Ziglio wrote:
> > This attribute is not use in code.
>
> 'used'
> This was removed in commit 2e8aecc2a56e5b7690d77516e41436b697921b1b I
> think. I'd move this commit before the preceding one as you are removing
> code that you just added. Or
On Mon, Jul 20, 2015 at 11:25:52AM +0200, Martin Kletzander wrote:
> I spend all morning fixing this to be installed properly in the
> system. Anyway, I finally managed to make this work and found out the
> guest I used for it is not ready to have multiple monitors. Anyway,
> looking at everythin
Hi,
On Mon, Jul 20, 2015 at 11:25:52AM +0200, Martin Kletzander wrote:
> In the meantime, is the only thing this does limiting the maximum? Is
> it there just to save some memory or why? Because otherwise I can't
> see the use-case in that. I'm not saying there isn't one, just that I
> can't fi
79 matches
Mail list logo