mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-29 17:07:15 +00:00
worker: move stream_clip_item_unref()
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
This commit is contained in:
parent
f06ce6c1c4
commit
ff070be68f
@ -192,16 +192,6 @@ static void red_create_surface(DisplayChannel *display, uint32_t surface_id, uin
|
||||
uint32_t height, int32_t stride, uint32_t format,
|
||||
void *line_0, int data_is_valid, int send_client);
|
||||
|
||||
static void display_stream_clip_unref(DisplayChannel *display, StreamClipItem *item)
|
||||
{
|
||||
if (--item->refs != 0)
|
||||
return;
|
||||
|
||||
stream_agent_unref(display, item->stream_agent);
|
||||
free(item->rects);
|
||||
free(item);
|
||||
}
|
||||
|
||||
void attach_stream(DisplayChannel *display, Drawable *drawable, Stream *stream)
|
||||
{
|
||||
DisplayChannelClient *dcc;
|
||||
@ -5477,7 +5467,7 @@ static void display_channel_client_release_item_after_push(DisplayChannelClient
|
||||
drawable_pipe_item_unref(SPICE_CONTAINEROF(item, DrawablePipeItem, dpi_pipe_item));
|
||||
break;
|
||||
case PIPE_ITEM_TYPE_STREAM_CLIP:
|
||||
display_stream_clip_unref(display, (StreamClipItem *)item);
|
||||
stream_clip_item_unref(dcc, (StreamClipItem *)item);
|
||||
break;
|
||||
case PIPE_ITEM_TYPE_UPGRADE:
|
||||
upgrade_item_unref(display, (UpgradeItem *)item);
|
||||
@ -5520,7 +5510,7 @@ static void display_channel_client_release_item_before_push(DisplayChannelClient
|
||||
break;
|
||||
}
|
||||
case PIPE_ITEM_TYPE_STREAM_CLIP:
|
||||
display_stream_clip_unref(display, (StreamClipItem *)item);
|
||||
stream_clip_item_unref(dcc, (StreamClipItem *)item);
|
||||
break;
|
||||
case PIPE_ITEM_TYPE_STREAM_DESTROY: {
|
||||
StreamAgent *agent = SPICE_CONTAINEROF(item, StreamAgent, destroy_item);
|
||||
|
||||
@ -145,6 +145,18 @@ StreamClipItem *stream_clip_item_new(DisplayChannelClient* dcc, StreamAgent *age
|
||||
return item;
|
||||
}
|
||||
|
||||
void stream_clip_item_unref(DisplayChannelClient *dcc, StreamClipItem *item)
|
||||
{
|
||||
DisplayChannel *display = DCC_TO_DC(dcc);
|
||||
|
||||
if (--item->refs != 0)
|
||||
return;
|
||||
|
||||
stream_agent_unref(display, item->stream_agent);
|
||||
free(item->rects);
|
||||
free(item);
|
||||
}
|
||||
|
||||
static int is_stream_start(Drawable *drawable)
|
||||
{
|
||||
return ((drawable->frames_count >= RED_STREAM_FRAMES_START_CONDITION) &&
|
||||
|
||||
@ -107,8 +107,10 @@ typedef struct StreamClipItem {
|
||||
SpiceClipRects *rects;
|
||||
} StreamClipItem;
|
||||
|
||||
StreamClipItem *stream_clip_item_new(DisplayChannelClient* dcc,
|
||||
StreamAgent *agent);
|
||||
StreamClipItem * stream_clip_item_new (DisplayChannelClient* dcc,
|
||||
StreamAgent *agent);
|
||||
void stream_clip_item_unref (DisplayChannelClient *dcc,
|
||||
StreamClipItem *item);
|
||||
|
||||
typedef struct ItemTrace {
|
||||
red_time_t time;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user