Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
beeb932d
Commit
beeb932d
authored
Aug 13, 2013
by
Roman Donchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Boring changes - highgui.
parent
254d4ae4
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
49 additions
and
49 deletions
+49
-49
highgui.hpp
modules/highgui/include/opencv2/highgui.hpp
+2
-2
cap.cpp
modules/highgui/src/cap.cpp
+5
-5
grfmt_bmp.cpp
modules/highgui/src/grfmt_bmp.cpp
+2
-2
grfmt_exr.cpp
modules/highgui/src/grfmt_exr.cpp
+2
-2
grfmt_jpeg.cpp
modules/highgui/src/grfmt_jpeg.cpp
+2
-2
grfmt_jpeg2000.cpp
modules/highgui/src/grfmt_jpeg2000.cpp
+2
-2
grfmt_png.cpp
modules/highgui/src/grfmt_png.cpp
+2
-2
grfmt_pxm.cpp
modules/highgui/src/grfmt_pxm.cpp
+2
-2
grfmt_sunras.cpp
modules/highgui/src/grfmt_sunras.cpp
+2
-2
grfmt_tiff.cpp
modules/highgui/src/grfmt_tiff.cpp
+2
-2
grfmt_webp.cpp
modules/highgui/src/grfmt_webp.cpp
+2
-2
loadsave.cpp
modules/highgui/src/loadsave.cpp
+22
-22
test_framecount.cpp
modules/highgui/test/test_framecount.cpp
+2
-2
No files found.
modules/highgui/include/opencv2/highgui.hpp
View file @
beeb932d
...
@@ -544,8 +544,8 @@ protected:
...
@@ -544,8 +544,8 @@ protected:
Ptr
<
CvVideoWriter
>
writer
;
Ptr
<
CvVideoWriter
>
writer
;
};
};
template
<>
CV_EXPORTS
void
Ptr
<
CvCapture
>::
delete_obj
()
;
template
<>
CV_EXPORTS
void
DefaultDeleter
<
CvCapture
>::
operator
()(
CvCapture
*
obj
)
const
;
template
<>
CV_EXPORTS
void
Ptr
<
CvVideoWriter
>::
delete_obj
()
;
template
<>
CV_EXPORTS
void
DefaultDeleter
<
CvVideoWriter
>::
operator
()(
CvVideoWriter
*
obj
)
const
;
}
// cv
}
// cv
...
...
modules/highgui/src/cap.cpp
View file @
beeb932d
...
@@ -49,10 +49,10 @@
...
@@ -49,10 +49,10 @@
namespace
cv
namespace
cv
{
{
template
<>
void
Ptr
<
CvCapture
>::
delete_obj
()
template
<>
void
DefaultDeleter
<
CvCapture
>::
operator
()(
CvCapture
*
obj
)
const
{
cvReleaseCapture
(
&
obj
);
}
{
cvReleaseCapture
(
&
obj
);
}
template
<>
void
Ptr
<
CvVideoWriter
>::
delete_obj
()
template
<>
void
DefaultDeleter
<
CvVideoWriter
>::
operator
()(
CvVideoWriter
*
obj
)
const
{
cvReleaseVideoWriter
(
&
obj
);
}
{
cvReleaseVideoWriter
(
&
obj
);
}
}
}
...
@@ -492,14 +492,14 @@ VideoCapture::~VideoCapture()
...
@@ -492,14 +492,14 @@ VideoCapture::~VideoCapture()
bool
VideoCapture
::
open
(
const
String
&
filename
)
bool
VideoCapture
::
open
(
const
String
&
filename
)
{
{
if
(
isOpened
())
release
();
if
(
isOpened
())
release
();
cap
=
cvCreateFileCapture
(
filename
.
c_str
(
));
cap
.
reset
(
cvCreateFileCapture
(
filename
.
c_str
()
));
return
isOpened
();
return
isOpened
();
}
}
bool
VideoCapture
::
open
(
int
device
)
bool
VideoCapture
::
open
(
int
device
)
{
{
if
(
isOpened
())
release
();
if
(
isOpened
())
release
();
cap
=
cvCreateCameraCapture
(
device
);
cap
.
reset
(
cvCreateCameraCapture
(
device
)
);
return
isOpened
();
return
isOpened
();
}
}
...
@@ -578,7 +578,7 @@ VideoWriter::~VideoWriter()
...
@@ -578,7 +578,7 @@ VideoWriter::~VideoWriter()
bool
VideoWriter
::
open
(
const
String
&
filename
,
int
_fourcc
,
double
fps
,
Size
frameSize
,
bool
isColor
)
bool
VideoWriter
::
open
(
const
String
&
filename
,
int
_fourcc
,
double
fps
,
Size
frameSize
,
bool
isColor
)
{
{
writer
=
cvCreateVideoWriter
(
filename
.
c_str
(),
_fourcc
,
fps
,
frameSize
,
isColor
);
writer
.
reset
(
cvCreateVideoWriter
(
filename
.
c_str
(),
_fourcc
,
fps
,
frameSize
,
isColor
)
);
return
isOpened
();
return
isOpened
();
}
}
...
...
modules/highgui/src/grfmt_bmp.cpp
View file @
beeb932d
...
@@ -70,7 +70,7 @@ void BmpDecoder::close()
...
@@ -70,7 +70,7 @@ void BmpDecoder::close()
ImageDecoder
BmpDecoder
::
newDecoder
()
const
ImageDecoder
BmpDecoder
::
newDecoder
()
const
{
{
return
new
BmpDecoder
;
return
makePtr
<
BmpDecoder
>
()
;
}
}
bool
BmpDecoder
::
readHeader
()
bool
BmpDecoder
::
readHeader
()
...
@@ -496,7 +496,7 @@ BmpEncoder::~BmpEncoder()
...
@@ -496,7 +496,7 @@ BmpEncoder::~BmpEncoder()
ImageEncoder
BmpEncoder
::
newEncoder
()
const
ImageEncoder
BmpEncoder
::
newEncoder
()
const
{
{
return
new
BmpEncoder
;
return
makePtr
<
BmpEncoder
>
()
;
}
}
bool
BmpEncoder
::
write
(
const
Mat
&
img
,
const
std
::
vector
<
int
>&
)
bool
BmpEncoder
::
write
(
const
Mat
&
img
,
const
std
::
vector
<
int
>&
)
...
...
modules/highgui/src/grfmt_exr.cpp
View file @
beeb932d
...
@@ -551,7 +551,7 @@ void ExrDecoder::RGBToGray( float *in, float *out )
...
@@ -551,7 +551,7 @@ void ExrDecoder::RGBToGray( float *in, float *out )
ImageDecoder
ExrDecoder
::
newDecoder
()
const
ImageDecoder
ExrDecoder
::
newDecoder
()
const
{
{
return
new
ExrDecoder
;
return
makePtr
<
ExrDecoder
>
()
;
}
}
/////////////////////// ExrEncoder ///////////////////
/////////////////////// ExrEncoder ///////////////////
...
@@ -726,7 +726,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& )
...
@@ -726,7 +726,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& )
ImageEncoder
ExrEncoder
::
newEncoder
()
const
ImageEncoder
ExrEncoder
::
newEncoder
()
const
{
{
return
new
ExrEncoder
;
return
makePtr
<
ExrEncoder
>
()
;
}
}
}
}
...
...
modules/highgui/src/grfmt_jpeg.cpp
View file @
beeb932d
...
@@ -208,7 +208,7 @@ void JpegDecoder::close()
...
@@ -208,7 +208,7 @@ void JpegDecoder::close()
ImageDecoder
JpegDecoder
::
newDecoder
()
const
ImageDecoder
JpegDecoder
::
newDecoder
()
const
{
{
return
new
JpegDecoder
;
return
makePtr
<
JpegDecoder
>
()
;
}
}
bool
JpegDecoder
::
readHeader
()
bool
JpegDecoder
::
readHeader
()
...
@@ -539,7 +539,7 @@ JpegEncoder::~JpegEncoder()
...
@@ -539,7 +539,7 @@ JpegEncoder::~JpegEncoder()
ImageEncoder
JpegEncoder
::
newEncoder
()
const
ImageEncoder
JpegEncoder
::
newEncoder
()
const
{
{
return
new
JpegEncoder
;
return
makePtr
<
JpegEncoder
>
()
;
}
}
bool
JpegEncoder
::
write
(
const
Mat
&
img
,
const
std
::
vector
<
int
>&
params
)
bool
JpegEncoder
::
write
(
const
Mat
&
img
,
const
std
::
vector
<
int
>&
params
)
...
...
modules/highgui/src/grfmt_jpeg2000.cpp
View file @
beeb932d
...
@@ -88,7 +88,7 @@ Jpeg2KDecoder::~Jpeg2KDecoder()
...
@@ -88,7 +88,7 @@ Jpeg2KDecoder::~Jpeg2KDecoder()
ImageDecoder
Jpeg2KDecoder
::
newDecoder
()
const
ImageDecoder
Jpeg2KDecoder
::
newDecoder
()
const
{
{
return
new
Jpeg2KDecoder
;
return
makePtr
<
Jpeg2KDecoder
>
()
;
}
}
void
Jpeg2KDecoder
::
close
()
void
Jpeg2KDecoder
::
close
()
...
@@ -403,7 +403,7 @@ Jpeg2KEncoder::~Jpeg2KEncoder()
...
@@ -403,7 +403,7 @@ Jpeg2KEncoder::~Jpeg2KEncoder()
ImageEncoder
Jpeg2KEncoder
::
newEncoder
()
const
ImageEncoder
Jpeg2KEncoder
::
newEncoder
()
const
{
{
return
new
Jpeg2KEncoder
;
return
makePtr
<
Jpeg2KEncoder
>
()
;
}
}
bool
Jpeg2KEncoder
::
isFormatSupported
(
int
depth
)
const
bool
Jpeg2KEncoder
::
isFormatSupported
(
int
depth
)
const
...
...
modules/highgui/src/grfmt_png.cpp
View file @
beeb932d
...
@@ -101,7 +101,7 @@ PngDecoder::~PngDecoder()
...
@@ -101,7 +101,7 @@ PngDecoder::~PngDecoder()
ImageDecoder
PngDecoder
::
newDecoder
()
const
ImageDecoder
PngDecoder
::
newDecoder
()
const
{
{
return
new
PngDecoder
;
return
makePtr
<
PngDecoder
>
()
;
}
}
void
PngDecoder
::
close
()
void
PngDecoder
::
close
()
...
@@ -317,7 +317,7 @@ bool PngEncoder::isFormatSupported( int depth ) const
...
@@ -317,7 +317,7 @@ bool PngEncoder::isFormatSupported( int depth ) const
ImageEncoder
PngEncoder
::
newEncoder
()
const
ImageEncoder
PngEncoder
::
newEncoder
()
const
{
{
return
new
PngEncoder
;
return
makePtr
<
PngEncoder
>
()
;
}
}
...
...
modules/highgui/src/grfmt_pxm.cpp
View file @
beeb932d
...
@@ -116,7 +116,7 @@ bool PxMDecoder::checkSignature( const String& signature ) const
...
@@ -116,7 +116,7 @@ bool PxMDecoder::checkSignature( const String& signature ) const
ImageDecoder
PxMDecoder
::
newDecoder
()
const
ImageDecoder
PxMDecoder
::
newDecoder
()
const
{
{
return
new
PxMDecoder
;
return
makePtr
<
PxMDecoder
>
()
;
}
}
void
PxMDecoder
::
close
()
void
PxMDecoder
::
close
()
...
@@ -357,7 +357,7 @@ PxMEncoder::~PxMEncoder()
...
@@ -357,7 +357,7 @@ PxMEncoder::~PxMEncoder()
ImageEncoder
PxMEncoder
::
newEncoder
()
const
ImageEncoder
PxMEncoder
::
newEncoder
()
const
{
{
return
new
PxMEncoder
;
return
makePtr
<
PxMEncoder
>
()
;
}
}
...
...
modules/highgui/src/grfmt_sunras.cpp
View file @
beeb932d
...
@@ -63,7 +63,7 @@ SunRasterDecoder::~SunRasterDecoder()
...
@@ -63,7 +63,7 @@ SunRasterDecoder::~SunRasterDecoder()
ImageDecoder
SunRasterDecoder
::
newDecoder
()
const
ImageDecoder
SunRasterDecoder
::
newDecoder
()
const
{
{
return
new
SunRasterDecoder
;
return
makePtr
<
SunRasterDecoder
>
()
;
}
}
void
SunRasterDecoder
::
close
()
void
SunRasterDecoder
::
close
()
...
@@ -388,7 +388,7 @@ SunRasterEncoder::SunRasterEncoder()
...
@@ -388,7 +388,7 @@ SunRasterEncoder::SunRasterEncoder()
ImageEncoder
SunRasterEncoder
::
newEncoder
()
const
ImageEncoder
SunRasterEncoder
::
newEncoder
()
const
{
{
return
new
SunRasterEncoder
;
return
makePtr
<
SunRasterEncoder
>
()
;
}
}
SunRasterEncoder
::~
SunRasterEncoder
()
SunRasterEncoder
::~
SunRasterEncoder
()
...
...
modules/highgui/src/grfmt_tiff.cpp
View file @
beeb932d
...
@@ -108,7 +108,7 @@ int TiffDecoder::normalizeChannelsNumber(int channels) const
...
@@ -108,7 +108,7 @@ int TiffDecoder::normalizeChannelsNumber(int channels) const
ImageDecoder
TiffDecoder
::
newDecoder
()
const
ImageDecoder
TiffDecoder
::
newDecoder
()
const
{
{
return
new
TiffDecoder
;
return
makePtr
<
TiffDecoder
>
()
;
}
}
bool
TiffDecoder
::
readHeader
()
bool
TiffDecoder
::
readHeader
()
...
@@ -400,7 +400,7 @@ TiffEncoder::~TiffEncoder()
...
@@ -400,7 +400,7 @@ TiffEncoder::~TiffEncoder()
ImageEncoder
TiffEncoder
::
newEncoder
()
const
ImageEncoder
TiffEncoder
::
newEncoder
()
const
{
{
return
new
TiffEncoder
;
return
makePtr
<
TiffEncoder
>
()
;
}
}
bool
TiffEncoder
::
isFormatSupported
(
int
depth
)
const
bool
TiffEncoder
::
isFormatSupported
(
int
depth
)
const
...
...
modules/highgui/src/grfmt_webp.cpp
View file @
beeb932d
...
@@ -90,7 +90,7 @@ bool WebPDecoder::checkSignature(const String & signature) const
...
@@ -90,7 +90,7 @@ bool WebPDecoder::checkSignature(const String & signature) const
ImageDecoder
WebPDecoder
::
newDecoder
()
const
ImageDecoder
WebPDecoder
::
newDecoder
()
const
{
{
return
new
WebPDecoder
;
return
makePtr
<
WebPDecoder
>
()
;
}
}
bool
WebPDecoder
::
readHeader
()
bool
WebPDecoder
::
readHeader
()
...
@@ -201,7 +201,7 @@ WebPEncoder::~WebPEncoder() { }
...
@@ -201,7 +201,7 @@ WebPEncoder::~WebPEncoder() { }
ImageEncoder
WebPEncoder
::
newEncoder
()
const
ImageEncoder
WebPEncoder
::
newEncoder
()
const
{
{
return
new
WebPEncoder
();
return
makePtr
<
WebPEncoder
>
();
}
}
bool
WebPEncoder
::
write
(
const
Mat
&
img
,
const
std
::
vector
<
int
>&
params
)
bool
WebPEncoder
::
write
(
const
Mat
&
img
,
const
std
::
vector
<
int
>&
params
)
...
...
modules/highgui/src/loadsave.cpp
View file @
beeb932d
...
@@ -58,35 +58,35 @@ struct ImageCodecInitializer
...
@@ -58,35 +58,35 @@ struct ImageCodecInitializer
{
{
ImageCodecInitializer
()
ImageCodecInitializer
()
{
{
decoders
.
push_back
(
new
BmpDecoder
);
decoders
.
push_back
(
makePtr
<
BmpDecoder
>
()
);
encoders
.
push_back
(
new
BmpEncoder
);
encoders
.
push_back
(
makePtr
<
BmpEncoder
>
()
);
#ifdef HAVE_JPEG
#ifdef HAVE_JPEG
decoders
.
push_back
(
new
JpegDecoder
);
decoders
.
push_back
(
makePtr
<
JpegDecoder
>
()
);
encoders
.
push_back
(
new
JpegEncoder
);
encoders
.
push_back
(
makePtr
<
JpegEncoder
>
()
);
#endif
#endif
#ifdef HAVE_WEBP
#ifdef HAVE_WEBP
decoders
.
push_back
(
new
WebPDecoder
);
decoders
.
push_back
(
makePtr
<
WebPDecoder
>
()
);
encoders
.
push_back
(
new
WebPEncoder
);
encoders
.
push_back
(
makePtr
<
WebPEncoder
>
()
);
#endif
#endif
decoders
.
push_back
(
new
SunRasterDecoder
);
decoders
.
push_back
(
makePtr
<
SunRasterDecoder
>
()
);
encoders
.
push_back
(
new
SunRasterEncoder
);
encoders
.
push_back
(
makePtr
<
SunRasterEncoder
>
()
);
decoders
.
push_back
(
new
PxMDecoder
);
decoders
.
push_back
(
makePtr
<
PxMDecoder
>
()
);
encoders
.
push_back
(
new
PxMEncoder
);
encoders
.
push_back
(
makePtr
<
PxMEncoder
>
()
);
#ifdef HAVE_TIFF
#ifdef HAVE_TIFF
decoders
.
push_back
(
new
TiffDecoder
);
decoders
.
push_back
(
makePtr
<
TiffDecoder
>
()
);
#endif
#endif
encoders
.
push_back
(
new
TiffEncoder
);
encoders
.
push_back
(
makePtr
<
TiffEncoder
>
()
);
#ifdef HAVE_PNG
#ifdef HAVE_PNG
decoders
.
push_back
(
new
PngDecoder
);
decoders
.
push_back
(
makePtr
<
PngDecoder
>
()
);
encoders
.
push_back
(
new
PngEncoder
);
encoders
.
push_back
(
makePtr
<
PngEncoder
>
()
);
#endif
#endif
#ifdef HAVE_JASPER
#ifdef HAVE_JASPER
decoders
.
push_back
(
new
Jpeg2KDecoder
);
decoders
.
push_back
(
makePtr
<
Jpeg2KDecoder
>
()
);
encoders
.
push_back
(
new
Jpeg2KEncoder
);
encoders
.
push_back
(
makePtr
<
Jpeg2KEncoder
>
()
);
#endif
#endif
#ifdef HAVE_OPENEXR
#ifdef HAVE_OPENEXR
decoders
.
push_back
(
new
ExrDecoder
);
decoders
.
push_back
(
makePtr
<
ExrDecoder
>
()
);
encoders
.
push_back
(
new
ExrEncoder
);
encoders
.
push_back
(
makePtr
<
ExrEncoder
>
()
);
#endif
#endif
}
}
...
@@ -198,7 +198,7 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
...
@@ -198,7 +198,7 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
Mat
temp
,
*
data
=
&
temp
;
Mat
temp
,
*
data
=
&
temp
;
ImageDecoder
decoder
=
findDecoder
(
filename
);
ImageDecoder
decoder
=
findDecoder
(
filename
);
if
(
decoder
.
empty
()
)
if
(
!
decoder
)
return
0
;
return
0
;
decoder
->
setSource
(
filename
);
decoder
->
setSource
(
filename
);
if
(
!
decoder
->
readHeader
()
)
if
(
!
decoder
->
readHeader
()
)
...
@@ -269,7 +269,7 @@ static bool imwrite_( const String& filename, const Mat& image,
...
@@ -269,7 +269,7 @@ static bool imwrite_( const String& filename, const Mat& image,
CV_Assert
(
image
.
channels
()
==
1
||
image
.
channels
()
==
3
||
image
.
channels
()
==
4
);
CV_Assert
(
image
.
channels
()
==
1
||
image
.
channels
()
==
3
||
image
.
channels
()
==
4
);
ImageEncoder
encoder
=
findEncoder
(
filename
);
ImageEncoder
encoder
=
findEncoder
(
filename
);
if
(
encoder
.
empty
()
)
if
(
!
encoder
)
CV_Error
(
CV_StsError
,
"could not find a writer for the specified extension"
);
CV_Error
(
CV_StsError
,
"could not find a writer for the specified extension"
);
if
(
!
encoder
->
isFormatSupported
(
image
.
depth
())
)
if
(
!
encoder
->
isFormatSupported
(
image
.
depth
())
)
...
@@ -309,7 +309,7 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
...
@@ -309,7 +309,7 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
String
filename
;
String
filename
;
ImageDecoder
decoder
=
findDecoder
(
buf
);
ImageDecoder
decoder
=
findDecoder
(
buf
);
if
(
decoder
.
empty
()
)
if
(
!
decoder
)
return
0
;
return
0
;
if
(
!
decoder
->
setSource
(
buf
)
)
if
(
!
decoder
->
setSource
(
buf
)
)
...
@@ -409,7 +409,7 @@ bool imencode( const String& ext, InputArray _image,
...
@@ -409,7 +409,7 @@ bool imencode( const String& ext, InputArray _image,
CV_Assert
(
channels
==
1
||
channels
==
3
||
channels
==
4
);
CV_Assert
(
channels
==
1
||
channels
==
3
||
channels
==
4
);
ImageEncoder
encoder
=
findEncoder
(
ext
);
ImageEncoder
encoder
=
findEncoder
(
ext
);
if
(
encoder
.
empty
()
)
if
(
!
encoder
)
CV_Error
(
CV_StsError
,
"could not find encoder for the specified extension"
);
CV_Error
(
CV_StsError
,
"could not find encoder for the specified extension"
);
if
(
!
encoder
->
isFormatSupported
(
image
.
depth
())
)
if
(
!
encoder
->
isFormatSupported
(
image
.
depth
())
)
...
...
modules/highgui/test/test_framecount.cpp
View file @
beeb932d
...
@@ -71,8 +71,8 @@ void CV_FramecountTest::run(int)
...
@@ -71,8 +71,8 @@ void CV_FramecountTest::run(int)
{
{
string
file_path
=
src_dir
+
"video/big_buck_bunny."
+
ext
[
i
];
string
file_path
=
src_dir
+
"video/big_buck_bunny."
+
ext
[
i
];
cap
=
cvCreateFileCapture
(
file_path
.
c_str
(
));
cap
.
reset
(
cvCreateFileCapture
(
file_path
.
c_str
()
));
if
(
cap
.
empty
()
)
if
(
!
cap
)
{
{
ts
->
printf
(
cvtest
::
TS
::
LOG
,
"
\n
File information (video %d):
\n\n
Name: big_buck_bunny.%s
\n
FAILED
\n\n
"
,
i
+
1
,
ext
[
i
].
c_str
());
ts
->
printf
(
cvtest
::
TS
::
LOG
,
"
\n
File information (video %d):
\n\n
Name: big_buck_bunny.%s
\n
FAILED
\n\n
"
,
i
+
1
,
ext
[
i
].
c_str
());
ts
->
printf
(
cvtest
::
TS
::
LOG
,
"Error: cannot read source video file.
\n
"
);
ts
->
printf
(
cvtest
::
TS
::
LOG
,
"Error: cannot read source video file.
\n
"
);
...
...
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