udpsrc: optimize GstUdpSrc object for cache performance

Optimize GstUdpSrc for cache performance.

Move the hot properties, which are used by the read function, to the top:
@used_socket, @addr, @cancellable, @skip_first_bytes, @timeout,
@retrieve_sender_address.

Remove the unused property @ttl.

Where needed reorder so that holes are avoided (the 64-bit @timeout)

https://bugzilla.gnome.org/show_bug.cgi?id=772841
This commit is contained in:
Petr Kulhavy 2016-11-15 09:39:31 +01:00 committed by Nicolas Dufresne
parent 850e678813
commit 589019d8f5

View file

@ -47,32 +47,32 @@ typedef struct _GstUDPSrcClass GstUDPSrcClass;
struct _GstUDPSrc { struct _GstUDPSrc {
GstPushSrc parent; GstPushSrc parent;
/* our sockets */
GSocket *used_socket; /* hot */
GInetSocketAddress *addr; /* hot */
GCancellable *cancellable; /* hot */
/* properties */ /* properties */
gint skip_first_bytes; /* hot */
guint64 timeout; /* hot */
gboolean retrieve_sender_address; /* hot */
gchar *address; gchar *address;
gint port; gint port;
gchar *multi_iface; gchar *multi_iface;
gint ttl;
GstCaps *caps; GstCaps *caps;
gint buffer_size; gint buffer_size;
guint64 timeout;
gint skip_first_bytes;
GSocket *socket; GSocket *socket;
gboolean close_socket; gboolean close_socket;
gboolean auto_multicast; gboolean auto_multicast;
gboolean reuse; gboolean reuse;
gboolean loop; gboolean loop;
gboolean retrieve_sender_address;
/* stats */ /* stats */
guint max_size; guint max_size;
/* our sockets */
GSocket *used_socket;
GInetSocketAddress *addr;
gboolean external_socket; gboolean external_socket;
gboolean made_cancel_fd; gboolean made_cancel_fd;
GCancellable *cancellable;
/* memory management */ /* memory management */
GstAllocator *allocator; GstAllocator *allocator;