mirror of
https://github.com/opencv/opencv.git
synced 2025-06-13 21:23:31 +08:00
Merge pull request #8984 from alalek:update_videowriter_apipreference
This commit is contained in:
commit
c60b7d76c5
@ -855,7 +855,7 @@ public:
|
|||||||
The `apiPreference` parameter allows to specify API backends to use. Can be used to enforce a specific reader implementation
|
The `apiPreference` parameter allows to specify API backends to use. Can be used to enforce a specific reader implementation
|
||||||
if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_GSTREAMER.
|
if multiple are available: e.g. cv::CAP_FFMPEG or cv::CAP_GSTREAMER.
|
||||||
*/
|
*/
|
||||||
CV_WRAP VideoWriter(int apiPreference, const String& filename, int fourcc, double fps,
|
CV_WRAP VideoWriter(const String& filename, int apiPreference, int fourcc, double fps,
|
||||||
Size frameSize, bool isColor = true);
|
Size frameSize, bool isColor = true);
|
||||||
|
|
||||||
/** @brief Default destructor
|
/** @brief Default destructor
|
||||||
@ -875,15 +875,9 @@ public:
|
|||||||
CV_WRAP virtual bool open(const String& filename, int fourcc, double fps,
|
CV_WRAP virtual bool open(const String& filename, int fourcc, double fps,
|
||||||
Size frameSize, bool isColor = true);
|
Size frameSize, bool isColor = true);
|
||||||
|
|
||||||
/** @brief Initializes or reinitializes video writer.
|
/** @overload
|
||||||
|
|
||||||
The method opens video writer. Parameters are the same as in the constructor
|
|
||||||
VideoWriter::VideoWriter.
|
|
||||||
@return `true` if video writer has been successfully initialized
|
|
||||||
|
|
||||||
The method first calls VideoWriter::release to close the already opened file.
|
|
||||||
*/
|
*/
|
||||||
CV_WRAP bool open(int apiPreference, const String& filename, int fourcc, double fps,
|
CV_WRAP bool open(const String& filename, int apiPreference, int fourcc, double fps,
|
||||||
Size frameSize, bool isColor = true);
|
Size frameSize, bool isColor = true);
|
||||||
|
|
||||||
/** @brief Returns true if video writer has been successfully initialized.
|
/** @brief Returns true if video writer has been successfully initialized.
|
||||||
|
@ -368,13 +368,7 @@ CV_IMPL CvCapture * cvCreateFileCapture (const char * filename)
|
|||||||
* Videowriter dispatching method: it tries to find the first
|
* Videowriter dispatching method: it tries to find the first
|
||||||
* API that can write a given stream.
|
* API that can write a given stream.
|
||||||
*/
|
*/
|
||||||
CV_IMPL CvVideoWriter* cvCreateVideoWriter( const char* filename, int fourcc,
|
static CvVideoWriter* cvCreateVideoWriterWithPreference(const char* filename, int apiPreference, int fourcc,
|
||||||
double fps, CvSize frameSize, int is_color )
|
|
||||||
{
|
|
||||||
return cvCreateVideoWriterWithPreference(CV_CAP_ANY, filename, fourcc, fps, frameSize, is_color);
|
|
||||||
}
|
|
||||||
|
|
||||||
CvVideoWriter* cvCreateVideoWriterWithPreference(int apiPreference, const char* filename, int fourcc,
|
|
||||||
double fps, CvSize frameSize, int is_color )
|
double fps, CvSize frameSize, int is_color )
|
||||||
{
|
{
|
||||||
CV_UNUSED(frameSize);
|
CV_UNUSED(frameSize);
|
||||||
@ -428,6 +422,12 @@ CvVideoWriter* cvCreateVideoWriterWithPreference(int apiPreference, const char*
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CV_IMPL CvVideoWriter* cvCreateVideoWriter( const char* filename, int fourcc,
|
||||||
|
double fps, CvSize frameSize, int is_color )
|
||||||
|
{
|
||||||
|
return cvCreateVideoWriterWithPreference(filename, CV_CAP_ANY, fourcc, fps, frameSize, is_color);
|
||||||
|
}
|
||||||
|
|
||||||
CV_IMPL int cvWriteFrame( CvVideoWriter* writer, const IplImage* image )
|
CV_IMPL int cvWriteFrame( CvVideoWriter* writer, const IplImage* image )
|
||||||
{
|
{
|
||||||
return writer ? writer->writeFrame(image) : 0;
|
return writer ? writer->writeFrame(image) : 0;
|
||||||
@ -563,7 +563,7 @@ static Ptr<IVideoCapture> IVideoCapture_create(const String& filename)
|
|||||||
return Ptr<IVideoCapture>();
|
return Ptr<IVideoCapture>();
|
||||||
}
|
}
|
||||||
|
|
||||||
static Ptr<IVideoWriter> IVideoWriter_create(int apiPreference, const String& filename, int _fourcc, double fps, Size frameSize, bool isColor)
|
static Ptr<IVideoWriter> IVideoWriter_create(const String& filename, int apiPreference, int _fourcc, double fps, Size frameSize, bool isColor)
|
||||||
{
|
{
|
||||||
Ptr<IVideoWriter> iwriter;
|
Ptr<IVideoWriter> iwriter;
|
||||||
#ifdef HAVE_MFX
|
#ifdef HAVE_MFX
|
||||||
@ -757,9 +757,9 @@ VideoWriter::VideoWriter(const String& filename, int _fourcc, double fps, Size f
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VideoWriter::VideoWriter(int apiPreference, const String& filename, int _fourcc, double fps, Size frameSize, bool isColor)
|
VideoWriter::VideoWriter(const String& filename, int apiPreference, int _fourcc, double fps, Size frameSize, bool isColor)
|
||||||
{
|
{
|
||||||
open(apiPreference, filename, _fourcc, fps, frameSize, isColor);
|
open(filename, apiPreference, _fourcc, fps, frameSize, isColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoWriter::release()
|
void VideoWriter::release()
|
||||||
@ -775,18 +775,18 @@ 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)
|
||||||
{
|
{
|
||||||
return open(CAP_ANY, filename, _fourcc, fps, frameSize, isColor);
|
return open(filename, CAP_ANY, _fourcc, fps, frameSize, isColor);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool VideoWriter::open(int apiPreference, const String& filename, int _fourcc, double fps, Size frameSize, bool isColor)
|
bool VideoWriter::open(const String& filename, int apiPreference, int _fourcc, double fps, Size frameSize, bool isColor)
|
||||||
{
|
{
|
||||||
CV_INSTRUMENT_REGION()
|
CV_INSTRUMENT_REGION()
|
||||||
|
|
||||||
if (isOpened()) release();
|
if (isOpened()) release();
|
||||||
iwriter = IVideoWriter_create(apiPreference, filename, _fourcc, fps, frameSize, isColor);
|
iwriter = IVideoWriter_create(filename, apiPreference, _fourcc, fps, frameSize, isColor);
|
||||||
if (!iwriter.empty())
|
if (!iwriter.empty())
|
||||||
return true;
|
return true;
|
||||||
writer.reset(cvCreateVideoWriterWithPreference(apiPreference, filename.c_str(), _fourcc, fps, frameSize, isColor));
|
writer.reset(cvCreateVideoWriterWithPreference(filename.c_str(), apiPreference, _fourcc, fps, frameSize, isColor));
|
||||||
return isOpened();
|
return isOpened();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,9 +162,6 @@ CvCapture * cvCreateCameraCapture_Unicap (const int index);
|
|||||||
CvCapture * cvCreateCameraCapture_PvAPI (const int index);
|
CvCapture * cvCreateCameraCapture_PvAPI (const int index);
|
||||||
CvVideoWriter* cvCreateVideoWriter_GStreamer( const char* filename, int fourcc,
|
CvVideoWriter* cvCreateVideoWriter_GStreamer( const char* filename, int fourcc,
|
||||||
double fps, CvSize frameSize, int is_color );
|
double fps, CvSize frameSize, int is_color );
|
||||||
CvVideoWriter* cvCreateVideoWriterWithPreference(int api, const char* filename, int fourcc,
|
|
||||||
double fps, CvSize frame_size,
|
|
||||||
int is_color CV_DEFAULT(1));
|
|
||||||
|
|
||||||
|
|
||||||
namespace cv
|
namespace cv
|
||||||
|
Loading…
Reference in New Issue
Block a user