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

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
...@@ -1583,7 +1583,7 @@ static int set_camera_parameters(struct vchiq_mmal_instance *instance, ...@@ -1583,7 +1583,7 @@ static int set_camera_parameters(struct vchiq_mmal_instance *instance,
static int __init mmal_init(struct bm2835_mmal_dev *dev) static int __init mmal_init(struct bm2835_mmal_dev *dev)
{ {
int ret; int ret;
struct mmal_es_format *format; struct mmal_es_format_local *format;
u32 bool_true = 1; u32 bool_true = 1;
u32 supported_encodings[MAX_SUPPORTED_ENCODINGS]; u32 supported_encodings[MAX_SUPPORTED_ENCODINGS];
int param_size; int param_size;
......
...@@ -53,7 +53,7 @@ union mmal_es_specific_format { ...@@ -53,7 +53,7 @@ union mmal_es_specific_format {
}; };
/** Definition of an elementary stream format (MMAL_ES_FORMAT_T) */ /** 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 type; /* enum mmal_es_type */
u32 encoding; /* FourCC specifying encoding of the elementary stream.*/ u32 encoding; /* FourCC specifying encoding of the elementary stream.*/
...@@ -62,10 +62,7 @@ struct mmal_es_format { ...@@ -62,10 +62,7 @@ struct mmal_es_format {
* stream. * stream.
*/ */
union mmal_es_specific_format *es; /* TODO: pointers in union mmal_es_specific_format *es; /* Type specific
* message serialisation?!?
*/
/* Type specific
* information for the * information for the
* elementary stream * elementary stream
*/ */
...@@ -77,4 +74,26 @@ struct mmal_es_format { ...@@ -77,4 +74,26 @@ struct mmal_es_format {
u8 *extradata; /**< Codec specific data */ 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 */ #endif /* MMAL_MSG_FORMAT_H */
...@@ -74,7 +74,7 @@ struct vchiq_mmal_port { ...@@ -74,7 +74,7 @@ struct vchiq_mmal_port {
struct vchiq_mmal_port_buffer current_buffer; struct vchiq_mmal_port_buffer current_buffer;
/* stream format */ /* stream format */
struct mmal_es_format format; struct mmal_es_format_local format;
/* elementry stream format */ /* elementry stream format */
union mmal_es_specific_format es; union mmal_es_specific_format es;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment