summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2011-06-18 07:02:20 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-07-27 17:53:31 -0300
commit2151bdc887acfd6dc2c931b4d3c01f95e30b7df8 (patch)
tree429683c0f6de68971d74fa379cf1dcfe4540c5a3 /include
parentf1e393de382af9b9bd2462a42bfa16b8c501d81b (diff)
downloadlinux-2151bdc887acfd6dc2c931b4d3c01f95e30b7df8.tar.gz
linux-2151bdc887acfd6dc2c931b4d3c01f95e30b7df8.tar.bz2
linux-2151bdc887acfd6dc2c931b4d3c01f95e30b7df8.zip
[media] v4l2-event: add optional merge and replace callbacks
When the event queue for a subscribed event is full, then the oldest event is dropped. It would be nice if the contents of that oldest event could be merged with the next-oldest. That way no information is lost, only intermediate steps are lost. This patch adds optional replace() (called when only one kevent was allocated) and merge() (called when more than one kevent was allocated) callbacks that will be called to do this job. These two callbacks are implemented for the V4L2_EVENT_CTRL event. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/media/v4l2-event.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/media/v4l2-event.h b/include/media/v4l2-event.h
index 8d681e5ca552..6da793fa4d34 100644
--- a/include/media/v4l2-event.h
+++ b/include/media/v4l2-event.h
@@ -55,6 +55,12 @@ struct v4l2_subscribed_event {
struct v4l2_fh *fh;
/* list node that hooks into the object's event list (if there is one) */
struct list_head node;
+ /* Optional callback that can replace event 'old' with event 'new'. */
+ void (*replace)(struct v4l2_event *old,
+ const struct v4l2_event *new);
+ /* Optional callback that can merge event 'old' into event 'new'. */
+ void (*merge)(const struct v4l2_event *old,
+ struct v4l2_event *new);
/* the number of elements in the events array */
unsigned elems;
/* the index of the events containing the oldest available event */