A video has: multiple files multiple instances multiple keyframes
| 5 | |
| 6 | |
| 7 | class Video(Base): |
| 8 | """ |
| 9 | A video has: |
| 10 | multiple files |
| 11 | multiple instances |
| 12 | multiple keyframes |
| 13 | |
| 14 | """ |
| 15 | __tablename__ = 'video' |
| 16 | id = Column(Integer, primary_key = True) |
| 17 | |
| 18 | # TODO confirm this is deprecated!!! |
| 19 | keyframe_list = Column(MutableDict.as_mutable(JSONEncodedDict), |
| 20 | default = {}) |
| 21 | # TODO is this deprecated? ### |
| 22 | label_id_map_to_instance_group_id = Column(MutableDict.as_mutable(JSONEncodedDict), |
| 23 | default = {}) |
| 24 | #### |
| 25 | |
| 26 | root_blob_path_to_frames = Column(String()) |
| 27 | |
| 28 | url_signed_expiry = Column(Integer) |
| 29 | file_signed_url = Column(String()) |
| 30 | file_blob_path = Column(String()) |
| 31 | |
| 32 | preview_image_url_thumb = Column(String()) |
| 33 | preview_image_id = Column(Integer, ForeignKey('image.id')) |
| 34 | preview_image = relationship("Image") |
| 35 | |
| 36 | width = Column(Integer) |
| 37 | height = Column(Integer) |
| 38 | |
| 39 | soft_delete = Column(Boolean, default = False) |
| 40 | filename = Column(String()) |
| 41 | |
| 42 | # frame_number is 0 indexed while frame_count is not? |
| 43 | # ie last frame number == 68 and frame_count == 69 == ok |
| 44 | frame_count = Column(Integer) |
| 45 | |
| 46 | description = Column(String()) |
| 47 | |
| 48 | created_time = Column(DateTime, default = datetime.datetime.utcnow) |
| 49 | last_updated_time = Column(DateTime) |
| 50 | |
| 51 | status = Column(String(), default = "init") |
| 52 | |
| 53 | frame_rate = Column(Integer) # Actual FPS |
| 54 | original_fps = Column(Integer) |
| 55 | fps_conversion_ratio = Column(Float, default = 1) |
| 56 | |
| 57 | offset_in_seconds = Column(Integer) |
| 58 | parent_video_split_duration = Column(Integer()) |
| 59 | |
| 60 | def get_by_id(session, id): |
| 61 | return session.query(Video).filter( |
| 62 | Video.id == id).first() |
| 63 | |
| 64 | def regenerate_url( |
no outgoing calls
no test coverage detected