All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4l-utils v7 0/7] Add a plugin for Exynos4 camera
@ 2016-10-12 14:35 Jacek Anaszewski
  2016-10-12 14:35 ` [PATCH v4l-utils v7 1/7] mediactl: Add support for v4l2-ctrl-binding config Jacek Anaszewski
                   ` (7 more replies)
  0 siblings, 8 replies; 35+ messages in thread
From: Jacek Anaszewski @ 2016-10-12 14:35 UTC (permalink / raw)
  To: linux-media
  Cc: sakari.ailus, hverkuil, mchehab, m.szyprowski, s.nawrocki,
	Jacek Anaszewski

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


^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2016-12-09  7:44 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-12 14:35 [PATCH v4l-utils v7 0/7] Add a plugin for Exynos4 camera Jacek Anaszewski
2016-10-12 14:35 ` [PATCH v4l-utils v7 1/7] mediactl: Add support for v4l2-ctrl-binding config Jacek Anaszewski
2016-11-24 14:23   ` Sakari Ailus
2016-11-28 21:32     ` Jacek Anaszewski
2016-11-29  6:37       ` Sakari Ailus
2016-10-12 14:35 ` [PATCH v4l-utils v7 2/7] mediatext: Add library Jacek Anaszewski
2016-11-24 13:01   ` Sakari Ailus
2016-11-24 14:04     ` Jacek Anaszewski
2016-10-12 14:35 ` [PATCH v4l-utils v7 3/7] mediactl: Add media_entity_get_backlinks() Jacek Anaszewski
2016-11-24 12:40   ` Sakari Ailus
2016-11-24 14:00     ` Jacek Anaszewski
2016-11-24 14:26       ` Sakari Ailus
2016-10-12 14:35 ` [PATCH v4l-utils v7 4/7] mediactl: Add media_device creation helpers Jacek Anaszewski
2016-11-24 12:17   ` Sakari Ailus
2016-11-24 13:50     ` Jacek Anaszewski
2016-11-24 14:32       ` Sakari Ailus
2016-11-24 15:39         ` Jacek Anaszewski
2016-12-08 22:04     ` Jacek Anaszewski
2016-12-08 23:05       ` Sakari Ailus
2016-12-09  7:43         ` Jacek Anaszewski
2016-10-12 14:35 ` [PATCH v4l-utils v7 5/7] mediactl: libv4l2subdev: Add colorspace logging Jacek Anaszewski
2016-11-24 12:28   ` Sakari Ailus
2016-10-12 14:35 ` [PATCH v4l-utils v7 6/7] mediactl: libv4l2subdev: add support for comparing mbus formats Jacek Anaszewski
2016-11-24 14:36   ` Sakari Ailus
2016-11-24 15:49     ` Jacek Anaszewski
2016-10-12 14:35 ` [PATCH v4l-utils v7 7/7] Add a libv4l plugin for Exynos4 camera Jacek Anaszewski
2016-11-24 15:11   ` Sakari Ailus
2016-11-24 16:14     ` Jacek Anaszewski
2016-11-24 23:55       ` Sakari Ailus
2016-11-03 11:51 ` [PATCH v4l-utils v7 0/7] Add a " Hans Verkuil
2016-11-03 12:13   ` Jacek Anaszewski
2016-11-23 21:51     ` Mauro Carvalho Chehab
2016-11-24  8:10       ` Jacek Anaszewski
2016-11-24  9:10         ` Mauro Carvalho Chehab
2016-11-24 12:20           ` Jacek Anaszewski

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.