MattsProjects / pylon_gstreamer

A robust integration of Basler's Pylon API with GStreamer. Delivers applications as ready-to-run standalone compiled executables (gst-launch-1.0 is not needed). Designed for reliability and easy access to performance optimizations. Note: This is not a plugin. It is an intergration using GStreamer's GstAppSrc element.
Apache License 2.0
29 stars 18 forks source link

Consider always using I420 as output of CInstantCameraAppSrc #9

Closed MattsProjects closed 4 years ago

MattsProjects commented 4 years ago

I420 color is technically not as good as RGB, but I420 is much more prevalent in GStreamer world, so it would save us some videoconvert steps in pipelines if we just did this under the hood in the AppSrc. Also in that vein, it might be better to set the camera itself to YCbCr as a starting point. This is closer to I420 than RGB, so it would be an easier conversion in the AppSrc, and it would save interface bandwidth. Something to consider...

MattsProjects commented 4 years ago

first test of replacing RGB with YUV420Planar in CInstantCameraAppSrc::SetupCamera() actually showed much lower performance (slow framerate). Will stay with RGB for now, at least at that level. Although it might be helpful to put a single videoconvert and capsfilter in the AppSrc to do a final conversion to I420. Maybe would save the user from doing this step in their pipeline (ie: maybe we could then remove some convert elements in the pipeline helper functions.)