From 4deaa30d3f9d2b7d4d091596126a42ca7972a927 Mon Sep 17 00:00:00 2001 From: Ali Gholami Rudi Date: Thu, 1 Oct 2009 21:20:03 +0330 Subject: [PATCH] add -j for jumping frames --- fbff.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fbff.c b/fbff.c index 4a0f4af..2cc71e2 100644 --- a/fbff.c +++ b/fbff.c @@ -35,10 +35,12 @@ static int bps; /* bytes per sample */ static int arg; static struct termios termios; static uint64_t pts; +static unsigned long num; static int zoom = 1; static int magnify = 0; static int drop = 0; +static int jump = 0; static void init_streams(void) { @@ -86,7 +88,7 @@ static void decode_video_frame(AVFrame *main_frame, AVPacket *packet) { int fine = 0; avcodec_decode_video2(vcc, main_frame, &fine, packet); - if (fine) { + if (fine && (!jump || !(num++ % jump))) { sws_scale(swsc, main_frame->data, main_frame->linesize, 0, vcc->height, frame->data, frame->linesize); draw_frame(); @@ -301,6 +303,8 @@ static void read_args(int argc, char *argv[]) zoom = atoi(argv[++i]); if (!strcmp(argv[i], "-d")) drop = 1; + if (!strcmp(argv[i], "-j")) + jump = atoi(argv[++i]); i++; } } @@ -308,8 +312,8 @@ static void read_args(int argc, char *argv[]) int main(int argc, char *argv[]) { if (argc < 2) { - printf("usage: %s [-z zoom] [-m magnify] [-d] filename\n", - argv[0]); + printf("usage: %s [-z zoom] [-m magnify] " + "[-j jump] [-d] filename\n", argv[0]); return 1; } read_args(argc, argv); -- 2.11.4.GIT