This is a seventh version of the patch series adding a plugin for the Exynos4 camera. Last version [0] of the patch set was posted in January. The plugin doesn't link against libmediactl, but has its sources compiled in. Currently utils are built after the plugins, but libv4l-exynos4-camera plugin depends on the utils. In order to link the plugin against libmediactl the build system would have to be modified. ================ Changes from v6: ================ - close v4l2 sub-devices on media device release - moved non-generic code from libmediactl to the plugin - resigned from adding libmedia_ioctl library and moved all its code to the plugin, since it depended on pipeline representation, which was not generic for all possible media device topologies - used media_get_info()->name instead of adding media_entity_get_name - renamed media_get_backlinks_by_entity() to media_entity_get_backlinks(() - moved pipeline from struct media_device to the plugin - changed the way of associating video device file descriptor with media device - switched to using auto-generated media-bus-format-names.h header file - renamed v4l2-ctrl-redir config entry name to v4l2-ctrl-binding ================ Changes from v5: ================ - fixed and tested use cases with S5K6A3 sensor and FIMC-IS-ISP - added conversion "colorspace id to string" ================ Changes from v4: ================ - removed some redundant functions for traversing media device graph and switched over to using existing ones - avoided accessing struct v4l2_subdev from libmediactl - applied various improvements ================ Changes from v3: ================ - added struct v4l2_subdev and put entity fd and information about supported controls to it - improved functions for negotiating and setting pipeline format by using available libv4lsubdev API - applied minor improvements and cleanups ================ Changes from v2: ================ - switched to using mediatext library for parsing the media device configuration - extended libmediactl - switched to using libmediactl ================ Changes from v1: ================ - removed redundant mbus code negotiation - split the parser, media device helpers and ioctl wrappers to the separate modules - added mechanism for querying extended controls - applied various fixes and modifications The plugin was tested on v4.8-rc2 (exynos4-is driver doesn't proble properly with current master branch of linux-media.git) with patches fixing several issues for Exynos4 camera: [1], [2], [3]. The plugin expects a configuration file: /var/lib/libv4l/exynos4_capture_conf Exemplary configuration file for pipeline with sensor S5C73M3 (rear camera): ========================================== link-conf "s5p-mipi-csis.0":1 -> "FIMC.0":0 [1] v4l2-ctrl-binding 0x0098091f -> "fimc.0.capture" v4l2-ctrl-binding 0x00980902 -> "S5C73M3" v4l2-ctrl-binding 0x00980922 -> "fimc.0.capture" v4l2-ctrl-binding 0x009a0914 -> "S5C73M3" ========================================== With this settings the plugin can be tested on the exynos4412-trats2 board using following gstreamer pipeline: gst-launch-1.0 v4l2src device=/dev/video1 extra-controls="c,rotate=90,color_effects=2" ! video/x-raw,width=960,height=720 ! fbdevsink Exemplary configuration file for pipeline with sensor S5K6A3 (front camera): ========================================== link-conf "s5p-mipi-csis.1":1 -> "FIMC-LITE.1":0 [1] link-conf "FIMC-LITE.1":2 -> "FIMC-IS-ISP":0 [1] link-conf "FIMC-IS-ISP":1 -> "FIMC.0":1 [1] ========================================== gst-launch-1.0 v4l2src device=/dev/video1 extra-controls="c,rotate=270,color_effects=2,horizontal_flip=1" ! video/x-raw,width=960,height=920 ! fbdevsink Best Regards, Jacek Anaszewski [0] http://www.spinics.net/lists/linux-media/msg96510.html [1] https://patchwork.kernel.org/patch/9335197/ [2] https://patchwork.kernel.org/patch/9270985/ [3] https://patchwork.kernel.org/patch/9308923/ [4] https://patchwork.kernel.org/patch/9335273/ Jacek Anaszewski (7): mediactl: Add support for v4l2-ctrl-binding config mediatext: Add library mediactl: Add media_entity_get_backlinks() mediactl: Add media_device creation helpers mediactl: libv4l2subdev: Add colorspace logging mediactl: libv4l2subdev: add support for comparing mbus formats Add a libv4l plugin for Exynos4 camera configure.ac | 1 + lib/Makefile.am | 5 + lib/libv4l-exynos4-camera/Makefile.am | 19 + lib/libv4l-exynos4-camera/libv4l-exynos4-camera.c | 1325 +++++++++++++++++++++ utils/media-ctl/Makefile.am | 10 +- utils/media-ctl/libmediactl.c | 152 ++- utils/media-ctl/libmediatext.pc.in | 10 + utils/media-ctl/libv4l2subdev.c | 106 ++ utils/media-ctl/mediactl.h | 42 + utils/media-ctl/mediatext-test.c | 64 + utils/media-ctl/mediatext.c | 312 +++++ utils/media-ctl/mediatext.h | 52 + utils/media-ctl/v4l2subdev.h | 50 + 13 files changed, 2144 insertions(+), 4 deletions(-) create mode 100644 lib/libv4l-exynos4-camera/Makefile.am create mode 100644 lib/libv4l-exynos4-camera/libv4l-exynos4-camera.c create mode 100644 utils/media-ctl/libmediatext.pc.in create mode 100644 utils/media-ctl/mediatext-test.c create mode 100644 utils/media-ctl/mediatext.c create mode 100644 utils/media-ctl/mediatext.h -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html