diff --git a/gst/videoparsers/gsth265parse.c b/gst/videoparsers/gsth265parse.c index 95ca9284c8..d2e828d025 100644 --- a/gst/videoparsers/gsth265parse.c +++ b/gst/videoparsers/gsth265parse.c @@ -1828,10 +1828,13 @@ gst_h265_parse_set_caps (GstBaseParse * parse, GstCaps * caps) } if (format == h265parse->format && align == h265parse->align) { - gst_base_parse_set_passthrough (parse, TRUE); + /* do not set CAPS and passthrough mode if VPS/SPS/PPS have not been parsed */ + if (h265parse->have_vps && h265parse->have_sps && h265parse->have_pps) { + gst_base_parse_set_passthrough (parse, TRUE); - /* we did parse codec-data and might supplement src caps */ - gst_h265_parse_update_src_caps (h265parse, caps); + /* we did parse codec-data and might supplement src caps */ + gst_h265_parse_update_src_caps (h265parse, caps); + } } else if (format == GST_H265_PARSE_FORMAT_HVC1 || format == GST_H265_PARSE_FORMAT_HEV1) { /* if input != output, and input is hevc, must split before anything else */