summaryrefslogtreecommitdiff
path: root/src/android/mm
AgeCommit message (Expand)Author
2022-05-04libcamera: Replace toString with operator<<() for format classesLaurent Pinchart
2021-12-06android: Introduce PlatformFrameBufferAllocatorHirokazu Honda
2021-11-08android: mm: Null check for CameraBufferManagerUmang Jain
2021-09-09android: mm: cros_camera_buffer: Log failure error on cleanupUmang Jain
2021-09-07libcamera: formats: Add planeSize() helpers to PixelFormatInfoLaurent Pinchart
2021-09-06android: Cleanup libcamera namespace usageUmang Jain
2021-08-31android: generic_camera_buffer: Fix bufferLength_ initializationLaurent Pinchart
2021-08-30libcamera: mapped_framebuffer: Return plane begin address by MappedBuffer::ma...Hirokazu Honda
2021-08-27android: camera_buffer: Add stride/offset/size functionHirokazu Honda
2021-08-27android: camera_buffer: Map buffer in the first plane() callHirokazu Honda
2021-08-27android: generic_camera_buffer: Correct buffer mappingHirokazu Honda
2021-08-10libcamera: Give MappedFrameBuffer its own implementationKieran Bingham
2021-08-06android: mm: cros_camera_buffer: Fix unused parameterHirokazu Honda
2021-08-03libcamera: base: class: Don't pass Extensible pointer to Private constructorLaurent Pinchart
2021-07-11libcamera: buffer: Rename buffer.h to framebuffer.hLaurent Pinchart
2021-06-28android: mm: cros_camera_buffer: Drop undefined functionsLaurent Pinchart
2021-06-25libcamera/base: Move extended base functionalityKieran Bingham
2021-06-25android: mm: cros_camera_buffer: Fix wrong indexing in plane()Hirokazu Honda
2021-06-01android: Fix unused parameter warnings on Chrome OSLaurent Pinchart
2021-05-31android: Don't rely on indirect inclusion of unistd.hLaurent Pinchart
2021-05-05src: android: Rectify internal header's #include pathUmang Jain
2021-04-04android: mm: cros: Fix compilationLaurent Pinchart
2021-04-04android: mm: cros: Handle buffer registration failureHirokazu Honda
2021-03-03android: Introduce Chromium OS buffer managerJacopo Mondi
2021-03-03android: mm: Provide helper macro for PIMPLJacopo Mondi
2021-03-03android: camera_buffer: Add method to get the JPEG blob sizeJacopo Mondi
2021-03-03android: post_processor: Use CameraBuffer APIJacopo Mondi
2021-03-03android: camera_buffer: Implement libcamera::ExtensibleJacopo Mondi
2021-03-03android: camera_buffer: Drop 'const' from buffer_handle_tJacopo Mondi
2021-03-03android: Introduce CameraBuffer interfaceJacopo Mondi
--+ | | * | | ipa_control_value_entry | | hdr.size | * \ | #hdr.entries - 1 | | | * +-------------------------+ | | * | empty space (optional) | | | * +-------------------------+ <--´ . | * / | ... | | entry[n].offset | * Data | | ... | | | * section | | value data for entry #n | <-----´ | * \ | ... | | * +-------------------------+ | * | empty space (optional) | | * +-------------------------+ <-------------------------´ * ~~~~ * * The packet header contains the size of the packet, the number of entries, and * the offset from the beginning of the packet to the data section. The packet * entries array immediately follows the header. The data section starts at the * offset ipa_controls_header::data_offset from the beginning of the packet, and * shall be aligned to a multiple of 8 bytes. * * Entries are described by the ipa_control_value_entry structure. They contain * the numerical ID of the control, its type, and the number of control values. * * The control values are stored in the data section in the platform's native * format. The ipa_control_value_entry::offset field stores the offset from the * beginning of the data section to the values. * * All control values in the data section shall be stored in the same order as * the respective control entries, shall be aligned to a multiple of 8 bytes, * and shall be contiguous in memory. * * Empty spaces may be present between the end of the entries array and the * data section, and after the data section. They shall be ignored when parsing * the packet. * * The following diagram describes the layout of the ControlInfoMap packet. * * ~~~~ * +-------------------------+ . . * Header / | ipa_controls_header | | | * | | | | | * \ | | | | * +-------------------------+ | | * / | ipa_control_info_entry | | hdr.data_offset | * | | #0 | | | * Control | +-------------------------+ | | * info | | ... | | | * entries | +-------------------------+ | | * | | ipa_control_info_entry | | hdr.size | * \ | #hdr.entries - 1 | | | * +-------------------------+ | | * | empty space (optional) | | | * +-------------------------+ <--´ . | * / | ... | | entry[n].offset | * Data | | ... | | | * section | | info data for entry #n | <-----´ | * \ | ... | | * +-------------------------+ | * | empty space (optional) | | * +-------------------------+ <-------------------------´ * ~~~~ * * The packet header is identical to the ControlList packet header. * * Entries are described by the ipa_control_info_entry structure. They contain * the numerical ID and type of the control. The control info data is stored * in the data section as described by the following diagram. * * ~~~~ * +-------------------------+ . * / | ... | | entry[n].offset * | +-------------------------+ <-----´ * Data | | minimum value (#n) | \ * section | +-------------------------+ | Entry #n * | | maximum value (#n) | / * | +-------------------------+ * \ | ... | * +-------------------------+ * ~~~~ * * The minimum and maximum value are stored in the platform's native data * format. The ipa_control_info_entry::offset field stores the offset from the * beginning of the data section to the info data. * * Info data in the data section shall be stored in the same order as the * entries array, shall be aligned to a multiple of 8 bytes, and shall be * contiguous in memory. * * As for the ControlList packet, empty spaces may be present between the end of * the entries array and the data section, and after the data section. They * shall be ignored when parsing the packet. */ /** * \def IPA_CONTROLS_FORMAT_VERSION * \brief The current control serialization format version */ /** * \struct ipa_controls_header * \brief Serialized control packet header * \var ipa_controls_header::version * Control packet format version number (shall be IPA_CONTROLS_FORMAT_VERSION) * \var ipa_controls_header::handle * For ControlInfoMap packets, this field contains a unique non-zero handle * generated when the ControlInfoMap is serialized. For ControlList packets, * this field contains the handle of the corresponding ControlInfoMap. * \var ipa_controls_header::entries * Number of entries in the packet * \var ipa_controls_header::size * The total packet size in bytes * \var ipa_controls_header::data_offset * Offset in bytes from the beginning of the packet of the data section start * \var ipa_controls_header::reserved * Reserved for future extensions */ static_assert(sizeof(ipa_controls_header) == 32, "Invalid ABI size change for struct ipa_control_header"); /** * \struct ipa_control_value_entry * \brief Description of a serialized ControlValue entry * \var ipa_control_value_entry::id * The numerical ID of the control * \var ipa_control_value_entry::type * The type of the control (defined by enum ControlType) * \var ipa_control_value_entry::is_array * True if the control value stores an array, false otherwise * \var ipa_control_value_entry::count * The number of control array entries for array controls (1 otherwise) * \var ipa_control_value_entry::offset * The offset in bytes from the beginning of the data section to the control * value data (shall be a multiple of 8 bytes). * \var ipa_control_value_entry::padding * Padding bytes (shall be set to 0) */ static_assert(sizeof(ipa_control_value_entry) == 16, "Invalid ABI size change for struct ipa_control_value_entry"); /** * \struct ipa_control_info_entry * \brief Description of a serialized ControlInfo entry * \var ipa_control_info_entry::id * The numerical ID of the control * \var ipa_control_info_entry::type * The type of the control (defined by enum ControlType) * \var ipa_control_info_entry::offset * The offset in bytes from the beginning of the data section to the control * info data (shall be a multiple of 8 bytes) * \var ipa_control_info_entry::padding * Padding bytes (shall be set to 0) */ static_assert(sizeof(ipa_control_info_entry) == 16, "Invalid ABI size change for struct ipa_control_info_entry");