@@ -444,20 +444,25 @@ gst_libde265_dec_get_buffer (de265_decoder_context * ctx,
444
444
goto fallback ;
445
445
}
446
446
447
- if (de265_get_bits_per_pixel (img , 0 ) != de265_get_bits_per_pixel (img , 1 ) ||
448
- de265_get_bits_per_pixel (img , 0 ) != de265_get_bits_per_pixel (img , 2 ) ||
449
- de265_get_bits_per_pixel (img , 1 ) != de265_get_bits_per_pixel (img , 2 )) {
450
- GST_DEBUG_OBJECT (dec ,
451
- "input format has multiple bits per pixel (%d/%d/%d)" ,
452
- de265_get_bits_per_pixel (img , 0 ), de265_get_bits_per_pixel (img , 1 ),
453
- de265_get_bits_per_pixel (img , 2 ));
454
- goto fallback ;
447
+ enum de265_chroma chroma =
448
+ _gst_libde265_image_format_to_chroma (spec -> format );
449
+ if (chroma != de265_chroma_mono ) {
450
+ if (de265_get_bits_per_pixel (img , 0 ) != de265_get_bits_per_pixel (img , 1 )
451
+ || de265_get_bits_per_pixel (img , 0 ) != de265_get_bits_per_pixel (img ,
452
+ 2 )
453
+ || de265_get_bits_per_pixel (img , 1 ) != de265_get_bits_per_pixel (img ,
454
+ 2 )) {
455
+ GST_DEBUG_OBJECT (dec ,
456
+ "input format has multiple bits per pixel (%d/%d/%d)" ,
457
+ de265_get_bits_per_pixel (img , 0 ), de265_get_bits_per_pixel (img , 1 ),
458
+ de265_get_bits_per_pixel (img , 2 ));
459
+ goto fallback ;
460
+ }
455
461
}
456
462
457
463
int bits_per_pixel = de265_get_bits_per_pixel (img , 0 );
458
464
GstVideoFormat format =
459
- _gst_libde265_get_video_format (_gst_libde265_image_format_to_chroma
460
- (spec -> format ), bits_per_pixel );
465
+ _gst_libde265_get_video_format (chroma , bits_per_pixel );
461
466
if (format == GST_VIDEO_FORMAT_UNKNOWN ) {
462
467
goto fallback ;
463
468
}
0 commit comments