Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
8c2863b8
Commit
8c2863b8
authored
Jul 17, 2011
by
Stefano Sabatini
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vf_mp: remove cropdetect wrapper
The cropdetect filter is natively integrated into libavfilter.
parent
c7697452
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1 addition
and
206 deletions
+1
-206
filters.texi
doc/filters.texi
+0
-1
Makefile
libavfilter/Makefile
+0
-1
avfilter.h
libavfilter/avfilter.h
+1
-1
vf_cropdetect.c
libavfilter/libmpcodecs/vf_cropdetect.c
+0
-201
vf_mp.c
libavfilter/vf_mp.c
+0
-2
No files found.
doc/filters.texi
View file @
8c2863b8
...
...
@@ -896,7 +896,6 @@ The list of the currently supported filters follows:
@table @var
@item 2xsai
@item blackframe
@item cropdetect
@item decimate
@item delogo
@item denoise3d
...
...
libavfilter/Makefile
View file @
8c2863b8
...
...
@@ -80,7 +80,6 @@ OBJS-$(CONFIG_MP_FILTER) += libmpcodecs/mp_image.o
OBJS-$(CONFIG_MP_FILTER)
+=
libmpcodecs/img_format.o
OBJS-$(CONFIG_MP_FILTER)
+=
libmpcodecs/vf_2xsai.o
OBJS-$(CONFIG_MP_FILTER)
+=
libmpcodecs/vf_blackframe.o
OBJS-$(CONFIG_MP_FILTER)
+=
libmpcodecs/vf_cropdetect.o
OBJS-$(CONFIG_MP_FILTER)
+=
libmpcodecs/vf_decimate.o
OBJS-$(CONFIG_MP_FILTER)
+=
libmpcodecs/vf_delogo.o
OBJS-$(CONFIG_MP_FILTER)
+=
libmpcodecs/vf_denoise3d.o
...
...
libavfilter/avfilter.h
View file @
8c2863b8
...
...
@@ -30,7 +30,7 @@
#define LIBAVFILTER_VERSION_MAJOR 2
#define LIBAVFILTER_VERSION_MINOR 27
#define LIBAVFILTER_VERSION_MICRO
1
#define LIBAVFILTER_VERSION_MICRO
2
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
LIBAVFILTER_VERSION_MINOR, \
...
...
libavfilter/libmpcodecs/vf_cropdetect.c
deleted
100644 → 0
View file @
c7697452
/*
* 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
{
int
x1
,
y1
,
x2
,
y2
;
int
limit
;
int
round
;
int
reset_count
;
int
fno
;
};
static
int
checkline
(
unsigned
char
*
src
,
int
stride
,
int
len
,
int
bpp
){
int
total
=
0
;
int
div
=
len
;
switch
(
bpp
){
case
1
:
while
(
--
len
>=
0
){
total
+=
src
[
0
];
src
+=
stride
;
}
break
;
case
3
:
case
4
:
while
(
--
len
>=
0
){
total
+=
src
[
0
]
+
src
[
1
]
+
src
[
2
];
src
+=
stride
;
}
div
*=
3
;
break
;
}
total
/=
div
;
// printf("total=%d\n",total);
return
total
;
}
//===========================================================================//
static
int
config
(
struct
vf_instance
*
vf
,
int
width
,
int
height
,
int
d_width
,
int
d_height
,
unsigned
int
flags
,
unsigned
int
outfmt
){
vf
->
priv
->
x1
=
width
-
1
;
vf
->
priv
->
y1
=
height
-
1
;
vf
->
priv
->
x2
=
0
;
vf
->
priv
->
y2
=
0
;
vf
->
priv
->
fno
=-
2
;
return
vf_next_config
(
vf
,
width
,
height
,
d_width
,
d_height
,
flags
,
outfmt
);
}
static
int
put_image
(
struct
vf_instance
*
vf
,
mp_image_t
*
mpi
,
double
pts
){
mp_image_t
*
dmpi
;
int
bpp
=
mpi
->
bpp
/
8
;
int
w
,
h
,
x
,
y
,
shrink_by
;
// hope we'll get DR buffer:
dmpi
=
vf_get_image
(
vf
->
next
,
mpi
->
imgfmt
,
MP_IMGTYPE_EXPORT
,
0
,
mpi
->
w
,
mpi
->
h
);
dmpi
->
planes
[
0
]
=
mpi
->
planes
[
0
];
dmpi
->
planes
[
1
]
=
mpi
->
planes
[
1
];
dmpi
->
planes
[
2
]
=
mpi
->
planes
[
2
];
dmpi
->
stride
[
0
]
=
mpi
->
stride
[
0
];
dmpi
->
stride
[
1
]
=
mpi
->
stride
[
1
];
dmpi
->
stride
[
2
]
=
mpi
->
stride
[
2
];
dmpi
->
width
=
mpi
->
width
;
dmpi
->
height
=
mpi
->
height
;
if
(
++
vf
->
priv
->
fno
>
0
){
// ignore first 2 frames - they may be empty
// Reset the crop area every reset_count frames, if reset_count is > 0
if
(
vf
->
priv
->
reset_count
>
0
&&
vf
->
priv
->
fno
>
vf
->
priv
->
reset_count
){
vf
->
priv
->
x1
=
mpi
->
w
-
1
;
vf
->
priv
->
y1
=
mpi
->
h
-
1
;
vf
->
priv
->
x2
=
0
;
vf
->
priv
->
y2
=
0
;
vf
->
priv
->
fno
=
1
;
}
for
(
y
=
0
;
y
<
vf
->
priv
->
y1
;
y
++
){
if
(
checkline
(
mpi
->
planes
[
0
]
+
mpi
->
stride
[
0
]
*
y
,
bpp
,
mpi
->
w
,
bpp
)
>
vf
->
priv
->
limit
){
vf
->
priv
->
y1
=
y
;
break
;
}
}
for
(
y
=
mpi
->
h
-
1
;
y
>
vf
->
priv
->
y2
;
y
--
){
if
(
checkline
(
mpi
->
planes
[
0
]
+
mpi
->
stride
[
0
]
*
y
,
bpp
,
mpi
->
w
,
bpp
)
>
vf
->
priv
->
limit
){
vf
->
priv
->
y2
=
y
;
break
;
}
}
for
(
y
=
0
;
y
<
vf
->
priv
->
x1
;
y
++
){
if
(
checkline
(
mpi
->
planes
[
0
]
+
bpp
*
y
,
mpi
->
stride
[
0
],
mpi
->
h
,
bpp
)
>
vf
->
priv
->
limit
){
vf
->
priv
->
x1
=
y
;
break
;
}
}
for
(
y
=
mpi
->
w
-
1
;
y
>
vf
->
priv
->
x2
;
y
--
){
if
(
checkline
(
mpi
->
planes
[
0
]
+
bpp
*
y
,
mpi
->
stride
[
0
],
mpi
->
h
,
bpp
)
>
vf
->
priv
->
limit
){
vf
->
priv
->
x2
=
y
;
break
;
}
}
// round x and y (up), important for yuv colorspaces
// make sure they stay rounded!
x
=
(
vf
->
priv
->
x1
+
1
)
&
(
~
1
);
y
=
(
vf
->
priv
->
y1
+
1
)
&
(
~
1
);
w
=
vf
->
priv
->
x2
-
x
+
1
;
h
=
vf
->
priv
->
y2
-
y
+
1
;
// w and h must be divisible by 2 as well because of yuv
// colorspace problems.
if
(
vf
->
priv
->
round
<=
1
)
vf
->
priv
->
round
=
16
;
if
(
vf
->
priv
->
round
%
2
)
vf
->
priv
->
round
*=
2
;
shrink_by
=
w
%
vf
->
priv
->
round
;
w
-=
shrink_by
;
x
+=
(
shrink_by
/
2
+
1
)
&
~
1
;
shrink_by
=
h
%
vf
->
priv
->
round
;
h
-=
shrink_by
;
y
+=
(
shrink_by
/
2
+
1
)
&
~
1
;
mp_msg
(
MSGT_VFILTER
,
MSGL_INFO
,
MSGTR_MPCODECS_CropArea
,
vf
->
priv
->
x1
,
vf
->
priv
->
x2
,
vf
->
priv
->
y1
,
vf
->
priv
->
y2
,
w
,
h
,
x
,
y
);
}
return
vf_next_put_image
(
vf
,
dmpi
,
pts
);
}
static
int
query_format
(
struct
vf_instance
*
vf
,
unsigned
int
fmt
)
{
switch
(
fmt
)
{
// the default limit value works only right with YV12 right now.
case
IMGFMT_YV12
:
return
vf_next_query_format
(
vf
,
fmt
);
}
return
0
;
}
//===========================================================================//
static
int
vf_open
(
vf_instance_t
*
vf
,
char
*
args
){
vf
->
config
=
config
;
vf
->
put_image
=
put_image
;
vf
->
query_format
=
query_format
;
vf
->
priv
=
malloc
(
sizeof
(
struct
vf_priv_s
));
vf
->
priv
->
limit
=
24
;
// should be option
vf
->
priv
->
round
=
0
;
vf
->
priv
->
reset_count
=
0
;
if
(
args
)
sscanf
(
args
,
"%d:%d:%d"
,
&
vf
->
priv
->
limit
,
&
vf
->
priv
->
round
,
&
vf
->
priv
->
reset_count
);
return
1
;
}
const
vf_info_t
vf_info_cropdetect
=
{
"autodetect crop size"
,
"cropdetect"
,
"A'rpi"
,
""
,
vf_open
,
NULL
};
//===========================================================================//
libavfilter/vf_mp.c
View file @
8c2863b8
...
...
@@ -136,7 +136,6 @@ extern const vf_info_t vf_info_palette;
extern
const
vf_info_t
vf_info_lavc
;
extern
const
vf_info_t
vf_info_zrmjpeg
;
extern
const
vf_info_t
vf_info_dvbscale
;
extern
const
vf_info_t
vf_info_cropdetect
;
extern
const
vf_info_t
vf_info_test
;
extern
const
vf_info_t
vf_info_noise
;
extern
const
vf_info_t
vf_info_yvu9
;
...
...
@@ -200,7 +199,6 @@ extern const vf_info_t vf_info_stereo3d;
static
const
vf_info_t
*
const
filters
[]
=
{
&
vf_info_2xsai
,
&
vf_info_blackframe
,
&
vf_info_cropdetect
,
&
vf_info_decimate
,
&
vf_info_delogo
,
&
vf_info_denoise3d
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment