This is required and must be unique within the containing LayoutModel. Clients should prudently reuse VideoCanvas IDs. This allows the backend to keep assigning video streams to the same canvas as much as possible.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-04-09 UTC."],[],[],null,["# meet::VideoCanvas Struct Reference\n\nmeet::VideoCanvas\n=================\n\n| **Developer Preview:** Available as part of the [Google Workspace Developer Preview Program](https://developers.google.com/workspace/preview), which grants early access to certain features. \n|\n| **To use the Meet Media API to access real-time media from a conference, the Google Cloud project, OAuth principal, and all participants in the conference must be enrolled in the Developer Preview Program.**\n\nSummary\n-------\n\n| ### Public types ||\n|---------------------------------------------------------------------------------------|------|\n| [AssignmentProtocol](#structmeet_1_1_video_canvas_1a04f589eee96315bea4a6c6fddcc02d89) | enum |\n\n| ### Public attributes ||\n|--------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [assignment_protocol](#structmeet_1_1_video_canvas_1a8c8645d277154d5646a412ed9c03e63f)` = AssignmentProtocol::kRelevant` | `AssignmentProtocol` The protocol that governs how the backend should assign a video feed to this canvas. |\n| [dimensions](#structmeet_1_1_video_canvas_1adb02d95d03981b2a69ea6f36db1df426) | [CanvasDimensions](/workspace/meet/media-api/reference/cpp/struct/meet/canvas-dimensions#structmeet_1_1_canvas_dimensions) The dimensions for this video canvas. |\n| [id](#structmeet_1_1_video_canvas_1a63fd9b4343e97aee614afb79585b37f0)` = 0` | `int32_t` An identifier for the video canvas. |\n\nPublic types\n------------\n\n### AssignmentProtocol\n\n```c++\n meet::VideoCanvas::AssignmentProtocol\n``` \n\nPublic attributes\n-----------------\n\n### assignment_protocol\n\n```c++\nAssignmentProtocol meet::VideoCanvas::assignment_protocol = AssignmentProtocol::kRelevant\n``` \nThe protocol that governs how the backend should assign a video feed to this canvas. \n\n### dimensions\n\n```c++\nCanvasDimensions meet::VideoCanvas::dimensions\n``` \nThe dimensions for this video canvas.\n\nFailure to provide this will result in an error. \n\n### id\n\n```c++\nint32_t meet::VideoCanvas::id = 0\n``` \nAn identifier for the video canvas.\n\nThis is required and must be unique within the containing [LayoutModel](/workspace/meet/media-api/reference/cpp/struct/meet/layout-model#structmeet_1_1_layout_model). Clients should prudently reuse [VideoCanvas](/workspace/meet/media-api/reference/cpp/struct/meet/video-canvas#structmeet_1_1_video_canvas) IDs. This allows the backend to keep assigning video streams to the same canvas as much as possible."]]