gstreamer/subprojects
Marek Vasut 4c92d4096e bayer2rgb: Support video/x-bayer 10/12/14/16 bit depths
Add support for 10/12/14/16 bit depths . This consists of multiple parts.
First is the parsing of caps, which pulls out the bitness and endianness
from the video/x-bayer format.

Second, gst_bayer2rgb_split_and_upsample_horiz() is split into two similar
functions, one for 8bit bayer handling and another for 16bit bayer handling.
The content is basically identical, except one uses 8bpp and the other 16bpp
inputs and outputs, and they each use different ORC code to match. The 16bpp
variant also handles endian swapping. There is now a wrapper called
gst_bayer2rgb_split_and_upsample_horiz() which selects the correct function
based on bpp from the parser.

Third, gst_bayer2rgb_process() is extended to handle both 8bit and 16bit
bayer data. Yet again there are matching ORC functions to handle the 16bit
data. This time however the 16bit handling of data is slightly special. The
ORC is not able to emit opcodes for 'x2 mergelq', so the trick here is to
store the BG and GR longs into separate 'dtmp' temporary buffer, and then
do one more ORC post-processing step, compensate for the less-than-16bpp
bitness using left shift, and reorder them into the destination frame
using 'mergelq' .

Example usage:
```
$ gst-launch-1.0 videotestsrc ! \
    video/x-bayer,width=512,height=512,format=bggr16le ! \
    bayer2rgb ! \
    video/x-raw,format=RGBA64_LE ! \
    videoconvert ! \
    autovideosink
```

