Skip to content
Permalink
Browse files

firmware: MMAL: Avoid lockup with opaque stripes into opaque frame ca…

…llback

See: raspberrypi/userland#390

firmware: RIL null_sink: Support MMAL opaque input
See: raspberrypi/userland#388

firmware: arm_display: Avoid hang when display_rotate is used with vc4-kms-v3d driver
See: guysoft/FullPageOS#137

firmware: 2ndstage: Fix printing of zero as a decimal in uart_printf

firmware: cdi_camera: Allow GPIO control on FS and FE events

firmware: IL ISP: Add option to alter the shift in the output stage
firmware: IL ISP: Add option for adjusting the input CCM
firmware: vc_image: fix size calcs for YUV_UV_16
firmware: vc_image_helper: Add YUV 16 bit formats to second header
firmware: isp: Avoid setting vpitch in YUVUV16 cases
firmware: isp: Handle 16 bit yuv in ip_is_supported_format

firmware: hello_fft: Fixup offset calculation when mapping/unmapping buffers
See: raspberrypi/userland#408
  • Loading branch information...
popcornmix committed Jul 21, 2017
1 parent 555846c commit 5ad8a401aef4973e19678c1510f52d34a558eea4
Showing with 100 additions and 0 deletions.
  1. BIN bootcode.bin
  2. BIN fixup.dat
  3. BIN fixup_cd.dat
  4. BIN fixup_db.dat
  5. BIN fixup_x.dat
  6. BIN start.elf
  7. BIN start_cd.elf
  8. BIN start_db.elf
  9. BIN start_x.elf
  10. BIN vc/hardfp/opt/vc/bin/mmal_vc_diag
  11. BIN vc/hardfp/opt/vc/bin/raspistill
  12. BIN vc/hardfp/opt/vc/bin/raspivid
  13. BIN vc/hardfp/opt/vc/bin/raspividyuv
  14. BIN vc/hardfp/opt/vc/bin/raspiyuv
  15. BIN vc/hardfp/opt/vc/bin/vcdbg
  16. BIN vc/hardfp/opt/vc/lib/libEGL_static.a
  17. BIN vc/hardfp/opt/vc/lib/libGLESv2_static.a
  18. BIN vc/hardfp/opt/vc/lib/libdebug_sym_static.a
  19. BIN vc/hardfp/opt/vc/lib/libkhrn_client.a
  20. BIN vc/hardfp/opt/vc/lib/libkhrn_static.a
  21. BIN vc/hardfp/opt/vc/lib/libmmal.so
  22. BIN vc/hardfp/opt/vc/lib/libmmal_components.so
  23. BIN vc/hardfp/opt/vc/lib/libmmal_core.so
  24. BIN vc/hardfp/opt/vc/lib/libmmal_util.so
  25. BIN vc/hardfp/opt/vc/lib/libmmal_vc_client.so
  26. BIN vc/hardfp/opt/vc/lib/libopenmaxil.so
  27. BIN vc/hardfp/opt/vc/lib/libvcfiled_check.a
  28. BIN vc/hardfp/opt/vc/lib/libvchostif.a
  29. BIN vc/hardfp/opt/vc/lib/libvcilcs.a
  30. +15 −0 vc/sdk/opt/vc/include/IL/OMX_Broadcom.h
  31. +4 −0 vc/sdk/opt/vc/include/IL/OMX_Index.h
  32. +55 −0 vc/sdk/opt/vc/include/interface/mmal/mmal_parameters_camera.h
  33. +3 −0 vc/sdk/opt/vc/include/interface/mmal/mmal_parameters_video.h
  34. +15 −0 vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Broadcom.h
  35. +4 −0 vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Index.h
  36. +4 −0 vc/sdk/opt/vc/src/hello_pi/hello_fft/mailbox.c
  37. BIN vc/softfp/opt/vc/bin/mmal_vc_diag
  38. BIN vc/softfp/opt/vc/bin/raspistill
  39. BIN vc/softfp/opt/vc/bin/raspivid
  40. BIN vc/softfp/opt/vc/bin/raspividyuv
  41. BIN vc/softfp/opt/vc/bin/raspiyuv
  42. BIN vc/softfp/opt/vc/bin/vcdbg
  43. BIN vc/softfp/opt/vc/lib/libEGL_static.a
  44. BIN vc/softfp/opt/vc/lib/libGLESv2_static.a
  45. BIN vc/softfp/opt/vc/lib/libdebug_sym_static.a
  46. BIN vc/softfp/opt/vc/lib/libkhrn_client.a
  47. BIN vc/softfp/opt/vc/lib/libkhrn_static.a
  48. BIN vc/softfp/opt/vc/lib/libmmal.so
  49. BIN vc/softfp/opt/vc/lib/libmmal_components.so
  50. BIN vc/softfp/opt/vc/lib/libmmal_core.so
  51. BIN vc/softfp/opt/vc/lib/libmmal_util.so
  52. BIN vc/softfp/opt/vc/lib/libmmal_vc_client.so
  53. BIN vc/softfp/opt/vc/lib/libopenmaxil.so
  54. BIN vc/softfp/opt/vc/lib/libvcfiled_check.a
  55. BIN vc/softfp/opt/vc/lib/libvchostif.a
  56. BIN vc/softfp/opt/vc/lib/libvcilcs.a
