Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad428fc0 authored by Michael Zoran's avatar Michael Zoran Committed by Greg Kroah-Hartman
Browse files

staging: bcm2835-camera: Create struct mmal_es_format_local to mirror struct mmal_es_format



The struct struct mmal_es_format is passed between the firmware which has
pointers.  A local version of mmal_es_format is also used.

Luckly, the two versions are always memberwise copied from each other
so simply have different structures for the local and msg versions.

Signed-off-by: default avatarMichael Zoran <mzoran@crowfest.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4da14d59
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1583,7 +1583,7 @@ static int set_camera_parameters(struct vchiq_mmal_instance *instance,
static int __init mmal_init(struct bm2835_mmal_dev *dev)
{
	int ret;
	struct mmal_es_format *format;
	struct mmal_es_format_local *format;
	u32 bool_true = 1;
	u32 supported_encodings[MAX_SUPPORTED_ENCODINGS];
	int param_size;
+24 −5
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ union mmal_es_specific_format {
};

/** Definition of an elementary stream format (MMAL_ES_FORMAT_T) */
struct mmal_es_format {
struct mmal_es_format_local {
	u32 type;      /* enum mmal_es_type */

	u32 encoding;  /* FourCC specifying encoding of the elementary stream.*/
@@ -62,10 +62,7 @@ struct mmal_es_format {
			       * stream.
			       */

	union mmal_es_specific_format *es; /* TODO: pointers in
					    * message serialisation?!?
					    */
					    /* Type specific
	union mmal_es_specific_format *es;  /* Type specific
					     * information for the
					     * elementary stream
					     */
@@ -77,4 +74,26 @@ struct mmal_es_format {
	u8  *extradata;           /**< Codec specific data */
};

/** Remote definition of an elementary stream format (MMAL_ES_FORMAT_T) */
struct mmal_es_format {
	u32 type;      /* enum mmal_es_type */

	u32 encoding;  /* FourCC specifying encoding of the elementary stream.*/
	u32 encoding_variant; /* FourCC specifying the specific
			       * encoding variant of the elementary
			       * stream.
			       */

	u32 es; /* Type specific
		 * information for the
		 * elementary stream
		 */

	u32 bitrate;        /**< Bitrate in bits per second */
	u32 flags; /**< Flags describing properties of the elementary stream. */

	u32 extradata_size;       /**< Size of the codec specific data */
	u32 extradata;           /**< Codec specific data */
};

#endif /* MMAL_MSG_FORMAT_H */
+1 −1
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ struct vchiq_mmal_port {
	struct vchiq_mmal_port_buffer current_buffer;

	/* stream format */
	struct mmal_es_format format;
	struct mmal_es_format_local format;
	/* elementry stream format */
	union mmal_es_specific_format es;