+
+ if (tas_skip != 0) {
+ if (tas_skip >= frame_count || tas_skip <= -frame_count) {
+ printf("skip out of range: %d/%d\n", tas_skip, frame_count);
+ return 1;
+ }
+ if (tas_skip > 0) {
+ frame_count -= tas_skip;
+ memmove(&gmv->data[0], &gmv->data[tas_skip],
+ sizeof(gmv->data[0]) * frame_count);
+ }
+ else {
+ gmv = realloc(gmv, sizeof(*gmv)
+ + (frame_count - tas_skip) * sizeof(gmv->data[0]));
+ if (gmv == NULL) {
+ fprintf(stderr, "OOM?\n");
+ return 1;
+ }
+ memmove(&gmv->data[-tas_skip], &gmv->data[0],
+ sizeof(gmv->data[0]) * frame_count);
+ memset(&gmv->data[0], 0xff, sizeof(gmv->data[0]) * -tas_skip);
+ frame_count -= tas_skip;
+ }
+ }