BIN +0 Bytes (100%) bootcode.bin
Binary file not shown.
BIN +8 Bytes (100%) fixup.dat
Binary file not shown.
BIN +9 Bytes (100%) fixup_cd.dat
Binary file not shown.
BIN +9 Bytes (100%) fixup_db.dat
Binary file not shown.
BIN +9 Bytes (100%) fixup_x.dat
Binary file not shown.
BIN +7.69 KB (100%) start.elf
Binary file not shown.
BIN +6.25 KB (100%) start_cd.elf
Binary file not shown.
BIN +8.13 KB (100%) start_db.elf
Binary file not shown.
BIN +7.84 KB (100%) start_x.elf
Binary file not shown.
BIN +0 Bytes (100%) vc/hardfp/opt/vc/bin/mmal_vc_diag
Binary file not shown.
BIN +0 Bytes (100%) vc/hardfp/opt/vc/bin/raspistill
Binary file not shown.
BIN +0 Bytes (100%) vc/hardfp/opt/vc/bin/raspivid
Binary file not shown.
BIN +0 Bytes (100%) vc/hardfp/opt/vc/bin/raspividyuv
Binary file not shown.
BIN +0 Bytes (100%) vc/hardfp/opt/vc/bin/raspiyuv
Binary file not shown.
BIN +0 Bytes (100%) vc/hardfp/opt/vc/bin/vcdbg
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN +0 Bytes (100%) vc/hardfp/opt/vc/lib/libmmal.so
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN +0 Bytes (100%) vc/hardfp/opt/vc/lib/libvcilcs.a
Binary file not shown.
@@ -2636,5 +2636,20 @@ some components accepting any value >= nFrameHeight. Those ports/components will
respond to OMX_GetParameter on this index with no error and bEnabled set to OMX_TRUE.
*/

typedef struct OMX_CCMTYPE {
OMX_S32 sCcm[3][3];
OMX_S32 soffsets[3];
} OMX_PARAM_CCMTYPE;

typedef struct OMX_PARAM_CUSTOMCCMTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex;

OMX_BOOL bEnabled; /**< Enable the custom CCM. */
OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
OMX_S32 nColorOffset[3]; /**< */
} OMX_PARAM_CUSTOMCCMTYPE;

#endif
/* File EOF */
@@ -531,6 +531,10 @@ typedef enum OMX_INDEXTYPE {
OMX_IndexParamBrcmIspBlockOverride, /**< reference: OMX_PARAM_U32TYPE */
OMX_IndexParamBrcmSupportsUnalignedSliceheight, /**< reference: OMX_CONFIG_PORTBOOLEANTYPE */
OMX_IndexParamBrcmLensShadingOverride, /**< reference: OMX_PARAM_LENSSHADINGOVERRIDETYPE */
OMX_IndexParamBrcmBlackLevel, /**< reference: OMX_PARAM_U32TYPE */
OMX_IndexParamOutputShift, /**< reference: OMX_PARAM_S32TYPE */
OMX_IndexParamCcmShift, /**< reference: OMX_PARAM_S32TYPE */
OMX_IndexParamCustomCcm, /**< reference: OMX_PARAM_CUSTOMCCMTYPE */
OMX_IndexMax = 0x7FFFFFFF
} OMX_INDEXTYPE;

@@ -141,6 +141,12 @@ enum {
MMAL_PARAMETER_JPEG_RESTART_INTERVAL, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
MMAL_PARAMETER_CAMERA_ISP_BLOCK_OVERRIDE, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
MMAL_PARAMETER_LENS_SHADING_OVERRIDE, /**< Takes a @ref MMAL_PARAMETER_LENS_SHADING_T */
MMAL_PARAMETER_BLACK_LEVEL, /**< Takes a @ref MMAL_PARAMETER_UINT32_T */
MMAL_PARAMETER_RESIZE_PARAMS, /**< Takes a @ref MMAL_PARAMETER_RESIZE_T */
MMAL_PARAMETER_CROP, /**< Takes a @ref MMAL_PARAMETER_CROP_T */
MMAL_PARAMETER_OUTPUT_SHIFT, /**< Takes a @ref MMAL_PARAMETER_INT32_T */
MMAL_PARAMETER_CCM_SHIFT, /**< Takes a @ref MMAL_PARAMETER_INT32_T */
MMAL_PARAMETER_CUSTOM_CCM, /**< Takes a @ref MMAL_PARAMETER_CUSTOM_CCM_T */
};

/** Thumbnail configuration parameter type */
@@ -907,4 +913,53 @@ typedef struct MMAL_PARAMETER_LENS_SHADING_T
uint32_t ref_transform;
} MMAL_PARAMETER_LENS_SHADING_T;

/*
The mode determines the kind of resize.
MMAL_RESIZE_BOX allow the max_width and max_height to set a bounding box into
which the output must fit.
MMAL_RESIZE_BYTES allows max_bytes to set the maximum number of bytes into which the
full output frame must fit. Two flags aid the setting of the output
size. preserve_aspect_ratio sets whether the resize should
preserve the aspect ratio of the incoming
image. allow_upscaling sets whether the resize is allowed to
increase the size of the output image compared to the size of the
input image.
*/
typedef enum MMAL_RESIZEMODE_T {
MMAL_RESIZE_NONE,
MMAL_RESIZE_CROP,
MMAL_RESIZE_BOX,
MMAL_RESIZE_BYTES,
MMAL_RESIZE_DUMMY = 0x7FFFFFFF
} MMAL_RESIZEMODE_T;

typedef struct MMAL_PARAMETER_RESIZE_T {
MMAL_PARAMETER_HEADER_T hdr;

MMAL_RESIZEMODE_T mode;
uint32_t max_width;
uint32_t max_height;
uint32_t max_bytes;
MMAL_BOOL_T preserve_aspect_ratio;
MMAL_BOOL_T allow_upscaling;
} MMAL_PARAMETER_RESIZE_T;

typedef struct MMAL_PARAMETER_CROP_T {
MMAL_PARAMETER_HEADER_T hdr;

MMAL_RECT_T rect;
} MMAL_PARAMETER_CROP_T;

typedef struct MMAL_PARAMETER_CCM_T {
MMAL_RATIONAL_T ccm[3][3];
int32_t offsets[3];
} MMAL_PARAMETER_CCM_T;

typedef struct MMAL_PARAMETER_CUSTOM_CCM_T {
MMAL_PARAMETER_HEADER_T hdr;

MMAL_BOOL_T enable; /**< Enable the custom CCM. */
MMAL_PARAMETER_CCM_T ccm; /**< CCM to be used. */
} MMAL_PARAMETER_CUSTOM_CCM_T;

