ENUM MEDIA_ENTITY_TYPE(9)
πΈ enum media_entity_type(9) β the kernel API manual glow-up πΈ
okay so bestie, we're deep in the enum media_entity_type(9) page from the Kernel API Manual and honestly? it's giving "tiny enum, huge lore" π
let me walk you through it, no cap.
β¨ NAME β¨
enum media_entity_type β the media entity type, aka the lil tag that tells you what kind of thing a media entity is living inside π·οΈ
π SYNOPSIS π
enum media_entity_type {
MEDIA_ENTITY_TYPE_BASE ,
MEDIA_ENTITY_TYPE_VIDEO_DEVICE ,
MEDIA_ENTITY_TYPE_V4L2_SUBDEV
};
π Constants π
MEDIA_ENTITY_TYPE_BASEβ this entity is a free agent, she is not embedded in another subsystem structure. main character energy, no container π¦MEDIA_ENTITY_TYPE_VIDEO_DEVICEβ this entity is embedded inside astruct video_deviceinstance π₯MEDIA_ENTITY_TYPE_V4L2_SUBDEVβ this entity is embedded inside astruct v4l2_subdevinstance π·
π Description π
so here's the tea: media entity objects are often not instantiated directly β instead, the media entity structure gets inherited by (through embedding) other subsystem-specific structures. the media entity type is literally the label that identifies which type of subclass structure is implementing a media entity instance. iconic behavior, honestly π
this is what lets you do runtime type identification of media entities and safely cast to the correct object type. for instance β and this example ate, fr fr β a media entity structure instance embedded in a v4l2_subdev structure instance will have the type MEDIA_ENTITY_TYPE_V4L2_SUBDEV, and can safely be cast to a v4l2_subdev structure using the container_of macro. safe casting, we love to see it π«Ά
heads up bestie: the whole point here is safety. the type tag is what makes the cast legit β don't be out here casting without checking your vibe first π
π₯ SEE ALSO π₯
kernel file ./include/media/media-entity.h, plus the whole friend group π:
enum media_gobj_type(9)struct media_gobj(9)struct media_entity_enum(9)struct media_graph(9)struct media_pipeline(9)struct media_pipeline_pad(9)struct media_pipeline_pad_iter(9)struct media_pipeline_entity_iter(9)struct media_link(9)enum media_pad_signal_type(9)struct media_pad(9)struct media_entity_operations(9)struct media_entity(9)media_entity_for_each_pad(9)struct media_interface(9)struct media_intf_devnode(9)media_entity_id(9)media_type(9)media_id(9)media_gobj_gen_id(9)is_media_entity_v4l2_video_device(9)is_media_entity_v4l2_subdev(9)media_entity_enum_init(9)media_entity_enum_cleanup(9)media_entity_enum_zero(9)media_entity_enum_set(9)media_entity_enum_clear(9)media_entity_enum_test(9)media_entity_enum_test_and_set(9)media_entity_enum_empty(9)media_entity_enum_intersects(9)gobj_to_entity(9)gobj_to_pad(9)gobj_to_link(9)gobj_to_intf(9)intf_to_devnode(9)media_gobj_create(9)media_gobj_destroy(9)media_entity_pads_init(9)media_entity_cleanup(9)media_get_pad_index(9)media_create_pad_link(9)media_create_pad_links(9)media_entity_remove_links(9)__media_entity_setup_link(9)media_entity_setup_link(9)media_entity_find_link(9)media_pad_remote_pad_first(9)media_pad_remote_pad_unique(9)media_entity_remote_pad_unique(9)media_entity_remote_source_pad_unique(9)media_pad_is_streaming(9)media_entity_is_streaming(9)media_entity_pipeline(9)media_pad_pipeline(9)media_entity_get_fwnode_pad(9)media_graph_walk_init(9)media_graph_walk_cleanup(9)media_graph_walk_start(9)media_graph_walk_next(9)media_pipeline_start(9)__media_pipeline_start(9)media_pipeline_stop(9)__media_pipeline_stop(9)media_pipeline_for_each_pad(9)media_pipeline_entity_iter_init(9)media_pipeline_entity_iter_cleanup(9)media_pipeline_for_each_entity(9)media_pipeline_alloc_start(9)media_devnode_create(9)media_devnode_remove(9)media_create_intf_link(9)__media_remove_intf_link(9)media_remove_intf_link(9)__media_remove_intf_links(9)media_remove_intf_links(9)media_entity_call(9)media_create_ancillary_link(9)__media_entity_next_link(9)for_each_media_entity_data_link(9)
that's the whole page bestie, you're officially educated π§ββοΈ this one lives in ./include/media and it's stamped October 2026, so go forth and cast safely β mwah πβ¨
π¦ 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