Skip to content

Commit 5a6ae8c

Browse files
committed
No need to check bits per pixel of planes in mono images.
1 parent b294707 commit 5a6ae8c

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/libde265-dec.c

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -444,20 +444,25 @@ gst_libde265_dec_get_buffer (de265_decoder_context * ctx,
444444
goto fallback;
445445
}
446446

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+
}
455461
}
456462

457463
int bits_per_pixel = de265_get_bits_per_pixel (img, 0);
458464
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);
461466
if (format == GST_VIDEO_FORMAT_UNKNOWN) {
462467
goto fallback;
463468
}

0 commit comments

Comments
 (0)