diff options
author | Michael Zoran <mzoran@crowfest.net> | 2017-03-09 21:08:50 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-10 10:12:09 +0100 |
commit | ad428fc0af2eed6f2fe7fa51a7ffca5746cef1a3 (patch) | |
tree | 520b6f57653ddde8d2192a32632f9a0b790c8be7 /drivers/staging | |
parent | 4da14d5922e99dbbd609a85b18f84c32d1c27a57 (diff) | |
download | op-kernel-dev-ad428fc0af2eed6f2fe7fa51a7ffca5746cef1a3.zip op-kernel-dev-ad428fc0af2eed6f2fe7fa51a7ffca5746cef1a3.tar.gz |
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: Michael Zoran <mzoran@crowfest.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging')
3 files changed, 26 insertions, 7 deletions
diff --git a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c index 98198ff..2302f4b 100644 --- a/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c +++ b/drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c @@ -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; diff --git a/drivers/staging/vc04_services/bcm2835-camera/mmal-msg-format.h b/drivers/staging/vc04_services/bcm2835-camera/mmal-msg-format.h index 993de44..24b002e 100644 --- a/drivers/staging/vc04_services/bcm2835-camera/mmal-msg-format.h +++ b/drivers/staging/vc04_services/bcm2835-camera/mmal-msg-format.h @@ -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 */ diff --git a/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.h b/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.h index 2307997..2842ac9 100644 --- a/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.h +++ b/drivers/staging/vc04_services/bcm2835-camera/mmal-vchiq.h @@ -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; |