def stepFrame(self, framerate, frames_offset): """Seeks backwards or forwards the specified amount of frames. This clamps the playhead to the project frames. Args: frames_offsets (int): The number of frames to step. Negative number for stepping backwards. """ try: position = self.getPosition() except PipelineError: self.warning( "Couldn't get position (you're framestepping too quickly), ignoring this request") return cur_frame = int( round(position * framerate.num / float(Gst.SECOND * framerate.denom), 2)) new_frame = cur_frame + frames_offset new_pos = int(new_frame * Gst.SECOND * framerate.denom / framerate.num) + \ int((Gst.SECOND * framerate.denom / framerate.num) / 2) Loggable.info(self, "From frame %d to %d at %f fps, seek to %s s", cur_frame, new_frame, framerate.num / framerate.denom, new_pos / float(Gst.SECOND)) self.simple_seek(new_pos)
def stepFrame(self, framerate, frames_offset): """ Seek backwards or forwards a certain amount of frames (frames_offset). This clamps the playhead to the project frames. """ cur_frame = int(round(self.getPosition() * framerate.num / float(Gst.SECOND * framerate.denom), 2)) new_frame = cur_frame + frames_offset new_pos = long(new_frame * Gst.SECOND * framerate.denom / framerate.num) Loggable.info(self, "From frame %d to %d at %f fps, seek to %s s" % (cur_frame, new_frame, framerate.num / framerate.denom, new_pos / float(Gst.SECOND))) self.simple_seek(new_pos)
def stepFrame(self, framerate, frames_offset): """ Seek backwards or forwards a certain amount of frames (frames_offset). This clamps the playhead to the project frames. """ cur_frame = int( round( self.getPosition() * framerate.num / float(Gst.SECOND * framerate.denom), 2)) new_frame = cur_frame + frames_offset new_pos = long(new_frame * Gst.SECOND * framerate.denom / framerate.num) Loggable.info( self, "From frame %d to %d at %f fps, seek to %s s" % (cur_frame, new_frame, framerate.num / framerate.denom, new_pos / float(Gst.SECOND))) self.simple_seek(new_pos)
def stepFrame(self, framerate, frames_offset): """ Seek backwards or forwards a certain amount of frames (frames_offset). This clamps the playhead to the project frames. """ try: position = self.getPosition() except PipelineError: self.warning("Couldn't get position (you're framestepping too quickly), ignoring this request") return cur_frame = int(round(position * framerate.num / float(Gst.SECOND * framerate.denom), 2)) new_frame = cur_frame + frames_offset new_pos = long(new_frame * Gst.SECOND * framerate.denom / framerate.num) Loggable.info(self, "From frame %d to %d at %f fps, seek to %s s" % (cur_frame, new_frame, framerate.num / framerate.denom, new_pos / float(Gst.SECOND))) self.simple_seek(new_pos)