Example usage:
```
$ gst-launch-1.0 videotestsrc ! \
    video/x-raw,width=512,height=512,format=ARGB ! \
    rgb2bayer ! \
    video/x-bayer,format=bggr12le ! \
    bayer2rgb ! \
    video/x-raw,format=RGBA64_LE ! \
    videoconvert ! \
    autovideosink
```

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4686>
2023-06-15 08:26:12 +00:00
..
gst-devtools validate: disable plugins in static build 2023-05-31 15:17:11 +00:00
gst-docs examples: iOS tutorials: remove kate plugin references here too 2023-06-05 10:59:22 +01:00
gst-editing-services ges-launcher: add ignore EOS option 2023-06-07 15:03:30 +00:00
gst-examples gst-examples: prepare for removal of kate plugin from cerbero 2023-06-05 06:45:54 +00:00
gst-integration-testsuites integration-testsuites/media: Update to tip of medias main branch 2023-06-02 17:54:54 +00:00
gst-libav avvidec: Fix more deprecated symbol 2023-06-13 20:12:11 +00:00
gst-omx tools: add bad/ges/omx tools to gst_tools 2023-05-31 15:17:11 +00:00
gst-plugins-bad bayer2rgb: Support video/x-bayer 10/12/14/16 bit depths 2023-06-15 08:26:12 +00:00
gst-plugins-base videotestsrc: Support video/x-bayer 10/12/14/16 bit depths 2023-06-15 08:26:12 +00:00
gst-plugins-good v4l2src: fix support for bayer format 2023-06-14 18:32:45 +00:00
gst-plugins-ugly gstreamer-full: add full static support 2023-05-31 15:17:11 +00:00
gst-python python: More functions can be called before gst_init() 2023-06-02 13:25:23 +00:00
gst-rtsp-server gstreamer-full: add full static support 2023-05-31 15:17:11 +00:00
gstreamer aggregator: Resume srcpad task on stream-start only when running 2023-06-14 16:57:35 +00:00
gstreamer-sharp sharp: Mark _reserved fields as padding 2023-04-29 21:52:19 -04:00
gstreamer-vaapi vaapidecodebin: don't load vaapipostproc if not available 2023-06-08 12:50:41 +00:00
macos-bison-binary macos-bison-binary: Remove warning when running on arm64 2022-12-16 23:58:07 +00:00
packagefiles/pango-1.50.12 meson: Add a patch that fixes pangocairo usage in gst-plugins-rs 2022-12-17 07:37:03 +05:30
win-flex-bison-binaries meson: Use run_command check: true for windows binary subprojects 2022-10-19 04:05:05 +00:00
win-nasm meson: Use run_command check: true for windows binary subprojects 2022-10-19 04:05:05 +00:00
avtp.wrap
bindinator.wrap
cairo.wrap
dav1d.wrap meson: add missing source_filename in the dav1d wrap 2023-04-03 14:29:36 +00:00
dssim.wrap
dv.wrap
expat.wrap meson: Update some more wraps 2022-12-10 15:13:09 +00:00
fdk-aac.wrap
FFmpeg.wrap
fontconfig.wrap
freetype2.wrap Update all wraps from WrapDB 2022-09-23 11:08:06 -04:00
fribidi.wrap
gl-headers.wrap
glib-networking.wrap subprojects: update glib-networking to 2.74.0 and switch to file wrap 2022-11-18 00:51:48 +00:00
glib.wrap subprojects: update glib to 2.74.1 2022-11-18 00:50:56 +00:00
graphene.wrap
gst-plugins-rs.wrap gst-plugins-rs: Track main branch again 2023-01-24 19:08:50 +00:00
gtk-sharp.wrap
gtk.wrap meson: Use gtk tarball for the subproject wrap 2023-02-01 06:29:11 +00:00
harfbuzz.wrap
json-glib.wrap Update all wraps from WrapDB 2022-09-23 11:08:06 -04:00
lame.wrap meson: Update lame to -7 which contains the def file fix 2022-12-19 01:43:08 +05:30
libdrm.wrap Update all wraps from WrapDB 2022-09-23 11:08:06 -04:00
libffi.wrap subprojects: libffi: pin to meson-3.2.9999.4 tag 2022-12-31 13:49:17 +00:00
libgudev.wrap meson: Add a wrap file for libgudev 2023-04-19 22:47:19 +00:00
libjpeg-turbo.wrap Update all wraps from WrapDB 2022-09-23 11:08:06 -04:00
libmicrodns.wrap
libnice.wrap libnice: disable gst tests in static mode 2023-05-31 15:17:11 +00:00
libopenjp2.wrap meson: Update some more wraps 2022-12-10 15:13:09 +00:00
libpng.wrap
libpsl.wrap
libsoup.wrap subprojects: switch libsoup to a file wrap 2022-11-18 00:56:25 +00:00
libsrtp2.wrap subprojects: Update libsrtp2 wrap to v2.5.0 2023-02-01 10:34:35 +00:00
libva.wrap meson: Add a wrap file for libva 2023-06-08 08:50:05 +00:00
libwpe.wrap
libxml2.wrap libxml2.wrap: update to latest version 2023-01-25 11:38:52 +00:00
ogg.wrap Update all wraps from WrapDB 2022-09-23 11:08:06 -04:00
openh264.wrap Update all wraps from WrapDB 2022-09-23 11:08:06 -04:00
opus.wrap
orc.wrap orc: update subproject wrap to 0.4.34 2023-05-30 01:21:20 +00:00
pango.wrap meson: Add a patch that fixes pangocairo usage in gst-plugins-rs 2022-12-17 07:37:03 +05:30
pixman.wrap meson: Update some more wraps 2022-12-10 15:13:09 +00:00
proxy-libintl.wrap
pycairo.wrap
pygobject.wrap meson: Allow sysdeps to be forced as fallback subprojects 2023-02-06 09:26:02 +00:00
sqlite3.wrap meson: Update some more wraps 2022-12-10 15:13:09 +00:00
vorbis.wrap
webrtc-audio-processing.wrap meson: Update webrtc-audio-processing wrap to 1.1 2023-06-01 09:34:37 +00:00
wpebackend-fdo.wrap
x264.wrap
zlib.wrap meson: Update some more wraps 2022-12-10 15:13:09 +00:00