[Spice-devel] [spice-common v1 2/4] messages: document limitation of id in StreamCreate
Victor Toso
victortoso at redhat.com
Thu Apr 19 09:55:53 UTC 2018
Hi,
On Thu, Apr 19, 2018 at 03:31:08AM -0400, Frediano Ziglio wrote:
> >
> > From: Victor Toso <me at victortoso.com>
> >
> > Note that the ID limitation always existed but now we have the
> > limitation in the protocol itself with SPICE_MAX_NUM_STREAMS
> >
> > Signed-off-by: Victor Toso <victortoso at redhat.com>
> > ---
> > common/messages.h | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/common/messages.h b/common/messages.h
> > index b838881..4fc03d4 100644
> > --- a/common/messages.h
> > +++ b/common/messages.h
> > @@ -327,7 +327,7 @@ typedef struct SpiceMsgDisplayInvalOne {
> >
> > typedef struct SpiceMsgDisplayStreamCreate {
> > uint32_t surface_id;
> > - uint32_t id;
> > + uint32_t id; /* Any number from 0 to SPICE_MAX_NUM_STREAMS - 1 */
> > uint32_t flags;
> > uint32_t codec_type;
> > uint64_t stamp;
>
> Was thinking something like
>
> diff --git a/spice.proto b/spice.proto
> index 45c323f..c8a9656 100644
> --- a/spice.proto
> +++ b/spice.proto
> @@ -4,6 +4,11 @@
>
> typedef fixed28_4 int32 @ctype(SPICE_FIXED28_4);
>
> +/* IDs of the video stream messages.
> + * These IDs are in the interval [0, SPICE_MAX_NUM_STREAMS)
> + */
> +typedef stream_id_t uint32;
> +
> struct Point {
> int32 x;
> int32 y;
> @@ -699,7 +704,7 @@ struct String {
> };
>
> struct StreamDataHeader {
> - uint32 id;
> + stream_id_t id;
> uint32 multi_media_time;
> };
>
> @@ -757,7 +762,7 @@ channel DisplayChannel : BaseChannel {
>
> message {
> uint32 surface_id;
> - uint32 id;
> + stream_id_t id;
> stream_flags flags;
> video_codec_type codec_type;
> uint64 stamp;
> @@ -776,12 +781,12 @@ channel DisplayChannel : BaseChannel {
> } stream_data;
>
> message {
> - uint32 id;
> + stream_id_t id;
> Clip clip;
> } stream_clip;
>
> message {
> - uint32 id;
> + stream_id_t id;
> } stream_destroy;
>
> Empty stream_destroy_all;
> @@ -964,7 +969,7 @@ channel DisplayChannel : BaseChannel {
> } draw_composite;
>
> message {
> - uint32 stream_id;
> + stream_id_t stream_id;
> uint32 unique_id;
> uint32 max_window_size;
> uint32 timeout_ms;
> @@ -996,7 +1001,7 @@ channel DisplayChannel : BaseChannel {
> } init = 101;
>
> message {
> - uint32 stream_id;
> + stream_id_t stream_id;
> uint32 unique_id;
> // the mm_time of the first frame included in the report
> uint32 start_frame_mm_time;
>
>
> not sure about typedef naming, we don't use this feature that
> much
Yes, we don't do that much but we could start where it makes
sense, like here.
I did not test this, doesn't it change the marshallers code? If
no drawbacks, I'm all for more explicit types in the protocol.
Thanks,
toso
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20180419/88fd26b6/attachment.sig>
More information about the Spice-devel
mailing list