[FFmpeg-devel] [PATCH] lavfi: remove mp=fixpts filter.

Clément Bœsch ubitux at gmail.com
Fri Nov 9 00:16:49 CET 2012


lavfi/f_setpts.c should allow everything mp=fixpts supports, with a lot
of additional control.
---
 doc/filters.texi                    |   1 -
 libavfilter/Makefile                |   1 -
 libavfilter/libmpcodecs/vf_fixpts.c | 137 ------------------------------------
 libavfilter/version.h               |   2 +-
 libavfilter/vf_mp.c                 |   2 -
 5 files changed, 1 insertion(+), 142 deletions(-)
 delete mode 100644 libavfilter/libmpcodecs/vf_fixpts.c

diff --git a/doc/filters.texi b/doc/filters.texi
index eaf0f42..aa8f9c0 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -2690,7 +2690,6 @@ The list of the currently supported filters follows:
 @item eq2
 @item eq
 @item fil
- at item fixpts
 @item fspp
 @item geq
 @item harddup
diff --git a/libavfilter/Makefile b/libavfilter/Makefile
index 0ab0633..47e8287 100644
--- a/libavfilter/Makefile
+++ b/libavfilter/Makefile
@@ -169,7 +169,6 @@ OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_eq2.o
 OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_eq.o
 OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_fil.o
 #OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_filmdint.o
-OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_fixpts.o
 OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_fspp.o
 OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_geq.o
 OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/vf_harddup.o
diff --git a/libavfilter/libmpcodecs/vf_fixpts.c b/libavfilter/libmpcodecs/vf_fixpts.c
deleted file mode 100644
index ae32b40..0000000
--- a/libavfilter/libmpcodecs/vf_fixpts.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * MPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <inttypes.h>
-
-#include "config.h"
-#include "mp_msg.h"
-#include "help_mp.h"
-
-#include "img_format.h"
-#include "mp_image.h"
-#include "vf.h"
-
-struct vf_priv_s {
-    double current;
-    double step;
-    int autostart;
-    int autostep;
-    unsigned have_step:1;
-    unsigned print:1;
-};
-
-static int put_image(vf_instance_t *vf, mp_image_t *src, double pts)
-{
-    struct vf_priv_s *p = vf->priv;
-
-    if (p->print) {
-        if (pts == MP_NOPTS_VALUE)
-            mp_msg(MSGT_VFILTER, MSGL_INFO, "PTS: undef\n");
-        else
-            mp_msg(MSGT_VFILTER, MSGL_INFO, "PTS: %f\n", pts);
-    }
-    if (pts != MP_NOPTS_VALUE && p->autostart != 0) {
-        p->current = pts;
-        if (p->autostart > 0)
-            p->autostart--;
-    } else if (pts != MP_NOPTS_VALUE && p->autostep > 0) {
-        p->step = pts - p->current;
-        p->current = pts;
-        p->autostep--;
-        p->have_step = 1;
-    } else if (p->have_step) {
-        p->current += p->step;
-        pts = p->current;
-    } else {
-        pts = MP_NOPTS_VALUE;
-    }
-    return vf_next_put_image(vf, src, pts);
-}
-
-static void uninit(vf_instance_t *vf)
-{
-    free(vf->priv);
-}
-
-static int parse_args(struct vf_priv_s *p, const char *args)
-{
-    int pos;
-    double num, denom = 1;
-    int iarg;
-
-    while (*args != 0) {
-        pos = 0;
-        if (sscanf(args, "print%n", &pos) == 0 && pos > 0) {
-            p->print = 1;
-        } else if (sscanf(args, "fps=%lf%n/%lf%n", &num, &pos, &denom, &pos) >=
-                   1 && pos > 0) {
-            p->step = denom / num;
-            p->have_step = 1;
-        } else if (sscanf(args, "start=%lf%n", &num, &pos) >= 1 && pos > 0) {
-            p->current = num;
-        } else if (sscanf(args, "autostart=%d%n", &iarg, &pos) == 1 && pos > 0) {
-            p->autostart = iarg;
-        } else if (sscanf(args, "autofps=%d%n", &iarg, &pos) == 1 && pos > 0) {
-            p->autostep = iarg;
-        } else {
-            mp_msg(MSGT_VFILTER, MSGL_FATAL,
-                   "fixpts: unknown suboption: %s\n", args);
-            return 0;
-        }
-        args += pos;
-        if (*args == ':')
-            args++;
-    }
-    return 1;
-}
-
-static int open(vf_instance_t *vf, char *args)
-{
-    struct vf_priv_s *p;
-    struct vf_priv_s ptmp = {
-        .current = 0,
-        .step = 0,
-        .autostart = 0,
-        .autostep = 0,
-        .have_step = 0,
-        .print = 0,
-    };
-
-    if (!parse_args(&ptmp, args == NULL ? "" : args))
-        return 0;
-
-    vf->put_image = put_image;
-    vf->uninit = uninit;
-    vf->priv = p = malloc(sizeof(struct vf_priv_s));
-    *p = ptmp;
-    p->current = -p->step;
-
-    return 1;
-}
-
-const vf_info_t vf_info_fixpts = {
-    "Fix presentation timestamps",
-    "fixpts",
-    "Nicolas George",
-    "",
-    &open,
-    NULL
-};
diff --git a/libavfilter/version.h b/libavfilter/version.h
index ef53ee8..c7eceeb 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -30,7 +30,7 @@
 
 #define LIBAVFILTER_VERSION_MAJOR  3
 #define LIBAVFILTER_VERSION_MINOR  21
-#define LIBAVFILTER_VERSION_MICRO 106
+#define LIBAVFILTER_VERSION_MICRO 107
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
                                                LIBAVFILTER_VERSION_MINOR, \
diff --git a/libavfilter/vf_mp.c b/libavfilter/vf_mp.c
index 93d27ec..c92e863 100644
--- a/libavfilter/vf_mp.c
+++ b/libavfilter/vf_mp.c
@@ -139,7 +139,6 @@ extern const vf_info_t vf_info_eq;
 extern const vf_info_t vf_info_expand;
 extern const vf_info_t vf_info_fil;
 extern const vf_info_t vf_info_filmdint;
-extern const vf_info_t vf_info_fixpts;
 extern const vf_info_t vf_info_flip;
 extern const vf_info_t vf_info_format;
 extern const vf_info_t vf_info_fspp;
@@ -191,7 +190,6 @@ static const vf_info_t* const filters[]={
     &vf_info_eq,
     &vf_info_fil,
 //    &vf_info_filmdint, cmmx.h vd.h ‘opt_screen_size_x’
-    &vf_info_fixpts,
     &vf_info_fspp,
     &vf_info_geq,
     &vf_info_harddup,
-- 
1.8.0



More information about the ffmpeg-devel mailing list