media_pipeline_start(9)
π media_pipeline_start β "everybody's streaming now" β¨
Bestie. This is media_pipeline_start(9) from the Kernel API Manual, section 9, and it is literally the function that flips a whole media pipeline to streaming mode. Let's get into it π«Ά
β¨ SYNOPSIS β¨
int media_pipeline_start (struct media_pad *origin , struct media_pipeline *pipe );
π ARGUMENTS π
originβ Starting pad. This is where the walk begins, bestie, it's giving main character energy πpipeβ Media pipeline to be assigned to all pads in the pipeline.
πΈ DESCRIPTION πΈ
Okay so here's the vibe: media_pipeline_start marks all the pads connected to pad origin β through enabled links, either directly or indirectly β as streaming. Not just the neighbours, not just the besties two hops away, the whole connected crew. Periodt π
Then it takes the given pipeline object and assigns it to every pad in the pipeline, storing it in the media_pad pipe field. So every pad in that pipeline now knows which pipeline it belongs to. Iconic behaviour, no cap.
β οΈ Nested callers, listen up: calls to this function can be nested, and in that case the exact same number of media_pipeline_stop calls will be required to stop streaming. So don't think one stop undoes five starts β that's not the math, and the way that math works is not negotiable π
β οΈ And the other big one: the pipeline pointer must be identical for all nested calls to media_pipeline_start. Same pointer, every time. No mixing and matching, fr fr.
Also, the signature hands back an int β the page doesn't spell out anything more about it, so that's all we're saying π
π₯ SEE ALSO π₯
So many friends, so many cross-references. The kernel file is ./include/media/media-entity.h and here's the whole roll call:
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)
enum media_entity_type(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_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)
Okay that's the whole page, you ate that π This one lives in ./include/media and the version stamp is October 2026 β so like, future-coded of it. Go forth and start some pipelines, bestie πβ¨
π¦ 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