Vuo  2.4.0
VuoVideoFrame.c
Go to the documentation of this file.
1
10#include "type.h"
11#include "VuoVideoFrame.h"
12
14#ifdef VUO_COMPILER
16 "title" : "Video Frame",
17 "description" : "An image and timestamp for a single frame of video.",
18 "keywords" : [ ],
19 "version" : "1.0.0",
20 "dependencies" : [
21 "VuoImage",
22 "VuoReal"
23 ]
24 });
25#endif
27
40{
41 return (VuoVideoFrame){
42 VuoJson_getObjectValue(VuoImage, js, "image", NULL),
43 VuoJson_getObjectValue(VuoReal, js, "timestamp", 0),
44 VuoJson_getObjectValue(VuoReal, js, "duration", 0),
45 };
46}
47
52{
53 json_object *js = json_object_new_object();
54
55 json_object *imageObject = isInterprocess
56 ? VuoImage_getInterprocessJson(value.image)
57 : VuoImage_getJson(value.image);
58 json_object_object_add(js, "image", imageObject);
59
60 json_object *timestampObject = VuoReal_getJson(value.timestamp);
61 json_object_object_add(js, "timestamp", timestampObject);
62
63 json_object *durationObject = VuoReal_getJson(value.duration);
64 json_object_object_add(js, "duration", durationObject);
65
66 return js;
67}
68
73{
74 return VuoVideoFrame_getJsonInternal(value, false);
75}
76
81{
82 return VuoVideoFrame_getJsonInternal(value, true);
83}
84
89{
90 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);
91}
92
97{
98 // Maybe this should just check image?
99 return VuoReal_areEqual(value1.timestamp, value2.timestamp)
100 && VuoReal_areEqual(value1.duration, value2.duration)
101 && VuoImage_areEqual(value1.image, value2.image);
102}
103
109{
110 VuoType_returnInequality(VuoReal, a.timestamp, b.timestamp);
111 VuoType_returnInequality(VuoReal, a.duration, b.duration);
112 VuoType_returnInequality(VuoImage, a.image, b.image);
113 return false;
114}