Updated diagnostic messages in VideoWriter (for ticket #1736)

This commit is contained in:
Alexander Reshetnikov 2012-04-13 17:39:45 +00:00
parent b07f89dcb1
commit 0442b3eae4
2 changed files with 18 additions and 5 deletions

View File

@ -1309,15 +1309,21 @@ void CvVideoWriter_FFMPEG::close()
/* find the video encoder */ /* find the video encoder */
codec = avcodec_find_encoder(c->codec_id); codec = avcodec_find_encoder(c->codec_id);
if (!codec) { if (!codec) {
fprintf(stderr, "Could not find encoder for codec id %d: %s", c->codec_id, icvFFMPEGErrStr(
#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
AVERROR_ENCODER_NOT_FOUND
#else
-1
#endif
));
return false; return false;
} }
c->bit_rate_tolerance = c->bit_rate; c->bit_rate_tolerance = c->bit_rate;
/* open the codec */ /* open the codec */
if ( (err=avcodec_open(c, codec)) < 0) { if ( (err=avcodec_open(c, codec)) < 0 ) {
char errtext[256]; fprintf(stderr, "Could not open codec '%s': %s", codec->name, icvFFMPEGErrStr(err));
sprintf(errtext, "Could not open codec '%s': %s", codec->name, icvFFMPEGErrStr(err));
return false; return false;
} }

View File

@ -43,6 +43,7 @@
#include "cap_ffmpeg_api.hpp" #include "cap_ffmpeg_api.hpp"
#include <assert.h> #include <assert.h>
#include <algorithm> #include <algorithm>
#include <stdio.h>
#if defined _MSC_VER && _MSC_VER >= 1200 #if defined _MSC_VER && _MSC_VER >= 1200
#pragma warning( disable: 4244 4510 4512 4610 ) #pragma warning( disable: 4244 4510 4512 4610 )
@ -1454,6 +1455,13 @@ void CvVideoWriter_FFMPEG::close()
/* find the video encoder */ /* find the video encoder */
codec = avcodec_find_encoder(c->codec_id); codec = avcodec_find_encoder(c->codec_id);
if (!codec) { if (!codec) {
fprintf(stderr, "Could not find encoder for codec id %d: %s", c->codec_id, icvFFMPEGErrStr(
#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(53, 2, 0)
AVERROR_ENCODER_NOT_FOUND
#else
-1
#endif
));
return false; return false;
} }
@ -1470,8 +1478,7 @@ void CvVideoWriter_FFMPEG::close()
avcodec_open(c, codec) avcodec_open(c, codec)
#endif #endif
) < 0) { ) < 0) {
char errtext[256]; fprintf(stderr, "Could not open codec '%s': %s", codec->name, icvFFMPEGErrStr(err));
sprintf(errtext, "Could not open codec '%s': %s", codec->name, icvFFMPEGErrStr(err));
return false; return false;
} }