Merge ../ZoneMinder.SteveGilvarry into valgrind
This commit is contained in:
commit
71d79fac99
|
@ -167,12 +167,21 @@ int SWScale::Convert(const uint8_t* in_buffer, const size_t in_buffer_size, uint
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Check the buffer sizes */
|
/* Check the buffer sizes */
|
||||||
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
size_t insize = av_image_get_buffer_size(in_pf, width, height,1);
|
||||||
|
#else
|
||||||
size_t insize = avpicture_get_size(in_pf, width, height);
|
size_t insize = avpicture_get_size(in_pf, width, height);
|
||||||
|
#endif
|
||||||
if(insize != in_buffer_size) {
|
if(insize != in_buffer_size) {
|
||||||
Error("The input buffer size does not match the expected size for the input format. Required: %d Available: %d", insize, in_buffer_size);
|
Error("The input buffer size does not match the expected size for the input format. Required: %d Available: %d", insize, in_buffer_size);
|
||||||
return -4;
|
return -4;
|
||||||
}
|
}
|
||||||
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
size_t outsize = av_image_get_buffer_size(out_pf, width, height,1);
|
||||||
|
#else
|
||||||
size_t outsize = avpicture_get_size(out_pf, width, height);
|
size_t outsize = avpicture_get_size(out_pf, width, height);
|
||||||
|
#endif
|
||||||
|
|
||||||
if(outsize < out_buffer_size) {
|
if(outsize < out_buffer_size) {
|
||||||
Error("The output buffer is undersized for the output format. Required: %d Available: %d", outsize, out_buffer_size);
|
Error("The output buffer is undersized for the output format. Required: %d Available: %d", outsize, out_buffer_size);
|
||||||
return -5;
|
return -5;
|
||||||
|
@ -186,11 +195,27 @@ int SWScale::Convert(const uint8_t* in_buffer, const size_t in_buffer_size, uint
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fill in the buffers */
|
/* Fill in the buffers */
|
||||||
if(!avpicture_fill( (AVPicture*)input_avframe, (uint8_t*)in_buffer, in_pf, width, height ) ) {
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
if(av_image_fill_arrays(input_avframe->data, input_avframe->linesize,
|
||||||
|
(uint8_t*)in_buffer, in_pf, width, height, 1) <= 0)
|
||||||
|
{
|
||||||
|
#else
|
||||||
|
if(avpicture_fill( (AVPicture*)input_avframe, (uint8_t*)in_buffer,
|
||||||
|
in_pf, width, height ) <= 0)
|
||||||
|
{
|
||||||
|
#endif
|
||||||
Error("Failed filling input frame with input buffer");
|
Error("Failed filling input frame with input buffer");
|
||||||
return -7;
|
return -7;
|
||||||
}
|
}
|
||||||
if(!avpicture_fill( (AVPicture*)output_avframe, out_buffer, out_pf, width, height ) ) {
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
if(av_image_fill_arrays(output_avframe->data, output_avframe->linesize,
|
||||||
|
out_buffer, out_pf, width, height, 1) <= 0)
|
||||||
|
{
|
||||||
|
#else
|
||||||
|
if(avpicture_fill( (AVPicture*)output_avframe, out_buffer,
|
||||||
|
out_pf, width, height ) <= 0)
|
||||||
|
{
|
||||||
|
#endif
|
||||||
Error("Failed filling output frame with output buffer");
|
Error("Failed filling output frame with output buffer");
|
||||||
return -8;
|
return -8;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,12 @@ extern "C" {
|
||||||
#else
|
#else
|
||||||
#include <libavcodec/opt.h>
|
#include <libavcodec/opt.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
#include <libavutil/imgutils.h>
|
||||||
|
#else
|
||||||
|
#include <libavutil/avutil.h>
|
||||||
|
#endif
|
||||||
#elif HAVE_FFMPEG_AVUTIL_H
|
#elif HAVE_FFMPEG_AVUTIL_H
|
||||||
#include <ffmpeg/avutil.h>
|
#include <ffmpeg/avutil.h>
|
||||||
#include <ffmpeg/base64.h>
|
#include <ffmpeg/base64.h>
|
||||||
|
|
|
@ -191,7 +191,13 @@ int FfmpegCamera::Capture( Image &image )
|
||||||
if ( frameComplete ) {
|
if ( frameComplete ) {
|
||||||
Debug( 4, "Got frame %d", frameCount );
|
Debug( 4, "Got frame %d", frameCount );
|
||||||
|
|
||||||
avpicture_fill( (AVPicture *)mFrame, directbuffer, imagePixFormat, width, height);
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
av_image_fill_arrays(mFrame->data, mFrame->linesize,
|
||||||
|
directbuffer, imagePixFormat, width, height, 1);
|
||||||
|
#else
|
||||||
|
avpicture_fill( (AVPicture *)mFrame, directbuffer,
|
||||||
|
imagePixFormat, width, height);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if HAVE_LIBSWSCALE
|
#if HAVE_LIBSWSCALE
|
||||||
if(mConvertContext == NULL) {
|
if(mConvertContext == NULL) {
|
||||||
|
@ -392,7 +398,12 @@ int FfmpegCamera::OpenFfmpeg() {
|
||||||
|
|
||||||
Debug ( 1, "Allocated frames" );
|
Debug ( 1, "Allocated frames" );
|
||||||
|
|
||||||
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
int pSize = av_image_get_buffer_size( imagePixFormat, width, height,1 );
|
||||||
|
#else
|
||||||
int pSize = avpicture_get_size( imagePixFormat, width, height );
|
int pSize = avpicture_get_size( imagePixFormat, width, height );
|
||||||
|
#endif
|
||||||
|
|
||||||
if( (unsigned int)pSize != imagesize) {
|
if( (unsigned int)pSize != imagesize) {
|
||||||
Fatal("Image size mismatch. Required: %d Available: %d",pSize,imagesize);
|
Fatal("Image size mismatch. Required: %d Available: %d",pSize,imagesize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -644,7 +644,11 @@ LocalCamera::LocalCamera(
|
||||||
if ( !tmpPicture )
|
if ( !tmpPicture )
|
||||||
Fatal( "Could not allocate temporary picture" );
|
Fatal( "Could not allocate temporary picture" );
|
||||||
|
|
||||||
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
int pSize = av_image_get_buffer_size( imagePixFormat, width, height,1 );
|
||||||
|
#else
|
||||||
int pSize = avpicture_get_size( imagePixFormat, width, height );
|
int pSize = avpicture_get_size( imagePixFormat, width, height );
|
||||||
|
#endif
|
||||||
if( (unsigned int)pSize != imagesize) {
|
if( (unsigned int)pSize != imagesize) {
|
||||||
Fatal("Image size mismatch. Required: %d Available: %d",pSize,imagesize);
|
Fatal("Image size mismatch. Required: %d Available: %d",pSize,imagesize);
|
||||||
}
|
}
|
||||||
|
@ -877,7 +881,18 @@ void LocalCamera::Initialise()
|
||||||
#endif
|
#endif
|
||||||
if ( !capturePictures[i] )
|
if ( !capturePictures[i] )
|
||||||
Fatal( "Could not allocate picture" );
|
Fatal( "Could not allocate picture" );
|
||||||
avpicture_fill( (AVPicture *)capturePictures[i], (uint8_t*)v4l2_data.buffers[i].start, capturePixFormat, v4l2_data.fmt.fmt.pix.width, v4l2_data.fmt.fmt.pix.height );
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
av_image_fill_arrays(capturePictures[i]->data,
|
||||||
|
capturePictures[i]->linesize,
|
||||||
|
(uint8_t*)v4l2_data.buffers[i].start,capturePixFormat,
|
||||||
|
v4l2_data.fmt.fmt.pix.width,
|
||||||
|
v4l2_data.fmt.fmt.pix.height, 1);
|
||||||
|
#else
|
||||||
|
avpicture_fill( (AVPicture *)capturePictures[i],
|
||||||
|
(uint8_t*)v4l2_data.buffers[i].start, capturePixFormat,
|
||||||
|
v4l2_data.fmt.fmt.pix.width,
|
||||||
|
v4l2_data.fmt.fmt.pix.height );
|
||||||
|
#endif
|
||||||
#endif // HAVE_LIBSWSCALE
|
#endif // HAVE_LIBSWSCALE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1035,7 +1050,16 @@ void LocalCamera::Initialise()
|
||||||
#endif
|
#endif
|
||||||
if ( !capturePictures[i] )
|
if ( !capturePictures[i] )
|
||||||
Fatal( "Could not allocate picture" );
|
Fatal( "Could not allocate picture" );
|
||||||
avpicture_fill( (AVPicture *)capturePictures[i], (unsigned char *)v4l1_data.bufptr+v4l1_data.frames.offsets[i], capturePixFormat, width, height );
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
av_image_fill_arrays(capturePictures[i]->data,
|
||||||
|
capturePictures[i]->linesize,
|
||||||
|
(unsigned char *)v4l1_data.bufptr+v4l1_data.frames.offsets[i],
|
||||||
|
capturePixFormat, width, height, 1);
|
||||||
|
#else
|
||||||
|
avpicture_fill( (AVPicture *)capturePictures[i],
|
||||||
|
(unsigned char *)v4l1_data.bufptr+v4l1_data.frames.offsets[i],
|
||||||
|
capturePixFormat, width, height );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif // HAVE_LIBSWSCALE
|
#endif // HAVE_LIBSWSCALE
|
||||||
|
|
||||||
|
@ -2131,7 +2155,14 @@ int LocalCamera::Capture( Image &image )
|
||||||
|
|
||||||
Debug( 9, "Calling sws_scale to perform the conversion" );
|
Debug( 9, "Calling sws_scale to perform the conversion" );
|
||||||
/* Use swscale to convert the image directly into the shared memory */
|
/* Use swscale to convert the image directly into the shared memory */
|
||||||
avpicture_fill( (AVPicture *)tmpPicture, directbuffer, imagePixFormat, width, height );
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
av_image_fill_arrays(tmpPicture->data,
|
||||||
|
tmpPicture->linesize, directbuffer,
|
||||||
|
imagePixFormat, width, height, 1);
|
||||||
|
#else
|
||||||
|
avpicture_fill( (AVPicture *)tmpPicture, directbuffer,
|
||||||
|
imagePixFormat, width, height );
|
||||||
|
#endif
|
||||||
sws_scale( imgConversionContext, capturePictures[capture_frame]->data, capturePictures[capture_frame]->linesize, 0, height, tmpPicture->data, tmpPicture->linesize );
|
sws_scale( imgConversionContext, capturePictures[capture_frame]->data, capturePictures[capture_frame]->linesize, 0, height, tmpPicture->data, tmpPicture->linesize );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -333,7 +333,13 @@ void VideoStream::OpenStream( )
|
||||||
Panic( "Could not allocate opicture" );
|
Panic( "Could not allocate opicture" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
int size = av_image_get_buffer_size( c->pix_fmt, c->width,
|
||||||
|
c->height, 1 );
|
||||||
|
#else
|
||||||
int size = avpicture_get_size( c->pix_fmt, c->width, c->height );
|
int size = avpicture_get_size( c->pix_fmt, c->width, c->height );
|
||||||
|
#endif
|
||||||
|
|
||||||
uint8_t *opicture_buf = (uint8_t *)av_malloc( size );
|
uint8_t *opicture_buf = (uint8_t *)av_malloc( size );
|
||||||
if ( !opicture_buf )
|
if ( !opicture_buf )
|
||||||
{
|
{
|
||||||
|
@ -344,7 +350,13 @@ void VideoStream::OpenStream( )
|
||||||
#endif
|
#endif
|
||||||
Panic( "Could not allocate opicture_buf" );
|
Panic( "Could not allocate opicture_buf" );
|
||||||
}
|
}
|
||||||
avpicture_fill( (AVPicture *)opicture, opicture_buf, c->pix_fmt, c->width, c->height );
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
av_image_fill_arrays(opicture->data, opicture->linesize,
|
||||||
|
opicture_buf, c->pix_fmt, c->width, c->height, 1);
|
||||||
|
#else
|
||||||
|
avpicture_fill( (AVPicture *)opicture, opicture_buf, c->pix_fmt,
|
||||||
|
c->width, c->height );
|
||||||
|
#endif
|
||||||
|
|
||||||
/* if the output format is not identical to the input format, then a temporary
|
/* if the output format is not identical to the input format, then a temporary
|
||||||
picture is needed too. It is then converted to the required
|
picture is needed too. It is then converted to the required
|
||||||
|
@ -361,7 +373,12 @@ void VideoStream::OpenStream( )
|
||||||
{
|
{
|
||||||
Panic( "Could not allocate tmp_opicture" );
|
Panic( "Could not allocate tmp_opicture" );
|
||||||
}
|
}
|
||||||
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
int size = av_image_get_buffer_size( pf, c->width,
|
||||||
|
c->height,1 );
|
||||||
|
#else
|
||||||
int size = avpicture_get_size( pf, c->width, c->height );
|
int size = avpicture_get_size( pf, c->width, c->height );
|
||||||
|
#endif
|
||||||
uint8_t *tmp_opicture_buf = (uint8_t *)av_malloc( size );
|
uint8_t *tmp_opicture_buf = (uint8_t *)av_malloc( size );
|
||||||
if ( !tmp_opicture_buf )
|
if ( !tmp_opicture_buf )
|
||||||
{
|
{
|
||||||
|
@ -372,7 +389,14 @@ void VideoStream::OpenStream( )
|
||||||
#endif
|
#endif
|
||||||
Panic( "Could not allocate tmp_opicture_buf" );
|
Panic( "Could not allocate tmp_opicture_buf" );
|
||||||
}
|
}
|
||||||
avpicture_fill( (AVPicture *)tmp_opicture, tmp_opicture_buf, pf, c->width, c->height );
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
av_image_fill_arrays(tmp_opicture->data,
|
||||||
|
tmp_opicture->linesize, tmp_opicture_buf, pf,
|
||||||
|
c->width, c->height, 1);
|
||||||
|
#else
|
||||||
|
avpicture_fill( (AVPicture *)tmp_opicture,
|
||||||
|
tmp_opicture_buf, pf, c->width, c->height );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -678,14 +702,14 @@ double VideoStream::ActuallyEncodeFrame( const uint8_t *buffer, int buffer_size,
|
||||||
#endif
|
#endif
|
||||||
if ( got_packet )
|
if ( got_packet )
|
||||||
{
|
{
|
||||||
if ( c->coded_frame->key_frame )
|
// if ( c->coded_frame->key_frame )
|
||||||
{
|
// {
|
||||||
#if LIBAVCODEC_VERSION_CHECK(52, 30, 2, 30, 2)
|
//#if LIBAVCODEC_VERSION_CHECK(52, 30, 2, 30, 2)
|
||||||
pkt->flags |= AV_PKT_FLAG_KEY;
|
// pkt->flags |= AV_PKT_FLAG_KEY;
|
||||||
#else
|
//#else
|
||||||
pkt->flags |= PKT_FLAG_KEY;
|
// pkt->flags |= PKT_FLAG_KEY;
|
||||||
#endif
|
//#endif
|
||||||
}
|
// }
|
||||||
|
|
||||||
if ( pkt->pts != (int64_t)AV_NOPTS_VALUE )
|
if ( pkt->pts != (int64_t)AV_NOPTS_VALUE )
|
||||||
{
|
{
|
||||||
|
|
|
@ -241,7 +241,12 @@ int RemoteCameraRtsp::PrimeCapture()
|
||||||
if(mRawFrame == NULL || mFrame == NULL)
|
if(mRawFrame == NULL || mFrame == NULL)
|
||||||
Fatal( "Unable to allocate frame(s)");
|
Fatal( "Unable to allocate frame(s)");
|
||||||
|
|
||||||
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
int pSize = av_image_get_buffer_size( imagePixFormat, width, height, 1 );
|
||||||
|
#else
|
||||||
int pSize = avpicture_get_size( imagePixFormat, width, height );
|
int pSize = avpicture_get_size( imagePixFormat, width, height );
|
||||||
|
#endif
|
||||||
|
|
||||||
if( (unsigned int)pSize != imagesize) {
|
if( (unsigned int)pSize != imagesize) {
|
||||||
Fatal("Image size mismatch. Required: %d Available: %d",pSize,imagesize);
|
Fatal("Image size mismatch. Required: %d Available: %d",pSize,imagesize);
|
||||||
}
|
}
|
||||||
|
@ -498,7 +503,13 @@ int RemoteCameraRtsp::CaptureAndRecord( Image &image, bool recording, char* even
|
||||||
|
|
||||||
Debug( 3, "Got frame %d", frameCount );
|
Debug( 3, "Got frame %d", frameCount );
|
||||||
|
|
||||||
avpicture_fill( (AVPicture *)mFrame, directbuffer, imagePixFormat, width, height );
|
#if LIBAVUTIL_VERSION_CHECK(54, 6, 0, 6, 0)
|
||||||
|
av_image_fill_arrays(mFrame->data, mFrame->linesize,
|
||||||
|
directbuffer, imagePixFormat, width, height, 1);
|
||||||
|
#else
|
||||||
|
avpicture_fill( (AVPicture *)mFrame, directbuffer,
|
||||||
|
imagePixFormat, width, height);
|
||||||
|
#endif
|
||||||
|
|
||||||
//Video recording
|
//Video recording
|
||||||
if ( recording && !wasRecording ) {
|
if ( recording && !wasRecording ) {
|
||||||
|
|
|
@ -114,13 +114,6 @@ VideoStore::VideoStore(const char *filename_in, const char *format_in,
|
||||||
audio_st = NULL;
|
audio_st = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set the output parameters (must be done even if no parameters)
|
|
||||||
ret = av_set_parameters( oc, NULL );
|
|
||||||
if ( ret < 0 ) {
|
|
||||||
{
|
|
||||||
Fatal("Could not set parameters '%s': %s\n", filename,
|
|
||||||
av_make_error_string(ret).c_str());
|
|
||||||
}
|
|
||||||
/* open the output file, if needed */
|
/* open the output file, if needed */
|
||||||
if (!(fmt->flags & AVFMT_NOFILE)) {
|
if (!(fmt->flags & AVFMT_NOFILE)) {
|
||||||
ret = avio_open2(&oc->pb, filename, AVIO_FLAG_WRITE,NULL,NULL);
|
ret = avio_open2(&oc->pb, filename, AVIO_FLAG_WRITE,NULL,NULL);
|
||||||
|
@ -140,7 +133,7 @@ ret = av_set_parameters( oc, NULL );
|
||||||
/* Write the stream header, if any. */
|
/* Write the stream header, if any. */
|
||||||
ret = avformat_write_header(oc, NULL);
|
ret = avformat_write_header(oc, NULL);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
zm_dump_stream_format(AVFormatContext *oc, 0, 0, 1 );
|
zm_dump_stream_format( oc, 0, 0, 1 );
|
||||||
Fatal("Error occurred when writing output file header to %s: %s\n",
|
Fatal("Error occurred when writing output file header to %s: %s\n",
|
||||||
filename,
|
filename,
|
||||||
av_make_error_string(ret).c_str());
|
av_make_error_string(ret).c_str());
|
||||||
|
@ -181,7 +174,7 @@ VideoStore::~VideoStore(){
|
||||||
Error("Error closing avio %s", av_err2str( rc ) );
|
Error("Error closing avio %s", av_err2str( rc ) );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Debug("Not closing avio because we are not writing to a file.");
|
Debug(3, "Not closing avio because we are not writing to a file.");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* free the stream */
|
/* free the stream */
|
||||||
|
|
Loading…
Reference in New Issue