h264parse: Don't fake IDR without at least an i-slice

There was an override to fake an IDR as soon as a SPS/PPS
is encountered, but that's not valid, at least an i-slice is needed.

Amend the visl result, as the output is slightly more correct, not
duplicating frame_num.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7330>
This commit is contained in:
Olivier Crête 2024-10-01 16:40:13 -04:00 committed by GStreamer Marge Bot
parent 2c514ac2f1
commit 8055b0386f
2 changed files with 2 additions and 3 deletions

View file

@ -761,7 +761,7 @@
"source_checksum": "3644489dab877ffbf5497594098f63e2",
"input_file": "FM1_FT_E.264",
"output_format": "yuv420p",
"result": "46b584c89e359c39619bc144f9f29162"
"result": "de3efddc727557b89ad9b09edcfb7365"
},
{
"name": "FM2_SVA_C",

View file

@ -1116,8 +1116,7 @@ gst_h264_parse_process_nal (GstH264Parse * h264parse, GstH264NalUnit * nalu)
h264parse->field_pic_flag = slice.field_pic_flag;
}
if (G_LIKELY (nal_type != GST_H264_NAL_SLICE_IDR &&
!h264parse->push_codec))
if (G_LIKELY (nal_type != GST_H264_NAL_SLICE_IDR))
break;
/* if we need to sneak codec NALs into the stream,