Commit f5a53d4e authored by Tristan Matthews's avatar Tristan Matthews

avcodec encoder: get bytes per pixel from context if needed

Falling back to 3 bytes broke the buffer allocation for BMP with ffmpeg, which
defaults to RGBA.

Fixes #9687
parent cff29563
...@@ -1017,7 +1017,11 @@ static block_t *EncodeVideo( encoder_t *p_enc, picture_t *p_pict ) ...@@ -1017,7 +1017,11 @@ static block_t *EncodeVideo( encoder_t *p_enc, picture_t *p_pict )
* bits_per_pixel value, without having to assume anything. * bits_per_pixel value, without having to assume anything.
*/ */
const int bytesPerPixel = p_enc->fmt_out.video.i_bits_per_pixel ? const int bytesPerPixel = p_enc->fmt_out.video.i_bits_per_pixel ?
p_enc->fmt_out.video.i_bits_per_pixel / 8 : 3; p_enc->fmt_out.video.i_bits_per_pixel / 8 :
p_sys->p_context->bits_per_coded_sample ?
p_sys->p_context->bits_per_coded_sample / 8 :
3;
const int blocksize = __MAX( FF_MIN_BUFFER_SIZE,bytesPerPixel * p_sys->p_context->height * p_sys->p_context->width + 200 ); const int blocksize = __MAX( FF_MIN_BUFFER_SIZE,bytesPerPixel * p_sys->p_context->height * p_sys->p_context->width + 200 );
block_t *p_block = block_Alloc( blocksize ); block_t *p_block = block_Alloc( blocksize );
if( unlikely(p_block == NULL) ) if( unlikely(p_block == NULL) )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment