From 50843b92cb58160d9566d583136f2fade1505bff Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Wed, 20 Aug 2014 10:44:21 +0200 Subject: [PATCH 1/3] Common: fix variable used after null check Warning from Coverity Scan. --- src/AvTranscoder/common.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/AvTranscoder/common.cpp b/src/AvTranscoder/common.cpp index add2780b..cbdad3b8 100644 --- a/src/AvTranscoder/common.cpp +++ b/src/AvTranscoder/common.cpp @@ -27,7 +27,6 @@ void ParamSet::set( const std::string& key, const std::string& flag, const bool if( ! flagOpt ) { - std::cout << flag << std::endl << " : " << flagOpt->default_val.i64 << std::endl; throw std::runtime_error( "unknown flag " + flag ); } From c838aea3aa0b98bc69a1bd8c2c85b5aeb543dbbf Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Wed, 20 Aug 2014 10:47:22 +0200 Subject: [PATCH 2/3] Common: fix out-of-bounds access in setters functions of ParamSet * Avoid const_cast. * Same way in all AvTranscoder to get the FFmpeg errors by using an array fo char passed to av_strerror function. * Warnings from Coverity Scan. --- src/AvTranscoder/common.cpp | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/AvTranscoder/common.cpp b/src/AvTranscoder/common.cpp index cbdad3b8..22e2b157 100644 --- a/src/AvTranscoder/common.cpp +++ b/src/AvTranscoder/common.cpp @@ -33,9 +33,8 @@ void ParamSet::set( const std::string& key, const std::string& flag, const bool error = av_opt_get_int( _objContext, key.c_str(), AV_OPT_SEARCH_CHILDREN, &optVal ); if( error != 0 ) { - std::string err( "", AV_ERROR_MAX_STRING_SIZE ); - //av_make_error_string( const_cast(err.c_str()), err.size(), error ); - av_strerror( error, const_cast(err.c_str()), err.size() ); + char err[AV_ERROR_MAX_STRING_SIZE]; + av_strerror( error, err, AV_ERROR_MAX_STRING_SIZE ); throw std::runtime_error( "unknown key " + key + ": " + err ); } @@ -47,9 +46,8 @@ void ParamSet::set( const std::string& key, const std::string& flag, const bool error = av_opt_set_int( _objContext, key.c_str(), optVal, AV_OPT_SEARCH_CHILDREN ); if( error != 0 ) { - std::string err( "", AV_ERROR_MAX_STRING_SIZE ); - //av_make_error_string( const_cast(err.c_str()), err.size(), error ); - av_strerror( error, const_cast(err.c_str()), err.size() ); + char err[AV_ERROR_MAX_STRING_SIZE]; + av_strerror( error, err, AV_ERROR_MAX_STRING_SIZE ); throw std::runtime_error( "setting " + key + " parameter to " + flag + ": " + err ); } } @@ -59,9 +57,8 @@ void ParamSet::set( const std::string& key, const bool value ) int error = av_opt_set_int( _objContext, key.c_str(), value, AV_OPT_SEARCH_CHILDREN ); if( error != 0 ) { - std::string err( "", AV_ERROR_MAX_STRING_SIZE ); - //av_make_error_string( const_cast(err.c_str()), err.size(), error ); - av_strerror( error, const_cast(err.c_str()), err.size() ); + char err[AV_ERROR_MAX_STRING_SIZE]; + av_strerror( error, err, AV_ERROR_MAX_STRING_SIZE ); throw std::runtime_error( "setting " + key + " parameter to " + ( value ? "true" : "false" ) + ": " + err ); } } @@ -75,9 +72,8 @@ void ParamSet::set( const std::string& key, const int value ) { std::ostringstream os; os << value; - std::string err( "", AV_ERROR_MAX_STRING_SIZE ); - //av_make_error_string( const_cast(err.c_str()), err.size(), error ); - av_strerror( error, const_cast(err.c_str()), err.size() ); + char err[AV_ERROR_MAX_STRING_SIZE]; + av_strerror( error, err, AV_ERROR_MAX_STRING_SIZE ); throw std::runtime_error( "setting " + key + " parameter to " + os.str() + ": " + err ); } } @@ -92,9 +88,8 @@ void ParamSet::set( const std::string& key, const int num, const int den ) { std::ostringstream os; os << num << "/" << den; - std::string err( "", AV_ERROR_MAX_STRING_SIZE ); - //av_make_error_string( const_cast(err.c_str()), err.size(), error ); - av_strerror( error, const_cast(err.c_str()), err.size() ); + char err[AV_ERROR_MAX_STRING_SIZE]; + av_strerror( error, err, AV_ERROR_MAX_STRING_SIZE ); throw std::runtime_error( "setting " + key + " parameter to " + os.str() + ": " + err ); } } @@ -106,9 +101,8 @@ void ParamSet::set( const std::string& key, const double value ) { std::ostringstream os; os << value; - std::string err( "", AV_ERROR_MAX_STRING_SIZE ); - //av_make_error_string( const_cast(err.c_str()), err.size(), error ); - av_strerror( error, const_cast(err.c_str()), err.size() ); + char err[AV_ERROR_MAX_STRING_SIZE]; + av_strerror( error, err, AV_ERROR_MAX_STRING_SIZE ); throw std::runtime_error( "setting " + key + " parameter to " + os.str() + ": " + err ); } } @@ -118,9 +112,8 @@ void ParamSet::set( const std::string& key, const std::string& value ) int error = av_opt_set( _objContext, key.c_str(), value.c_str(), AV_OPT_SEARCH_CHILDREN ); if( error != 0 ) { - std::string err( "", AV_ERROR_MAX_STRING_SIZE ); - //av_make_error_string( const_cast(err.c_str()), err.size(), error ); - av_strerror( error, const_cast(err.c_str()), err.size() ); + char err[AV_ERROR_MAX_STRING_SIZE]; + av_strerror( error, err, AV_ERROR_MAX_STRING_SIZE ); throw std::runtime_error( "setting " + key + " parameter to " + value + ": " + err ); } } From a0aed62956f5d8108474c443e30c9e1d9f8b4fbb Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Wed, 20 Aug 2014 10:49:10 +0200 Subject: [PATCH 3/3] VideoStreamProperties: fix uninitialized variable topFieldFirst Warning from Coverity Scan. --- src/AvTranscoder/Metadatas/VideoStreamProperties.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/AvTranscoder/Metadatas/VideoStreamProperties.hpp b/src/AvTranscoder/Metadatas/VideoStreamProperties.hpp index 93fdf382..4d3b3683 100644 --- a/src/AvTranscoder/Metadatas/VideoStreamProperties.hpp +++ b/src/AvTranscoder/Metadatas/VideoStreamProperties.hpp @@ -124,6 +124,7 @@ VideoProperties videoStreamInfo( vp.maxBitRate = codec_context->rc_max_rate; vp.minBitRate = codec_context->rc_min_rate; vp.isInterlaced = false; + vp.topFieldFirst = false; vp.ticksPerFrame = codec_context->ticks_per_frame, vp.width = codec_context->width, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy