v4l2_subdev...late_streams(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– v4l2_subdev...late_streams(9) πŸ’–

okay bestie, welcome to the Kernel API Manual entry for this absolute little routing-table icon. no cap, we're translating stream bitmasks between pads, and it's giving "matchmaker for streams." πŸ’…

✨ NAME ✨

v4l2_subdev_state_xlate_streams β€” translate streams from one pad to another πŸ¦‹

✨ SYNOPSIS ✨

       u64 v4l2_subdev_state_xlate_streams (const struct v4l2_subdev_state
       *state , u32 pad0 , u32 pad1 , u64 *streams );

✨ ARGUMENTS ✨

  • state β€” Subdevice state 🫢
  • pad0 β€” The first pad
  • pad1 β€” The second pad
  • streams β€” Streams bitmask on the first pad

✨ DESCRIPTION ✨

Okay so picture this: streams on sink pads of a subdev are routed to source pads, as expressed in the subdev state routing table. πŸ—ΊοΈ Stream numbers don't necessarily match on the sink and source side of a route, and that's literally the whole plot twist.

This function translates stream numbers on pad0, expressed as a bitmask in streams, to the corresponding streams on pad1 using the routing table from the state. It returns the stream mask on pad1, and updates streams with the streams that have been found in the routing table. ✨

🚨 important vibe check: pad0 and pad1 must be a sink and a source, in any order.

πŸ’– RETURN πŸ’–

The bitmask of streams of pad1 that are routed to streams on pad0. πŸ’«

πŸ¦‹ SEE ALSO πŸ¦‹

Kernel file ./include/media/v4l2-subdev.h 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_state_get_interval(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), 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)


source/version + date check, bestie: the source path is ./include/media, the date is October 2026, and the version label is v4l2_subdev...late_streams(9). that's the whole footer, and you ate that whole routing table πŸ’–βœ¨

πŸ“¦ where this page comes from