Ocean
Loading...
Searching...
No Matches
IIOImage.h
Go to the documentation of this file.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#ifndef META_OCEAN_MEDIA_IMAGEIO_IIO_IMAGE_H
9#define META_OCEAN_MEDIA_IMAGEIO_IIO_IMAGE_H
10
13
14#include "ocean/media/Image.h"
15
16namespace Ocean
17{
18
19namespace Media
20{
21
22namespace ImageIO
23{
24
25/**
26 * This class implements an image class for ImageIO.
27 * @ingroup mediaiio
28 */
29class OCEAN_MEDIA_IIO_EXPORT IIOImage :
30 virtual public IIOObject,
31 virtual public Image
32{
33 friend class IIOLibrary;
34
35 public:
36
37 /**
38 * Returns whether the medium is started currently.
39 * @see Medium::isStarted().
40 */
41 bool isStarted() const override;
42
43 /**
44 * Returns the start timestamp.
45 * @see FiniteMedium::startTimestamp().
46 */
47 Timestamp startTimestamp() const override;
48
49 /**
50 * Returns the pause timestamp.
51 * @see FiniteMedium::pauseTimestamp().
52 */
53 Timestamp pauseTimestamp() const override;
54
55 /**
56 * Returns the stop timestamp.
57 * @see FiniteMedium::stopTimestamp().
58 */
59 Timestamp stopTimestamp() const override;
60
61 /**
62 * Clones this medium and returns a new independent instance of this medium.
63 * @see Medium::clone().
64 */
65 MediumRef clone() const override;
66
67 protected:
68
69 /**
70 * Creates a new medium by a given url.
71 * @param url Url of the medium
72 */
73 explicit IIOImage(const std::string& url);
74
75 /**
76 * Destructs an image object.
77 */
78 ~IIOImage() override;
79
80 /**
81 * Starts the medium.
82 * @see Medium::start().
83 */
84 bool start() override;
85
86 /**
87 * Pauses the medium.
88 * @see Medium::pause():
89 */
90 bool pause() override;
91
92 /**
93 * Stops the medium.
94 * @see Medium::stop().
95 */
96 bool stop() override;
97
98 /**
99 * Sets the preferred frame pixel format.
100 * @see FrameMedium::setPreferredFramePixelFormat().
101 */
103
104 protected:
105
106 /**
107 * (Re-)loads the image.
108 * @return True, if succeeded
109 */
110 bool loadImage();
111
112 /**
113 * Releases the image.
114 */
115 void release();
116
117 protected:
118
119 /// Recent frame type.
121
122 /// Start timestamp.
124
125 /// Pause timestamp.
127
128 /// Stop timestamp.
130
131 /// Determining whether this image is 'started' and holds valid image data.
133};
134
135}
136
137}
138
139}
140
141#endif // META_OCEAN_MEDIA_IMAGEIO_IIO_IMAGE_H
Definition of a frame type composed by the frame dimension, pixel format and pixel origin.
Definition Frame.h:30
PixelFormat
Definition of all pixel formats available in the Ocean framework.
Definition Frame.h:183
This class implements an image class for ImageIO.
Definition IIOImage.h:32
void release()
Releases the image.
MediumRef clone() const override
Clones this medium and returns a new independent instance of this medium.
bool stop() override
Stops the medium.
IIOImage(const std::string &url)
Creates a new medium by a given url.
Timestamp startTimestamp() const override
Returns the start timestamp.
Timestamp pauseTimestamp_
Pause timestamp.
Definition IIOImage.h:126
bool started_
Determining whether this image is 'started' and holds valid image data.
Definition IIOImage.h:132
FrameType recentFrameType_
Recent frame type.
Definition IIOImage.h:120
Timestamp pauseTimestamp() const override
Returns the pause timestamp.
bool loadImage()
(Re-)loads the image.
bool isStarted() const override
Returns whether the medium is started currently.
~IIOImage() override
Destructs an image object.
Timestamp stopTimestamp_
Stop timestamp.
Definition IIOImage.h:129
bool start() override
Starts the medium.
bool setPreferredFramePixelFormat(const FrameType::PixelFormat format) override
Sets the preferred frame pixel format.
bool pause() override
Pauses the medium.
Timestamp startTimestamp_
Start timestamp.
Definition IIOImage.h:123
Timestamp stopTimestamp() const override
Returns the stop timestamp.
This class implements the ImageIO library.
Definition IIOLibrary.h:30
This class is the base class for all object inside this library.
Definition IIOObject.h:35
This class implements read, write, decocde, and encode functions for all file formats supported by th...
Definition media/imageio/Image.h:57
This class implements a timestamp.
Definition Timestamp.h:64
The namespace covering the entire Ocean framework.
Definition Accessor.h:15