Vuo 2.4.4
Loading...
Searching...
No Matches
VuoVideoFrame.c
Go to the documentation of this file.
1
10#include "VuoVideoFrame.h"
11
13#ifdef VUO_COMPILER
15 "title" : "Video Frame",
16 "description" : "An image and timestamp for a single frame of video.",
17 "keywords" : [ ],
18 "version" : "1.0.0",
19 "dependencies" : [
20 "VuoImage",
21 "VuoReal"
22 ]
23 });
24#endif
26
39{
40 return (VuoVideoFrame){
41 VuoJson_getObjectValue(VuoImage, js, "image", NULL),
42 VuoJson_getObjectValue(VuoReal, js, "timestamp", 0),
43 VuoJson_getObjectValue(VuoReal, js, "duration", 0),
44 };
45}
46
50json_object *VuoVideoFrame_getJsonInternal(const VuoVideoFrame value, bool isInterprocess)
51{
52 json_object *js = json_object_new_object();
53
54 json_object *imageObject = isInterprocess
55 ? VuoImage_getInterprocessJson(value.image)
56 : VuoImage_getJson(value.image);
57 json_object_object_add(js, "image", imageObject);
58
59 json_object *timestampObject = VuoReal_getJson(value.timestamp);
60 json_object_object_add(js, "timestamp", timestampObject);
61
62 json_object *durationObject = VuoReal_getJson(value.duration);
63 json_object_object_add(js, "duration", durationObject);
64
65 return js;
66}
67
71json_object * VuoVideoFrame_getJson(const VuoVideoFrame value)
72{
73 return VuoVideoFrame_getJsonInternal(value, false);
74}
75
80{
81 return VuoVideoFrame_getJsonInternal(value, true);
82}
83
88{
89 return VuoText_format("%s<br />Timestamp: <tt>%.3f</tt> seconds<br />Frame duration: <tt>%.3f</tt> seconds", VuoImage_getSummary(value.image), value.timestamp, value.duration);
90}
91
96{
97 // Maybe this should just check image?
98 return VuoReal_areEqual(value1.timestamp, value2.timestamp)
99 && VuoReal_areEqual(value1.duration, value2.duration)
100 && VuoImage_areEqual(value1.image, value2.image);
101}
102
108{
109 VuoType_returnInequality(VuoReal, a.timestamp, b.timestamp);
110 VuoType_returnInequality(VuoReal, a.duration, b.duration);
111 VuoType_returnInequality(VuoImage, a.image, b.image);
112 return false;
113}