v4l2_subdev_...get_interval(9)
πΈ v4l2_subdev_state_get_interval β like, the whole vibe π
Ok so bestie, real talk: this is a page from the Kernel API Manual, and the function on the cover is v4l2_subdev_...get_interval(9). Yes the title is truncated, no I don't know why, the man page people just did that. The full name is v4l2_subdev_state_get_interval and it's actually so simple. Let's go. β¨
β¨ NAME β¨
v4l2_subdev_state_get_interval β get a pointer to a stream frame interval. That's it, that's the whole job. π
β¨ SYNOPSIS β¨
v4l2_subdev_state_get_interval (state , pad , ... );
Look at her. Three args, one of them is literally .... Main character energy tbh. π
β¨ ARGUMENTS β¨
stateβ the subdevice state. The whole mood board. πͺ©padβ the pad id. Which pad we're talking about, bestie. π...β the stream id, and psst, it's an optional argument. Optional, like your situationship. π
β¨ DESCRIPTION β¨
So what does it do? It returns a pointer to the frame interval for the given pad + stream, inside the subdev state. Pointer. Not a copy. Not a vibe. A pointer. π«Ά
And here's the little plot twist: for stream-unaware drivers, you get the frame interval for the corresponding pad instead. Makes sense, they don't do streams, so the pad is the whole story. π«
And if the pad doesn't exist? NULL is returned. Nothing. Nada. The void. π Don't dereference it, I'm begging.
Real talk: the return is a pointer, so check it before you touch it. If the pad doesn't exist you get NULL and that's the documented behavior, not a bug. π«‘
β¨ SEE ALSO β¨
Kernel file ./include/media/v4l2-subdev.h β go read it, it's lowkey iconic. π And here's the entire friend group, no cap, every single one:
- struct
v4l2_decode_vbi_line(9) - enum
v4l2_subdev_io_pin_bits(9) - struct
v4l2_subdev_io_pin_config(9) - struct
v4l2_subdev_core_ops(9) - struct
v4l2_subdev_tuner_ops(9) - struct
v4l2_subdev_audio_ops(9) - struct
v4l2_mbus_frame_desc_entry_csi2(9) - enum
v4l2_mbus_frame_desc_flags(9) - struct
v4l2_mbus_frame_desc_entry(9) - enum
v4l2_mbus_frame_desc_type(9) - struct
v4l2_mbus_frame_desc(9) - enum
v4l2_subdev_pre_streamon_flags(9) - struct
v4l2_subdev_video_ops(9) - struct
v4l2_subdev_vbi_ops(9) - struct
v4l2_subdev_sensor_ops(9) - enum
v4l2_subdev_ir_mode(9) - struct
v4l2_subdev_ir_parameters(9) - struct
v4l2_subdev_ir_ops(9) - struct
v4l2_subdev_pad_config(9) - struct
v4l2_subdev_stream_configs(9) - struct
v4l2_subdev_krouting(9) - struct
v4l2_subdev_state(9) - struct
v4l2_subdev_pad_ops(9) - struct
v4l2_subdev_ops(9) - struct
v4l2_subdev_internal_ops(9) - struct
v4l2_subdev_platform_data(9) - struct
v4l2_subdev(9) media_entity_to_v4l2_subdev(9)vdev_to_v4l2_subdev(9)- struct
v4l2_subdev_fh(9) to_v4l2_subdev_fh(9)v4l2_set_subdevdata(9)v4l2_get_subdevdata(9)v4l2_set_subdev_hostdata(9)v4l2_get_subdev_hostdata(9)v4l2_subdev_get_fwnode_pad_1_to_1(9)v4l2_subdev_link_validate_default(9)v4l2_subdev_link_validate(9)v4l2_subdev_has_pad_interdep(9)__v4l2_subdev_state_alloc(9)__v4l2_subdev_state_free(9)v4l2_subdev_init_finalize(9)v4l2_subdev_cleanup(9)v4l2_subdev_state_get_format(9)v4l2_subdev_state_get_crop(9)v4l2_subdev_state_get_compose(9)v4l2_subdev_get_fmt(9)v4l2_subdev_get_frame_interval(9)v4l2_subdev_set_routing(9)for_each_active_route(9)v4l2_subdev_set_routing_with_fmt(9)v4l2_subdev_routing_find_opposite_end(9)v4l2_subdev_state_get_opposite_stream_format(9)v4l2_subdev_state_xlate_streams(9)- enum
v4l2_subdev_routing_restriction(9) v4l2_subdev_routing_validate(9)v4l2_subdev_enable_streams(9)v4l2_subdev_disable_streams(9)v4l2_subdev_s_stream_helper(9)__v4l2_subdev_get_frame_desc_passthrough(9)v4l2_subdev_get_frame_desc_passthrough(9)v4l2_subdev_lock_state(9)v4l2_subdev_unlock_state(9)v4l2_subdev_lock_states(9)v4l2_subdev_unlock_states(9)v4l2_subdev_get_unlocked_active_state(9)v4l2_subdev_get_locked_active_state(9)v4l2_subdev_lock_and_get_active_state(9)v4l2_subdev_init(9)v4l2_subdev_call(9)v4l2_subdev_call_state_active(9)v4l2_subdev_call_state_try(9)v4l2_subdev_has_op(9)v4l2_subdev_notify_event(9)v4l2_subdev_is_streaming(9)
Ok that's the whole thing, you ate that. π
Later, bestie β this one lives in ./include/media, it's from the Kernel API Manual, dated October 2026. Go touch some pads (the v4l2 kind). ππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms