From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: Umang Jain <umang.jain@ideasonboard.com> Cc: linux-media@vger.kernel.org, kernel-list@raspberrypi.com, linux-kernel@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-staging@lists.linux.dev, Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Dave Stevenson <dave.stevenson@raspberrypi.com>, Florian Fainelli <f.fainelli@gmail.com>, Naushir Patuck <naush@raspberrypi.com>, David Plowman <david.plowman@raspberrypi.com>, Kieran Bingham <kieran.bingham@ideasonboard.com> Subject: Re: [PATCH 06/14] staging: mmal_vchiq: Add image formats to be used by bcm2835-isp Date: Tue, 22 Nov 2022 01:21:56 +0200 [thread overview] Message-ID: <Y3wIFNGQst623Se4@pendragon.ideasonboard.com> (raw) In-Reply-To: <20221121214722.22563-7-umang.jain@ideasonboard.com> Hi Umang and Dave, Thank you for the patch. On Tue, Nov 22, 2022 at 03:17:14AM +0530, Umang Jain wrote: > From: Dave Stevenson <dave.stevenson@raspberrypi.com> > > The bcm2835-isp supports Bayer, so add in the encodings for them. > Also, Add support for monochrome image formats in the various MIPI > packings. > > Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> > Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> > --- > .../vc04_services/vchiq-mmal/mmal-encodings.h | 62 +++++++++++++++++++ > 1 file changed, 62 insertions(+) > > diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h b/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h > index e15ae7b24f73..4711877a9711 100644 > --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h > +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h > @@ -69,6 +69,68 @@ > */ > #define MMAL_ENCODING_OPAQUE MMAL_FOURCC('O', 'P', 'Q', 'V') > > +/* Bayer formats /* * Bayer formats > + * FourCC values copied from V4L2 where defined. > + */ > +/* 8 bit per pixel Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR8 MMAL_FOURCC('B', 'A', '8', '1') > +#define MMAL_ENCODING_BAYER_SGBRG8 MMAL_FOURCC('G', 'B', 'R', 'G') > +#define MMAL_ENCODING_BAYER_SGRBG8 MMAL_FOURCC('G', 'R', 'B', 'G') > +#define MMAL_ENCODING_BAYER_SRGGB8 MMAL_FOURCC('R', 'G', 'G', 'B') > + > +/* 10 bit per pixel packed Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR10P MMAL_FOURCC('p', 'B', 'A', 'A') > +#define MMAL_ENCODING_BAYER_SGRBG10P MMAL_FOURCC('p', 'g', 'A', 'A') > +#define MMAL_ENCODING_BAYER_SGBRG10P MMAL_FOURCC('p', 'G', 'A', 'A') SGBRG should go before SGRBG, like for the raw 8 formats. Same below for the 12P, 10 and 12 formats. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > +#define MMAL_ENCODING_BAYER_SRGGB10P MMAL_FOURCC('p', 'R', 'A', 'A') > + > +/* 12 bit per pixel packed Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR12P MMAL_FOURCC('p', 'B', '1', '2') > +#define MMAL_ENCODING_BAYER_SGRBG12P MMAL_FOURCC('p', 'g', '1', '2') > +#define MMAL_ENCODING_BAYER_SGBRG12P MMAL_FOURCC('p', 'G', '1', '2') > +#define MMAL_ENCODING_BAYER_SRGGB12P MMAL_FOURCC('p', 'R', '1', '2') > + > +/* 14 bit per pixel Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR14P MMAL_FOURCC('p', 'B', 'E', 'E') > +#define MMAL_ENCODING_BAYER_SGBRG14P MMAL_FOURCC('p', 'G', 'E', 'E') > +#define MMAL_ENCODING_BAYER_SGRBG14P MMAL_FOURCC('p', 'g', 'E', 'E') > +#define MMAL_ENCODING_BAYER_SRGGB14P MMAL_FOURCC('p', 'R', 'E', 'E') > + > +/* 16 bit per pixel Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR16 MMAL_FOURCC('B', 'G', '1', '6') > +#define MMAL_ENCODING_BAYER_SGBRG16 MMAL_FOURCC('G', 'B', '1', '6') > +#define MMAL_ENCODING_BAYER_SGRBG16 MMAL_FOURCC('G', 'R', '1', '6') > +#define MMAL_ENCODING_BAYER_SRGGB16 MMAL_FOURCC('R', 'G', '1', '6') > + > +/* 10 bit per pixel unpacked (16bit) Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR10 MMAL_FOURCC('B', 'G', '1', '0') > +#define MMAL_ENCODING_BAYER_SGRBG10 MMAL_FOURCC('B', 'A', '1', '0') > +#define MMAL_ENCODING_BAYER_SGBRG10 MMAL_FOURCC('G', 'B', '1', '0') > +#define MMAL_ENCODING_BAYER_SRGGB10 MMAL_FOURCC('R', 'G', '1', '0') > + > +/* 12 bit per pixel unpacked (16bit) Bayer formats */ > +#define MMAL_ENCODING_BAYER_SBGGR12 MMAL_FOURCC('B', 'G', '1', '2') > +#define MMAL_ENCODING_BAYER_SGRBG12 MMAL_FOURCC('B', 'A', '1', '2') > +#define MMAL_ENCODING_BAYER_SGBRG12 MMAL_FOURCC('G', 'B', '1', '2') > +#define MMAL_ENCODING_BAYER_SRGGB12 MMAL_FOURCC('R', 'G', '1', '2') > + > +/* 14 bit per pixel unpacked (16bit) Bayer formats */ > +#define MMAL_ENCODING_BAYER_SBGGR14 MMAL_FOURCC('B', 'G', '1', '4') > +#define MMAL_ENCODING_BAYER_SGBRG14 MMAL_FOURCC('G', 'B', '1', '4') > +#define MMAL_ENCODING_BAYER_SGRBG14 MMAL_FOURCC('G', 'R', '1', '4') > +#define MMAL_ENCODING_BAYER_SRGGB14 MMAL_FOURCC('R', 'G', '1', '4') > + > +/* MIPI packed monochrome images */ > +#define MMAL_ENCODING_GREY MMAL_FOURCC('G', 'R', 'E', 'Y') > +#define MMAL_ENCODING_Y10P MMAL_FOURCC('Y', '1', '0', 'P') > +#define MMAL_ENCODING_Y12P MMAL_FOURCC('Y', '1', '2', 'P') > +#define MMAL_ENCODING_Y14P MMAL_FOURCC('Y', '1', '4', 'P') > +#define MMAL_ENCODING_Y16 MMAL_FOURCC('Y', '1', '6', ' ') > +/* Unpacked monochrome formats (16bit per sample, but only N LSBs used) */ > +#define MMAL_ENCODING_Y10 MMAL_FOURCC('Y', '1', '0', ' ') > +#define MMAL_ENCODING_Y12 MMAL_FOURCC('Y', '1', '2', ' ') > +#define MMAL_ENCODING_Y14 MMAL_FOURCC('Y', '1', '4', ' ') > + > /** An EGL image handle > */ > #define MMAL_ENCODING_EGL_IMAGE MMAL_FOURCC('E', 'G', 'L', 'I') -- Regards, Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com> To: Umang Jain <umang.jain@ideasonboard.com> Cc: linux-media@vger.kernel.org, kernel-list@raspberrypi.com, linux-kernel@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-staging@lists.linux.dev, Broadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>, Dave Stevenson <dave.stevenson@raspberrypi.com>, Florian Fainelli <f.fainelli@gmail.com>, Naushir Patuck <naush@raspberrypi.com>, David Plowman <david.plowman@raspberrypi.com>, Kieran Bingham <kieran.bingham@ideasonboard.com> Subject: Re: [PATCH 06/14] staging: mmal_vchiq: Add image formats to be used by bcm2835-isp Date: Tue, 22 Nov 2022 01:21:56 +0200 [thread overview] Message-ID: <Y3wIFNGQst623Se4@pendragon.ideasonboard.com> (raw) In-Reply-To: <20221121214722.22563-7-umang.jain@ideasonboard.com> Hi Umang and Dave, Thank you for the patch. On Tue, Nov 22, 2022 at 03:17:14AM +0530, Umang Jain wrote: > From: Dave Stevenson <dave.stevenson@raspberrypi.com> > > The bcm2835-isp supports Bayer, so add in the encodings for them. > Also, Add support for monochrome image formats in the various MIPI > packings. > > Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> > Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> > --- > .../vc04_services/vchiq-mmal/mmal-encodings.h | 62 +++++++++++++++++++ > 1 file changed, 62 insertions(+) > > diff --git a/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h b/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h > index e15ae7b24f73..4711877a9711 100644 > --- a/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h > +++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-encodings.h > @@ -69,6 +69,68 @@ > */ > #define MMAL_ENCODING_OPAQUE MMAL_FOURCC('O', 'P', 'Q', 'V') > > +/* Bayer formats /* * Bayer formats > + * FourCC values copied from V4L2 where defined. > + */ > +/* 8 bit per pixel Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR8 MMAL_FOURCC('B', 'A', '8', '1') > +#define MMAL_ENCODING_BAYER_SGBRG8 MMAL_FOURCC('G', 'B', 'R', 'G') > +#define MMAL_ENCODING_BAYER_SGRBG8 MMAL_FOURCC('G', 'R', 'B', 'G') > +#define MMAL_ENCODING_BAYER_SRGGB8 MMAL_FOURCC('R', 'G', 'G', 'B') > + > +/* 10 bit per pixel packed Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR10P MMAL_FOURCC('p', 'B', 'A', 'A') > +#define MMAL_ENCODING_BAYER_SGRBG10P MMAL_FOURCC('p', 'g', 'A', 'A') > +#define MMAL_ENCODING_BAYER_SGBRG10P MMAL_FOURCC('p', 'G', 'A', 'A') SGBRG should go before SGRBG, like for the raw 8 formats. Same below for the 12P, 10 and 12 formats. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > +#define MMAL_ENCODING_BAYER_SRGGB10P MMAL_FOURCC('p', 'R', 'A', 'A') > + > +/* 12 bit per pixel packed Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR12P MMAL_FOURCC('p', 'B', '1', '2') > +#define MMAL_ENCODING_BAYER_SGRBG12P MMAL_FOURCC('p', 'g', '1', '2') > +#define MMAL_ENCODING_BAYER_SGBRG12P MMAL_FOURCC('p', 'G', '1', '2') > +#define MMAL_ENCODING_BAYER_SRGGB12P MMAL_FOURCC('p', 'R', '1', '2') > + > +/* 14 bit per pixel Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR14P MMAL_FOURCC('p', 'B', 'E', 'E') > +#define MMAL_ENCODING_BAYER_SGBRG14P MMAL_FOURCC('p', 'G', 'E', 'E') > +#define MMAL_ENCODING_BAYER_SGRBG14P MMAL_FOURCC('p', 'g', 'E', 'E') > +#define MMAL_ENCODING_BAYER_SRGGB14P MMAL_FOURCC('p', 'R', 'E', 'E') > + > +/* 16 bit per pixel Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR16 MMAL_FOURCC('B', 'G', '1', '6') > +#define MMAL_ENCODING_BAYER_SGBRG16 MMAL_FOURCC('G', 'B', '1', '6') > +#define MMAL_ENCODING_BAYER_SGRBG16 MMAL_FOURCC('G', 'R', '1', '6') > +#define MMAL_ENCODING_BAYER_SRGGB16 MMAL_FOURCC('R', 'G', '1', '6') > + > +/* 10 bit per pixel unpacked (16bit) Bayer formats. */ > +#define MMAL_ENCODING_BAYER_SBGGR10 MMAL_FOURCC('B', 'G', '1', '0') > +#define MMAL_ENCODING_BAYER_SGRBG10 MMAL_FOURCC('B', 'A', '1', '0') > +#define MMAL_ENCODING_BAYER_SGBRG10 MMAL_FOURCC('G', 'B', '1', '0') > +#define MMAL_ENCODING_BAYER_SRGGB10 MMAL_FOURCC('R', 'G', '1', '0') > + > +/* 12 bit per pixel unpacked (16bit) Bayer formats */ > +#define MMAL_ENCODING_BAYER_SBGGR12 MMAL_FOURCC('B', 'G', '1', '2') > +#define MMAL_ENCODING_BAYER_SGRBG12 MMAL_FOURCC('B', 'A', '1', '2') > +#define MMAL_ENCODING_BAYER_SGBRG12 MMAL_FOURCC('G', 'B', '1', '2') > +#define MMAL_ENCODING_BAYER_SRGGB12 MMAL_FOURCC('R', 'G', '1', '2') > + > +/* 14 bit per pixel unpacked (16bit) Bayer formats */ > +#define MMAL_ENCODING_BAYER_SBGGR14 MMAL_FOURCC('B', 'G', '1', '4') > +#define MMAL_ENCODING_BAYER_SGBRG14 MMAL_FOURCC('G', 'B', '1', '4') > +#define MMAL_ENCODING_BAYER_SGRBG14 MMAL_FOURCC('G', 'R', '1', '4') > +#define MMAL_ENCODING_BAYER_SRGGB14 MMAL_FOURCC('R', 'G', '1', '4') > + > +/* MIPI packed monochrome images */ > +#define MMAL_ENCODING_GREY MMAL_FOURCC('G', 'R', 'E', 'Y') > +#define MMAL_ENCODING_Y10P MMAL_FOURCC('Y', '1', '0', 'P') > +#define MMAL_ENCODING_Y12P MMAL_FOURCC('Y', '1', '2', 'P') > +#define MMAL_ENCODING_Y14P MMAL_FOURCC('Y', '1', '4', 'P') > +#define MMAL_ENCODING_Y16 MMAL_FOURCC('Y', '1', '6', ' ') > +/* Unpacked monochrome formats (16bit per sample, but only N LSBs used) */ > +#define MMAL_ENCODING_Y10 MMAL_FOURCC('Y', '1', '0', ' ') > +#define MMAL_ENCODING_Y12 MMAL_FOURCC('Y', '1', '2', ' ') > +#define MMAL_ENCODING_Y14 MMAL_FOURCC('Y', '1', '4', ' ') > + > /** An EGL image handle > */ > #define MMAL_ENCODING_EGL_IMAGE MMAL_FOURCC('E', 'G', 'L', 'I') -- Regards, Laurent Pinchart _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-11-21 23:22 UTC|newest] Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-11-21 21:47 [PATCH 00/14] staging: vc04_services: bcm2835-isp support Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 01/14] staging: vc04_services: Add new vc-sm-cma driver Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:04 ` Laurent Pinchart 2022-11-21 23:04 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 02/14] staging: vchiq_arm: Register vcsm-cma as a platform driver Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:07 ` Laurent Pinchart 2022-11-21 23:07 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 03/14] media: videobuf2: Allow exporting of a struct dmabuf Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:18 ` Laurent Pinchart 2022-11-21 23:18 ` Laurent Pinchart 2022-11-22 11:35 ` Dave Stevenson 2022-11-22 11:35 ` Dave Stevenson 2022-11-25 1:49 ` Laurent Pinchart 2022-11-25 1:49 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 04/14] staging: mmal-vchiq: Add support for event callbacks Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 05/14] staging: mmal-vchiq: Use vc-sm-cma to support zero copy Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 06/14] staging: mmal_vchiq: Add image formats to be used by bcm2835-isp Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:21 ` Laurent Pinchart [this message] 2022-11-21 23:21 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 07/14] media: uapi: v4l2-core: Add ISP statistics output V4L2 fourcc type Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:25 ` Laurent Pinchart 2022-11-21 23:25 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 08/14] uapi: bcm2835-isp: Add bcm2835-isp uapi header file Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:28 ` Laurent Pinchart 2022-11-21 23:28 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 09/14] staging: vc04_services: bcm2835-isp: Add a more complex ISP processing component Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 10/14] WIP: vc04_services: bcm2835-isp: Allow formats with different colour spaces Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 11/14] WIP: vc04_services: bcm2835-isp: Permit all sRGB colour spaces on ISP outputs Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 21:47 ` [PATCH 12/14] staging: vc04_services: bcm2835_isp: Allow multiple users Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:29 ` Laurent Pinchart 2022-11-21 23:29 ` Laurent Pinchart 2022-11-21 23:35 ` Laurent Pinchart 2022-11-21 23:35 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 13/14] docs: admin-guide: media: bcm2835-isp: Add documentation for bcm2835-isp Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:41 ` Laurent Pinchart 2022-11-21 23:41 ` Laurent Pinchart 2022-11-21 21:47 ` [PATCH 14/14] staging: vc04_services: vchiq: Load bcm2835_isp driver from vchiq Umang Jain 2022-11-21 21:47 ` Umang Jain 2022-11-21 23:10 ` Laurent Pinchart 2022-11-21 23:10 ` Laurent Pinchart 2022-11-21 22:16 ` [PATCH 00/14] staging: vc04_services: bcm2835-isp support Laurent Pinchart 2022-11-21 22:16 ` Laurent Pinchart 2022-11-22 11:42 ` Dave Stevenson 2022-11-22 11:42 ` Dave Stevenson 2022-11-22 12:34 ` Umang Jain 2022-11-22 12:34 ` Umang Jain 2022-11-26 14:42 ` Stefan Wahren 2022-11-26 14:42 ` Stefan Wahren 2022-11-26 16:26 ` Umang Jain 2022-11-26 16:26 ` Umang Jain 2022-11-26 22:56 ` Stefan Wahren 2022-11-26 22:56 ` Stefan Wahren 2022-11-30 10:58 ` Umang Jain 2022-11-30 10:58 ` Umang Jain 2022-12-01 22:45 ` Stefan Wahren 2022-12-01 22:45 ` Stefan Wahren 2022-12-02 3:57 ` Umang Jain 2022-12-02 3:57 ` Umang Jain 2022-12-02 9:17 ` Laurent Pinchart 2022-12-02 9:17 ` Laurent Pinchart 2022-12-02 11:23 ` Dave Stevenson 2022-12-02 11:23 ` Dave Stevenson 2022-12-02 12:10 ` Laurent Pinchart 2022-12-02 12:10 ` Laurent Pinchart 2022-12-02 12:35 ` Stefan Wahren 2022-12-02 12:35 ` Stefan Wahren 2022-12-02 13:25 ` Peter Robinson 2022-12-02 13:25 ` Peter Robinson 2022-12-02 12:38 ` Dave Stevenson 2022-12-02 12:38 ` Dave Stevenson 2022-12-02 13:29 ` Laurent Pinchart 2022-12-02 13:29 ` Laurent Pinchart 2022-12-02 12:25 ` Stefan Wahren 2022-12-02 12:41 ` Stefan Wahren 2022-12-02 12:41 ` Stefan Wahren 2022-12-02 13:32 ` Laurent Pinchart 2022-12-02 13:32 ` Laurent Pinchart 2022-12-02 13:42 ` Dave Stevenson 2022-12-02 13:42 ` Dave Stevenson 2022-12-03 13:41 ` Stefan Wahren 2022-12-03 13:41 ` Stefan Wahren
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=Y3wIFNGQst623Se4@pendragon.ideasonboard.com \ --to=laurent.pinchart@ideasonboard.com \ --cc=bcm-kernel-feedback-list@broadcom.com \ --cc=dave.stevenson@raspberrypi.com \ --cc=david.plowman@raspberrypi.com \ --cc=f.fainelli@gmail.com \ --cc=kernel-list@raspberrypi.com \ --cc=kieran.bingham@ideasonboard.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-rpi-kernel@lists.infradead.org \ --cc=linux-staging@lists.linux.dev \ --cc=naush@raspberrypi.com \ --cc=umang.jain@ideasonboard.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.