Trying to understand how key_frames work when using FFmpeg on Windows with a USB webcam?

Command to detect key_frames [ffprobe:Windows]:

ffprobe -f dshow -video_pin_name 1 -i video="H264 USB Camera" -show_entries frame=key_frame

Output from command on my camera is a keyframe once-per-second.
Using the avformat/av_read_frame(AVInputContext *, AVPacket *), and checking the output packet flags, i.e. in_packet->flags & AV_PKT_FLAG_KEY, I’m not getting any packets with the AV_PKT_FLAG_KEY set. I’m setting the input_context similar to how I do in ffprobe:

av_dict_set(&opt, "video_pin_name", "1", 0);

Do I need to do anything different when reading frames in from the camera? I can confirm the frames do have a valid PTS and DTS, but none of them show key_frame flag set.