def loadvideo_test_decord()

in src/transformers/data/datasets/kinetics_datasets.py [0:0]


    def loadvideo_test_decord(self, sample):
        fname = '{}'.format(self.video_dir) + sample

        if not (os.path.exists(fname)):
            print("Video not found: ", fname)
            return []

        # avoid hanging issue
        if os.path.getsize(fname) < 1 * 1024:
            print('SKIP: ', fname, " - ", os.path.getsize(fname))
            return []

        try:
            vr = VideoReader(fname, ctx=cpu(0))
        except:
            print("Video cannot be loaded by decord: ", fname)
            return []

        converted_len = int(self.clip_len * self.frame_sample_rate)
        num_frames = len(vr)
        if num_frames < converted_len:
            indices = np.zeros((self.test_num_segment,))
        else:
            tick = (num_frames - converted_len + 1) / float(self.test_num_segment)
            indices = np.array([int(tick * x) for x in range(self.test_num_segment)])

        frame_id_list = []
        for seg_ind in indices:
            offset = int(seg_ind)
            for i, _ in enumerate(range(0, converted_len, self.frame_sample_rate)):
                frame_id = offset
                frame_id_list.append(frame_id)
                if offset + self.frame_sample_rate < num_frames:
                    offset += self.frame_sample_rate
        video_data = vr.get_batch(frame_id_list).asnumpy()
        buffer = [video_data[vid, :, :, :] for vid, _ in enumerate(frame_id_list)]
        return buffer