22 #ifndef DATASET_FRAMES_H_
23 #define DATASET_FRAMES_H_
30 #include <nlohmann/json.hpp>
44 uint16_t
year = 2021 )
57 return nlohmann::json{
91 std::vector<VideoFrame>::iterator
_begin;
92 std::vector<VideoFrame>::iterator
_end;
95 FrameRange(std::vector<VideoFrame>::iterator b, std::vector<VideoFrame>::iterator e) :
_begin(b),
_end(e) {}
111 std::vector<VideoFrame>::const_iterator
begin()
const {
return _begin; }
114 std::vector<VideoFrame>::const_iterator
end()
const {
return _end; }
115 std::vector<VideoFrame>::iterator
end() {
return _end; }
122 std::vector<VideoFramePointer>::const_iterator
_begin;
123 std::vector<VideoFramePointer>::const_iterator
_end;
129 std::vector<VideoFramePointer>::const_iterator e)
134 for (
auto iter =
begin(); iter !=
end(); iter++) std::cout << (*iter)->frame_ID << std::endl;
157 std::vector<VideoFramePointer>::const_iterator
begin()
const {
return _begin; }
159 std::vector<VideoFramePointer>::const_iterator
end()
const {
return _end; }
176 std::vector<VideoFrame>::iterator
end() {
return _frames.end(); };
179 std::vector<VideoFrame>::const_iterator
end()
const {
return _frames.end(); };
180 std::vector<VideoFrame>::const_iterator
begin()
const {
return _frames.begin(); };
197 if (img_ID >=
_frames.size()) {
218 auto from_it = video_range.begin();
219 auto to_it = video_range.end();
224 while (from_it->frame_number < frame_num_from) {
229 while (to_it->frame_number > frame_num_to) {
238 std::vector<VideoFramePointer>
ids_to_video_frame(
const std::vector<FrameId>& ids)
const;
Definition: dataset-frames.h:162
std::vector< VideoFrame >::const_iterator get_frame_it(FrameId i) const
Definition: dataset-frames.h:192
FrameRange get_all_video_frames(VideoId video_ID) const
Return copy of FrameRange representing all selected frames from the given video.
Definition: dataset-frames.h:208
static std::vector< VideoFramePointer > range_to_video_frame(const FrameRange &ids)
Definition: dataset-frames.cpp:233
std::vector< VideoFrame >::iterator end()
Definition: dataset-frames.h:176
DatasetFrames(const Settings &config)
Definition: dataset-frames.cpp:76
std::string operator[](FrameId i) const
Definition: dataset-frames.h:174
VideoId get_video_id(FrameId img_ID) const
Definition: dataset-frames.h:196
std::string thumbs_dir
Definition: dataset-frames.h:168
const VideoFrame & get_frame(FrameId i) const
Definition: dataset-frames.h:186
size_t get_num_videos() const
Definition: dataset-frames.h:182
std::vector< VideoFrame >::iterator begin()
Definition: dataset-frames.h:177
VideoFrame parse_video_filename(std::string &&filename)
From filename string it parses useful info as video/shot/frame ID etc.
Definition: dataset-frames.cpp:185
std::string frames_dir
Definition: dataset-frames.h:167
size_t size() const
Definition: dataset-frames.h:194
std::vector< VideoFrame >::const_iterator end() const
Definition: dataset-frames.h:179
std::vector< VideoFramePointer > ids_to_video_frame(const std::vector< FrameId > &ids) const
Translation to VideoFrameRefs from vector ids or FrameRange.
Definition: dataset-frames.cpp:218
VideoFrame * get_frame_ptr(FrameId i)
Definition: dataset-frames.h:188
DatasetsSettings::VideoFilenameOffsets offs
Definition: dataset-frames.h:169
std::vector< VideoFrame >::const_iterator begin() const
Definition: dataset-frames.h:180
static std::vector< std::vector< KeywordId > > parse_top_kws_for_imgs_text_file(const std::string &filepath)
Parses a text file with lists of top keywords for given image ID.
Definition: dataset-frames.cpp:31
std::vector< VideoFrame > _frames
Definition: dataset-frames.h:165
std::vector< FrameRange > _video_ID_to_frame_range
Map from video ID to range of image IDs.
Definition: dataset-frames.h:164
const VideoFrame * get_frame_ptr(FrameId i) const
Definition: dataset-frames.h:190
FrameRange get_shot_frames(VideoId video_ID, size_t frame_num_from, size_t frame_num_to) const
Returns new instance of FrameRange representing all frames from prvided video ID in interval [frame_n...
Definition: dataset-frames.h:214
FiltersData parse_metadata_line(const std::string &line)
Parses the desired metadata from the metadata line.
Definition: dataset-frames.cpp:199
VideoFrame & get_frame(FrameId i)
Definition: dataset-frames.h:184
Represents CONTINOUS range of const frame pointers.
Definition: dataset-frames.h:121
std::vector< VideoFramePointer >::const_iterator end() const
Definition: dataset-frames.h:159
const VideoFramePointer & operator[](size_t idx)
Definition: dataset-frames.h:152
std::vector< VideoFramePointer >::const_iterator _begin
Definition: dataset-frames.h:122
std::vector< VideoFramePointer >::const_iterator _end
Definition: dataset-frames.h:123
FramePointerRange(std::vector< VideoFramePointer >::const_iterator b, std::vector< VideoFramePointer >::const_iterator e)
Definition: dataset-frames.h:128
size_t size() const
Definition: dataset-frames.h:143
const VideoFramePointer & operator[](size_t idx) const
Returns VideoFramePointer reference to the frame with given index in this frame range.
Definition: dataset-frames.h:148
std::vector< VideoFramePointer >::const_iterator begin() const
Definition: dataset-frames.h:157
bool _valid
Definition: dataset-frames.h:124
FramePointerRange(const std::vector< VideoFramePointer > &v)
Definition: dataset-frames.h:131
bool valid() const
Returns true iff FramePointerRange contains valid range at the time.
Definition: dataset-frames.h:141
FramePointerRange()=default
void print_display()
Definition: dataset-frames.h:133
#define VIDEO_ID_ERR_VAL
Definition: common-types.h:94
Definition: common-types.h:33
unsigned VideoId
Definition: common-types.h:71
uint8_t Hour
Definition: common-types.h:243
uint16_t Year
Definition: common-types.h:244
uint8_t Weekday
Definition: common-types.h:242
unsigned ShotId
Definition: common-types.h:73
unsigned long FrameId
Definition: common-types.h:75
Definition: settings.h:141
Definition: common-types.h:247
Represents CONTINOUS range of frames.
Definition: dataset-frames.h:90
std::vector< VideoFrame >::const_iterator begin() const
Definition: dataset-frames.h:111
std::vector< VideoFrame >::iterator _begin
Definition: dataset-frames.h:91
std::vector< VideoFrame >::iterator begin()
Definition: dataset-frames.h:112
std::vector< VideoFrame >::const_iterator end() const
Definition: dataset-frames.h:114
std::vector< VideoFrame >::iterator end()
Definition: dataset-frames.h:115
FrameRange(std::vector< VideoFrame >::iterator b, std::vector< VideoFrame >::iterator e)
Definition: dataset-frames.h:95
std::vector< VideoFrame >::iterator _end
Definition: dataset-frames.h:92
size_t size() const
Definition: dataset-frames.h:97
const VideoFrame & operator[](size_t idx) const
Returns VideoFrame reference to the frame with given index in this frame range.
Definition: dataset-frames.h:102
VideoFrame & operator[](size_t idx)
Definition: dataset-frames.h:106
Parsed current config of the core.
Definition: settings.h:190
Definition: dataset-frames.h:40
FrameId frame_ID
Definition: dataset-frames.h:71
Weekday weekday
Day in a week (mon -> 0, ..., sun -> 7).
Definition: dataset-frames.h:78
ShotId shot_ID
Definition: dataset-frames.h:69
std::string filename
Definition: dataset-frames.h:67
FrameId frame_number
Definition: dataset-frames.h:70
Hour hour
In interval [0, 23].
Definition: dataset-frames.h:81
nlohmann::json to_JSON() const
Definition: dataset-frames.h:55
VideoFrame(std::string &&filename, VideoId video_ID, ShotId shot_ID, FrameId frame_number, FrameId image_ID, uint8_t weekday=0, uint8_t hour=0, uint16_t year=2021)
Definition: dataset-frames.h:42
VideoId video_ID
Definition: dataset-frames.h:68
std::string LSC_id
Original filename without the suffix.
Definition: dataset-frames.h:75
Year year
Year interval.
Definition: dataset-frames.h:84