#endif /* MMAL_PARAMETERS_CAMERA_H */
@@ -503,6 +503,9 @@ typedef struct MMAL_PARAMETER_VIDEO_SOURCE_PATTERN_T {
MMAL_PARAMETER_HEADER_T hdr;

MMAL_SOURCE_PATTERN_T pattern;
uint32_t param; /**< Colour for PATTERN_COLOUR mode */
uint32_t framecount; /**< Number of frames to produce. 0 for continuous. */
MMAL_RATIONAL_T framerate; /**< Framerate used when determining buffer timestamps */
} MMAL_PARAMETER_VIDEO_SOURCE_PATTERN_T;


@@ -2636,5 +2636,20 @@ some components accepting any value >= nFrameHeight. Those ports/components will
respond to OMX_GetParameter on this index with no error and bEnabled set to OMX_TRUE.
*/

typedef struct OMX_CCMTYPE {
OMX_S32 sCcm[3][3];
OMX_S32 soffsets[3];
} OMX_PARAM_CCMTYPE;

typedef struct OMX_PARAM_CUSTOMCCMTYPE {
OMX_U32 nSize;
OMX_VERSIONTYPE nVersion;
OMX_U32 nPortIndex;

OMX_BOOL bEnabled; /**< Enable the custom CCM. */
OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
OMX_S32 nColorOffset[3]; /**< */
} OMX_PARAM_CUSTOMCCMTYPE;

#endif
/* File EOF */
@@ -531,6 +531,10 @@ typedef enum OMX_INDEXTYPE {
OMX_IndexParamBrcmIspBlockOverride, /**< reference: OMX_PARAM_U32TYPE */
OMX_IndexParamBrcmSupportsUnalignedSliceheight, /**< reference: OMX_CONFIG_PORTBOOLEANTYPE */
OMX_IndexParamBrcmLensShadingOverride, /**< reference: OMX_PARAM_LENSSHADINGOVERRIDETYPE */
OMX_IndexParamBrcmBlackLevel, /**< reference: OMX_PARAM_U32TYPE */
OMX_IndexParamOutputShift, /**< reference: OMX_PARAM_S32TYPE */
OMX_IndexParamCcmShift, /**< reference: OMX_PARAM_S32TYPE */
OMX_IndexParamCustomCcm, /**< reference: OMX_PARAM_CUSTOMCCMTYPE */
OMX_IndexMax = 0x7FFFFFFF
} OMX_INDEXTYPE;

@@ -44,6 +44,7 @@ void *mapmem(unsigned base, unsigned size)
int mem_fd;
unsigned offset = base % PAGE_SIZE;
base = base - offset;
size = size + offset;
/* open /dev/mem */
if ((mem_fd = open("/dev/mem", O_RDWR|O_SYNC) ) < 0) {
printf("can't open /dev/mem\nThis program should be run as root. Try prefixing command with: sudo\n");
@@ -69,6 +70,9 @@ void *mapmem(unsigned base, unsigned size)

void unmapmem(void *addr, unsigned size)
{
const intptr_t offset = (intptr_t)addr % PAGE_SIZE;
addr = (char *)addr - offset;
size = size + offset;
int s = munmap(addr, size);
if (s != 0) {
printf("munmap error %d\n", s);
BIN +0 Bytes (100%) vc/softfp/opt/vc/bin/mmal_vc_diag
Binary file not shown.
BIN +0 Bytes (100%) vc/softfp/opt/vc/bin/raspistill
Binary file not shown.
BIN +0 Bytes (100%) vc/softfp/opt/vc/bin/raspivid
Binary file not shown.
BIN +0 Bytes (100%) vc/softfp/opt/vc/bin/raspividyuv
Binary file not shown.
BIN +0 Bytes (100%) vc/softfp/opt/vc/bin/raspiyuv
Binary file not shown.
BIN +0 Bytes (100%) vc/softfp/opt/vc/bin/vcdbg
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN +0 Bytes (100%) vc/softfp/opt/vc/lib/libmmal.so
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN +0 Bytes (100%) vc/softfp/opt/vc/lib/libvcilcs.a
Binary file not shown.

0 comments on commit 5ad8a40

Please sign in to comment.
You can’t perform that action at this time.