diff --git a/src/AvTranscoder/EssenceStructures/Pixel.cpp b/src/AvTranscoder/EssenceStructures/Pixel.cpp index d0662110..a17a3a01 100644 --- a/src/AvTranscoder/EssenceStructures/Pixel.cpp +++ b/src/AvTranscoder/EssenceStructures/Pixel.cpp @@ -10,6 +10,8 @@ extern "C" { #include } +#include + namespace avtranscoder { @@ -65,7 +67,13 @@ AVPixelFormat Pixel::findPixel() const void Pixel::init( const AVPixelFormat avPixelFormat ) { - const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get( avPixelFormat ); + const AVPixFmtDescriptor* pix_desc = av_pix_fmt_desc_get( avPixelFormat ); + + if( ! pix_desc ) + { + throw std::runtime_error( "unable to find pixel format." ); + } + setBitsPerPixel ( av_get_bits_per_pixel( pix_desc ) ); setBigEndian ( pix_desc->flags & PIX_FMT_BE ); setComponents ( pix_desc->nb_components ); diff --git a/src/AvTranscoder/Metadatas/VideoStreamProperties.hpp b/src/AvTranscoder/Metadatas/VideoStreamProperties.hpp index 84996e0d..93fdf382 100644 --- a/src/AvTranscoder/Metadatas/VideoStreamProperties.hpp +++ b/src/AvTranscoder/Metadatas/VideoStreamProperties.hpp @@ -281,7 +281,7 @@ VideoProperties videoStreamInfo( const AVPixFmtDescriptor* pixFmt = av_pix_fmt_desc_get( codec_context->pix_fmt ); #else const AVPixFmtDescriptor* pixFmt = NULL; - if( codec_context->pix_fmt > 0 && codec_context->pix_fmt < PIX_FMT_NB ) + if( codec_context->pix_fmt >= 0 && codec_context->pix_fmt < PIX_FMT_NB ) pixFmt = &av_pix_fmt_descriptors[ codec_context->pix_fmt ]; #endif