[{"id":1632,"web_url":"https://patchwork.libcamera.org/comment/1632/","msgid":"<20190520075955.e3myckjuixnlyoka@uno.localdomain>","date":"2019-05-20T07:59:55","subject":"Re: [libcamera-devel] [PATCH v2 1/6] libcamera: camera: Rename\n\tconfigureStreams() and streamConfiguration()","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Sun, May 19, 2019 at 06:00:42PM +0300, Laurent Pinchart wrote:\n> Rename the configureStreams() and streamConfiguration() methods to\n> configure() and generateConfiguration() respectively in order to clarify\n> the API. Both methods deal with CameraConfiguration objects, and are\n> thus not limited to streams, even if a CameraConfiguration currently\n> contains streams only.\n\nBikeshedding, I now, but I still advocate for\n\ngenerateConfiguration()\napplyConfiguration()\n\nor\n\nconfiguration()\nconfigure()\n\nwith a preference for the first one\n\nAnyway, that's really minor so\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n  j\n\n>\n> While at it, remove the qcam MainWindow::configureStreams() method that\n> is declared but never defined or used.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> ---\n>  include/libcamera/camera.h               |  4 ++--\n>  src/cam/main.cpp                         |  6 ++---\n>  src/libcamera/camera.cpp                 | 28 ++++++++++++------------\n>  src/libcamera/include/pipeline_handler.h |  4 ++--\n>  src/libcamera/pipeline/ipu3/ipu3.cpp     | 21 +++++++++---------\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 10 ++++-----\n>  src/libcamera/pipeline/uvcvideo.cpp      | 16 +++++++-------\n>  src/libcamera/pipeline/vimc.cpp          | 16 +++++++-------\n>  src/libcamera/pipeline_handler.cpp       | 28 ++++++++++++------------\n>  src/libcamera/stream.cpp                 |  5 ++---\n>  src/qcam/main_window.cpp                 |  4 ++--\n>  src/qcam/main_window.h                   |  1 -\n>  test/camera/capture.cpp                  |  4 ++--\n>  test/camera/configuration_default.cpp    |  4 ++--\n>  test/camera/configuration_set.cpp        | 10 ++++-----\n>  test/camera/statemachine.cpp             | 16 +++++++-------\n>  16 files changed, 87 insertions(+), 90 deletions(-)\n>\n> diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h\n> index 777b7e4d48b8..306739b7014a 100644\n> --- a/include/libcamera/camera.h\n> +++ b/include/libcamera/camera.h\n> @@ -75,8 +75,8 @@ public:\n>\n>  \tconst std::set<Stream *> &streams() const;\n>  \tCameraConfiguration\n> -\tstreamConfiguration(const std::vector<StreamUsage> &usage);\n> -\tint configureStreams(const CameraConfiguration &config);\n> +\tgenerateConfiguration(const std::vector<StreamUsage> &usage);\n> +\tint configure(const CameraConfiguration &config);\n>\n>  \tint allocateBuffers();\n>  \tint freeBuffers();\n> diff --git a/src/cam/main.cpp b/src/cam/main.cpp\n> index f03c32b385a9..6a2508dd3bd9 100644\n> --- a/src/cam/main.cpp\n> +++ b/src/cam/main.cpp\n> @@ -93,7 +93,7 @@ static int prepareCameraConfig(CameraConfiguration *config)\n>\n>  \t/* If no configuration is provided assume a single video stream. */\n>  \tif (!options.isSet(OptStream)) {\n> -\t\t*config = camera->streamConfiguration({ Stream::VideoRecording() });\n> +\t\t*config = camera->generateConfiguration({ Stream::VideoRecording() });\n>  \t\tstreamInfo[config->front()] = \"stream0\";\n>  \t\treturn 0;\n>  \t}\n> @@ -121,7 +121,7 @@ static int prepareCameraConfig(CameraConfiguration *config)\n>  \t\t}\n>  \t}\n>\n> -\t*config = camera->streamConfiguration(roles);\n> +\t*config = camera->generateConfiguration(roles);\n>\n>  \tif (!config->isValid()) {\n>  \t\tstd::cerr << \"Failed to get default stream configuration\"\n> @@ -211,7 +211,7 @@ static int capture()\n>  \t\treturn ret;\n>  \t}\n>\n> -\tret = camera->configureStreams(config);\n> +\tret = camera->configure(config);\n>  \tif (ret < 0) {\n>  \t\tstd::cout << \"Failed to configure camera\" << std::endl;\n>  \t\treturn ret;\n> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> index 1a21acac9899..359174a41823 100644\n> --- a/src/libcamera/camera.cpp\n> +++ b/src/libcamera/camera.cpp\n> @@ -275,10 +275,10 @@ const StreamConfiguration &CameraConfiguration::operator[](Stream *stream) const\n>   *   Available -> Acquired [label = \"acquire()\"];\n>   *\n>   *   Acquired -> Available [label = \"release()\"];\n> - *   Acquired -> Configured [label = \"configureStreams()\"];\n> + *   Acquired -> Configured [label = \"configure()\"];\n>   *\n>   *   Configured -> Available [label = \"release()\"];\n> - *   Configured -> Configured [label = \"configureStreams()\"];\n> + *   Configured -> Configured [label = \"configure()\"];\n>   *   Configured -> Prepared [label = \"allocateBuffers()\"];\n>   *\n>   *   Prepared -> Configured [label = \"freeBuffers()\"];\n> @@ -542,23 +542,23 @@ const std::set<Stream *> &Camera::streams() const\n>  }\n>\n>  /**\n> - * \\brief Retrieve a group of stream configurations according to stream usages\n> + * \\brief Generate a default camera configuration according to stream usages\n>   * \\param[in] usages A list of stream usages\n>   *\n> - * Retrieve configuration for a set of desired usages. The caller specifies a\n> - * list of stream usages and the camera returns a map of suitable streams and\n> - * their suggested default configurations.\n> + * Generate a camera configuration for a set of desired usages. The caller\n> + * specifies a list of stream usages and the camera returns a configuration\n> + * containing suitable streams and their suggested default configurations.\n>   *\n>   * \\return A valid CameraConfiguration if the requested usages can be satisfied,\n>   * or a invalid one otherwise\n>   */\n>  CameraConfiguration\n> -Camera::streamConfiguration(const std::vector<StreamUsage> &usages)\n> +Camera::generateConfiguration(const std::vector<StreamUsage> &usages)\n>  {\n>  \tif (disconnected_ || !usages.size() || usages.size() > streams_.size())\n>  \t\treturn CameraConfiguration();\n>\n> -\tCameraConfiguration config = pipe_->streamConfiguration(this, usages);\n> +\tCameraConfiguration config = pipe_->generateConfiguration(this, usages);\n>\n>  \tstd::ostringstream msg(\"streams configuration:\", std::ios_base::ate);\n>  \tunsigned int index = 0;\n> @@ -575,7 +575,7 @@ Camera::streamConfiguration(const std::vector<StreamUsage> &usages)\n>  }\n>\n>  /**\n> - * \\brief Configure the camera's streams prior to capture\n> + * \\brief Configure the camera prior to capture\n>   * \\param[in] config The camera configurations to setup\n>   *\n>   * Prior to starting capture, the camera must be configured to select a\n> @@ -584,9 +584,9 @@ Camera::streamConfiguration(const std::vector<StreamUsage> &usages)\n>   * by populating \\a config.\n>   *\n>   * The easiest way to populate the array of config is to fetch an initial\n> - * configuration from the camera with streamConfiguration() and then change the\n> - * parameters to fit the caller's need and once all the streams parameters are\n> - * configured hand that over to configureStreams() to actually setup the camera.\n> + * configuration from the camera with generateConfiguration() and then change\n> + * the parameters to fit the caller's need and once all the streams parameters\n> + * are configured hand that over to configure() to actually setup the camera.\n>   *\n>   * Exclusive access to the camera shall be ensured by a call to acquire() prior\n>   * to calling this function, otherwise an -EACCES error will be returned.\n> @@ -598,7 +598,7 @@ Camera::streamConfiguration(const std::vector<StreamUsage> &usages)\n>   * \\retval -EACCES The camera is not in a state where it can be configured\n>   * \\retval -EINVAL The configuration is not valid\n>   */\n> -int Camera::configureStreams(const CameraConfiguration &config)\n> +int Camera::configure(const CameraConfiguration &config)\n>  {\n>  \tint ret;\n>\n> @@ -629,7 +629,7 @@ int Camera::configureStreams(const CameraConfiguration &config)\n>\n>  \tLOG(Camera, Info) << msg.str();\n>\n> -\tret = pipe_->configureStreams(this, config);\n> +\tret = pipe_->configure(this, config);\n>  \tif (ret)\n>  \t\treturn ret;\n>\n> diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/pipeline_handler.h\n> index 9f5fe3d673e2..9cc11a8e192e 100644\n> --- a/src/libcamera/include/pipeline_handler.h\n> +++ b/src/libcamera/include/pipeline_handler.h\n> @@ -61,8 +61,8 @@ public:\n>  \tvoid unlock();\n>\n>  \tvirtual CameraConfiguration\n> -\tstreamConfiguration(Camera *camera, const std::vector<StreamUsage> &usages) = 0;\n> -\tvirtual int configureStreams(Camera *camera, const CameraConfiguration &config) = 0;\n> +\tgenerateConfiguration(Camera *camera, const std::vector<StreamUsage> &usages) = 0;\n> +\tvirtual int configure(Camera *camera, const CameraConfiguration &config) = 0;\n>\n>  \tvirtual int allocateBuffers(Camera *camera,\n>  \t\t\t\t    const std::set<Stream *> &streams) = 0;\n> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> index 75a70e66eacc..ba0c708f9e1e 100644\n> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> @@ -151,10 +151,10 @@ public:\n>  \tPipelineHandlerIPU3(CameraManager *manager);\n>\n>  \tCameraConfiguration\n> -\tstreamConfiguration(Camera *camera,\n> -\t\t\t    const std::vector<StreamUsage> &usages) override;\n> -\tint configureStreams(Camera *camera,\n> -\t\t\t     const CameraConfiguration &config) override;\n> +\tgenerateConfiguration(Camera *camera,\n> +\t\t\t      const std::vector<StreamUsage> &usages) override;\n> +\tint configure(Camera *camera,\n> +\t\t      const CameraConfiguration &config) override;\n>\n>  \tint allocateBuffers(Camera *camera,\n>  \t\t\t    const std::set<Stream *> &streams) override;\n> @@ -210,8 +210,8 @@ PipelineHandlerIPU3::PipelineHandlerIPU3(CameraManager *manager)\n>  }\n>\n>  CameraConfiguration\n> -PipelineHandlerIPU3::streamConfiguration(Camera *camera,\n> -\t\t\t\t\t const std::vector<StreamUsage> &usages)\n> +PipelineHandlerIPU3::generateConfiguration(Camera *camera,\n> +\t\t\t\t\t   const std::vector<StreamUsage> &usages)\n>  {\n>  \tIPU3CameraData *data = cameraData(camera);\n>  \tCameraConfiguration config = {};\n> @@ -309,8 +309,8 @@ PipelineHandlerIPU3::streamConfiguration(Camera *camera,\n>  \treturn config;\n>  }\n>\n> -int PipelineHandlerIPU3::configureStreams(Camera *camera,\n> -\t\t\t\t\t  const CameraConfiguration &config)\n> +int PipelineHandlerIPU3::configure(Camera *camera,\n> +\t\t\t\t   const CameraConfiguration &config)\n>  {\n>  \tIPU3CameraData *data = cameraData(camera);\n>  \tIPU3Stream *outStream = &data->outStream_;\n> @@ -631,11 +631,10 @@ bool PipelineHandlerIPU3::match(DeviceEnumerator *enumerator)\n>  \t * 1) Link enable/disable cannot be done at start/stop time as video\n>  \t * devices needs to be linked first before format can be configured on\n>  \t * them.\n> -\t * 2) As link enable has to be done at the least in configureStreams,\n> +\t * 2) As link enable has to be done at the least in configure(),\n>  \t * before configuring formats, the only place where to disable links\n>  \t * would be 'stop()', but the Camera class state machine allows\n> -\t * start()<->stop() sequences without any streamConfiguration() in\n> -\t * between.\n> +\t * start()<->stop() sequences without any configure() in between.\n>  \t *\n>  \t * As of now, disable all links in the media graph at 'match()' time,\n>  \t * to allow testing different cameras in different test applications\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 96553bf2d9ef..4d02f9604ad9 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -34,9 +34,9 @@ public:\n>  \tPipelineHandlerRkISP1(CameraManager *manager);\n>  \t~PipelineHandlerRkISP1();\n>\n> -\tCameraConfiguration streamConfiguration(Camera *camera,\n> +\tCameraConfiguration generateConfiguration(Camera *camera,\n>  \t\tconst std::vector<StreamUsage> &usages) override;\n> -\tint configureStreams(Camera *camera,\n> +\tint configure(Camera *camera,\n>  \t\tconst CameraConfiguration &config) override;\n>\n>  \tint allocateBuffers(Camera *camera,\n> @@ -106,7 +106,7 @@ PipelineHandlerRkISP1::~PipelineHandlerRkISP1()\n>   * Pipeline Operations\n>   */\n>\n> -CameraConfiguration PipelineHandlerRkISP1::streamConfiguration(Camera *camera,\n> +CameraConfiguration PipelineHandlerRkISP1::generateConfiguration(Camera *camera,\n>  \tconst std::vector<StreamUsage> &usages)\n>  {\n>  \tRkISP1CameraData *data = cameraData(camera);\n> @@ -122,8 +122,8 @@ CameraConfiguration PipelineHandlerRkISP1::streamConfiguration(Camera *camera,\n>  \treturn config;\n>  }\n>\n> -int PipelineHandlerRkISP1::configureStreams(Camera *camera,\n> -\t\t\t\t\t    const CameraConfiguration &config)\n> +int PipelineHandlerRkISP1::configure(Camera *camera,\n> +\t\t\t\t     const CameraConfiguration &config)\n>  {\n>  \tRkISP1CameraData *data = cameraData(camera);\n>  \tconst StreamConfiguration &cfg = config[&data->stream_];\n> diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp\n> index 351712cfdc69..118b97457d2a 100644\n> --- a/src/libcamera/pipeline/uvcvideo.cpp\n> +++ b/src/libcamera/pipeline/uvcvideo.cpp\n> @@ -26,10 +26,10 @@ public:\n>  \tPipelineHandlerUVC(CameraManager *manager);\n>\n>  \tCameraConfiguration\n> -\tstreamConfiguration(Camera *camera,\n> -\t\t\t    const std::vector<StreamUsage> &usages) override;\n> -\tint configureStreams(Camera *camera,\n> -\t\t\t     const CameraConfiguration &config) override;\n> +\tgenerateConfiguration(Camera *camera,\n> +\t\t\t      const std::vector<StreamUsage> &usages) override;\n> +\tint configure(Camera *camera,\n> +\t\t      const CameraConfiguration &config) override;\n>\n>  \tint allocateBuffers(Camera *camera,\n>  \t\t\t    const std::set<Stream *> &streams) override;\n> @@ -76,8 +76,8 @@ PipelineHandlerUVC::PipelineHandlerUVC(CameraManager *manager)\n>  }\n>\n>  CameraConfiguration\n> -PipelineHandlerUVC::streamConfiguration(Camera *camera,\n> -\t\t\t\t\tconst std::vector<StreamUsage> &usages)\n> +PipelineHandlerUVC::generateConfiguration(Camera *camera,\n> +\t\t\t\t\t  const std::vector<StreamUsage> &usages)\n>  {\n>  \tUVCCameraData *data = cameraData(camera);\n>  \tCameraConfiguration config;\n> @@ -92,8 +92,8 @@ PipelineHandlerUVC::streamConfiguration(Camera *camera,\n>  \treturn config;\n>  }\n>\n> -int PipelineHandlerUVC::configureStreams(Camera *camera,\n> -\t\t\t\t\t const CameraConfiguration &config)\n> +int PipelineHandlerUVC::configure(Camera *camera,\n> +\t\t\t\t  const CameraConfiguration &config)\n>  {\n>  \tUVCCameraData *data = cameraData(camera);\n>  \tconst StreamConfiguration *cfg = &config[&data->stream_];\n> diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> index 737d6df67def..74959581a7ef 100644\n> --- a/src/libcamera/pipeline/vimc.cpp\n> +++ b/src/libcamera/pipeline/vimc.cpp\n> @@ -26,10 +26,10 @@ public:\n>  \tPipelineHandlerVimc(CameraManager *manager);\n>\n>  \tCameraConfiguration\n> -\tstreamConfiguration(Camera *camera,\n> -\t\t\t    const std::vector<StreamUsage> &usages) override;\n> -\tint configureStreams(Camera *camera,\n> -\t\t\t     const CameraConfiguration &config) override;\n> +\tgenerateConfiguration(Camera *camera,\n> +\t\t\t      const std::vector<StreamUsage> &usages) override;\n> +\tint configure(Camera *camera,\n> +\t\t      const CameraConfiguration &config) override;\n>\n>  \tint allocateBuffers(Camera *camera,\n>  \t\t\t    const std::set<Stream *> &streams) override;\n> @@ -76,8 +76,8 @@ PipelineHandlerVimc::PipelineHandlerVimc(CameraManager *manager)\n>  }\n>\n>  CameraConfiguration\n> -PipelineHandlerVimc::streamConfiguration(Camera *camera,\n> -\t\t\t\t\t const std::vector<StreamUsage> &usages)\n> +PipelineHandlerVimc::generateConfiguration(Camera *camera,\n> +\t\t\t\t\t   const std::vector<StreamUsage> &usages)\n>  {\n>  \tVimcCameraData *data = cameraData(camera);\n>  \tCameraConfiguration config;\n> @@ -92,8 +92,8 @@ PipelineHandlerVimc::streamConfiguration(Camera *camera,\n>  \treturn config;\n>  }\n>\n> -int PipelineHandlerVimc::configureStreams(Camera *camera,\n> -\t\t\t\t\t  const CameraConfiguration &config)\n> +int PipelineHandlerVimc::configure(Camera *camera,\n> +\t\t\t\t   const CameraConfiguration &config)\n>  {\n>  \tVimcCameraData *data = cameraData(camera);\n>  \tconst StreamConfiguration *cfg = &config[&data->stream_];\n> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\n> index 1eeaf4bb6dae..b9ac64328f1d 100644\n> --- a/src/libcamera/pipeline_handler.cpp\n> +++ b/src/libcamera/pipeline_handler.cpp\n> @@ -218,26 +218,26 @@ void PipelineHandler::unlock()\n>  }\n>\n>  /**\n> - * \\fn PipelineHandler::streamConfiguration()\n> - * \\brief Retrieve a group of stream configurations for a specified camera\n> - * \\param[in] camera The camera to fetch default configuration from\n> + * \\fn PipelineHandler::generateConfiguration()\n> + * \\brief Generate a camera configuration for a specified camera\n> + * \\param[in] camera The camera to generate a default configuration for\n>   * \\param[in] usages A list of stream usages\n>   *\n> - * Retrieve the species camera's default configuration for a specified group of\n> - * use-cases. The caller shall populate the \\a usages array with the use-cases it\n> - * wishes to fetch the default configuration for. The map of streams and\n> - * configurations returned can then be examined by the caller to learn about\n> - * the default parameters for the specified streams.\n> + * Generate a default configuration for the \\a camera for a specified group of\n> + * use-cases. The caller shall populate the \\a usages array with the use-cases\n> + * it wishes to fetch the default configuration for. The returned configuration\n> + * can then be examined by the caller to learn about the selected streams and\n> + * their default parameters.\n>   *\n> - * The intended companion to this is \\a configureStreams() which can be used to\n> - * change the group of streams parameters.\n> + * The intended companion to this is \\a configure() which can be used to change\n> + * the group of streams parameters.\n>   *\n>   * \\return A valid CameraConfiguration if the requested usages can be satisfied,\n>   * or a invalid configuration otherwise\n>   */\n>\n>  /**\n> - * \\fn PipelineHandler::configureStreams()\n> + * \\fn PipelineHandler::configure()\n>   * \\brief Configure a group of streams for capture\n>   * \\param[in] camera The camera to configure\n>   * \\param[in] config The camera configurations to setup\n> @@ -293,9 +293,9 @@ void PipelineHandler::unlock()\n>   * \\param[in] camera The camera to start\n>   *\n>   * Start the group of streams that have been configured for capture by\n> - * \\a configureStreams(). The intended caller of this method is the Camera\n> - * class which will in turn be called from the application to indicate that it\n> - * has configured the streams and is ready to capture.\n> + * \\a configure(). The intended caller of this method is the Camera class which\n> + * will in turn be called from the application to indicate that it has\n> + * configured the streams and is ready to capture.\n>   *\n>   * \\return 0 on success or a negative error code otherwise\n>   */\n> diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp\n> index 4ff296e3a75b..af259510b19c 100644\n> --- a/src/libcamera/stream.cpp\n> +++ b/src/libcamera/stream.cpp\n> @@ -218,9 +218,8 @@ Stream::Stream()\n>   * \\brief The stream configuration\n>   *\n>   * The configuration for the stream is set by any successful call to\n> - * Camera::configureStreams() that includes the stream, and remains valid until\n> - * the next call to Camera::configureStreams() regardless of if it includes the\n> - * stream.\n> + * Camera::configure() that includes the stream, and remains valid until the\n> + * next call to Camera::configure() regardless of if it includes the stream.\n>   */\n>\n>  } /* namespace libcamera */\n> diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\n> index ee06d751672b..c91b82727ec6 100644\n> --- a/src/qcam/main_window.cpp\n> +++ b/src/qcam/main_window.cpp\n> @@ -97,9 +97,9 @@ int MainWindow::startCapture()\n>  {\n>  \tint ret;\n>\n> -\tconfig_ = camera_->streamConfiguration({ Stream::VideoRecording() });\n> +\tconfig_ = camera_->generateConfiguration({ Stream::VideoRecording() });\n>  \tStream *stream = config_.front();\n> -\tret = camera_->configureStreams(config_);\n> +\tret = camera_->configure(config_);\n>  \tif (ret < 0) {\n>  \t\tstd::cout << \"Failed to configure camera\" << std::endl;\n>  \t\treturn ret;\n> diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h\n> index 9b31da2bf4b7..143b5b08a5a0 100644\n> --- a/src/qcam/main_window.h\n> +++ b/src/qcam/main_window.h\n> @@ -35,7 +35,6 @@ private:\n>  \tint openCamera();\n>\n>  \tint startCapture();\n> -\tint configureStreams(Camera *camera, std::set<Stream *> &streams);\n>  \tvoid stopCapture();\n>\n>  \tvoid requestComplete(Request *request,\n> diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\n> index 0101cc94e665..bc3a4d6cb9f2 100644\n> --- a/test/camera/capture.cpp\n> +++ b/test/camera/capture.cpp\n> @@ -43,7 +43,7 @@ protected:\n>  \tint run()\n>  \t{\n>  \t\tCameraConfiguration config =\n> -\t\t\tcamera_->streamConfiguration({ Stream::VideoRecording() });\n> +\t\t\tcamera_->generateConfiguration({ Stream::VideoRecording() });\n>  \t\tStream *stream = config.front();\n>  \t\tStreamConfiguration *cfg = &config[stream];\n>\n> @@ -57,7 +57,7 @@ protected:\n>  \t\t\treturn TestFail;\n>  \t\t}\n>\n> -\t\tif (camera_->configureStreams(config)) {\n> +\t\tif (camera_->configure(config)) {\n>  \t\t\tcout << \"Failed to set default configuration\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> diff --git a/test/camera/configuration_default.cpp b/test/camera/configuration_default.cpp\n> index 2a10ea507a67..340b5f58f04c 100644\n> --- a/test/camera/configuration_default.cpp\n> +++ b/test/camera/configuration_default.cpp\n> @@ -21,7 +21,7 @@ protected:\n>  \t\tCameraConfiguration config;\n>\n>  \t\t/* Test asking for configuration for a video stream. */\n> -\t\tconfig = camera_->streamConfiguration({ Stream::VideoRecording() });\n> +\t\tconfig = camera_->generateConfiguration({ Stream::VideoRecording() });\n>  \t\tif (!config.isValid()) {\n>  \t\t\tcout << \"Default configuration invalid\" << endl;\n>  \t\t\treturn TestFail;\n> @@ -31,7 +31,7 @@ protected:\n>  \t\t * Test that asking for configuration for an empty array of\n>  \t\t * stream usages returns an empty list of configurations.\n>  \t\t */\n> -\t\tconfig = camera_->streamConfiguration({});\n> +\t\tconfig = camera_->generateConfiguration({});\n>  \t\tif (config.isValid()) {\n>  \t\t\tcout << \"Failed to retrieve configuration for empty usage list\"\n>  \t\t\t     << endl;\n> diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp\n> index ca41ed689511..24d5ca6690b7 100644\n> --- a/test/camera/configuration_set.cpp\n> +++ b/test/camera/configuration_set.cpp\n> @@ -19,7 +19,7 @@ protected:\n>  \tint run()\n>  \t{\n>  \t\tCameraConfiguration config =\n> -\t\t\tcamera_->streamConfiguration({ Stream::VideoRecording() });\n> +\t\t\tcamera_->generateConfiguration({ Stream::VideoRecording() });\n>  \t\tStreamConfiguration *cfg = &config[config.front()];\n>\n>  \t\tif (!config.isValid()) {\n> @@ -33,7 +33,7 @@ protected:\n>  \t\t}\n>\n>  \t\t/* Test that setting the default configuration works. */\n> -\t\tif (camera_->configureStreams(config)) {\n> +\t\tif (camera_->configure(config)) {\n>  \t\t\tcout << \"Failed to set default configuration\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> @@ -48,7 +48,7 @@ protected:\n>  \t\t\treturn TestFail;\n>  \t\t}\n>\n> -\t\tif (!camera_->configureStreams(config)) {\n> +\t\tif (!camera_->configure(config)) {\n>  \t\t\tcout << \"Setting configuration on a camera not acquired succeeded when it should have failed\"\n>  \t\t\t     << endl;\n>  \t\t\treturn TestFail;\n> @@ -66,7 +66,7 @@ protected:\n>  \t\t */\n>  \t\tcfg->size.width *= 2;\n>  \t\tcfg->size.height *= 2;\n> -\t\tif (camera_->configureStreams(config)) {\n> +\t\tif (camera_->configure(config)) {\n>  \t\t\tcout << \"Failed to set modified configuration\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> @@ -75,7 +75,7 @@ protected:\n>  \t\t * Test that setting an invalid configuration fails.\n>  \t\t */\n>  \t\tcfg->size = { 0, 0 };\n> -\t\tif (!camera_->configureStreams(config)) {\n> +\t\tif (!camera_->configure(config)) {\n>  \t\t\tcout << \"Invalid configuration incorrectly accepted\" << endl;\n>  \t\t\treturn TestFail;\n>  \t\t}\n> diff --git a/test/camera/statemachine.cpp b/test/camera/statemachine.cpp\n> index 8ae93bee7ca1..bd2e61ff2939 100644\n> --- a/test/camera/statemachine.cpp\n> +++ b/test/camera/statemachine.cpp\n> @@ -19,7 +19,7 @@ protected:\n>  \tint testAvailable()\n>  \t{\n>  \t\t/* Test operations which should fail. */\n> -\t\tif (camera_->configureStreams(defconf_) != -EACCES)\n> +\t\tif (camera_->configure(defconf_) != -EACCES)\n>  \t\t\treturn TestFail;\n>\n>  \t\tif (camera_->allocateBuffers() != -EACCES)\n> @@ -84,7 +84,7 @@ protected:\n>  \t\tif (camera_->acquire())\n>  \t\t\treturn TestFail;\n>\n> -\t\tif (camera_->configureStreams(defconf_))\n> +\t\tif (camera_->configure(defconf_))\n>  \t\t\treturn TestFail;\n>\n>  \t\treturn TestPass;\n> @@ -113,7 +113,7 @@ protected:\n>  \t\t\treturn TestFail;\n>\n>  \t\t/* Test operations which should pass. */\n> -\t\tif (camera_->configureStreams(defconf_))\n> +\t\tif (camera_->configure(defconf_))\n>  \t\t\treturn TestFail;\n>\n>  \t\t/* Test valid state transitions, end in Prepared state. */\n> @@ -123,7 +123,7 @@ protected:\n>  \t\tif (camera_->acquire())\n>  \t\t\treturn TestFail;\n>\n> -\t\tif (camera_->configureStreams(defconf_))\n> +\t\tif (camera_->configure(defconf_))\n>  \t\t\treturn TestFail;\n>\n>  \t\tif (camera_->allocateBuffers())\n> @@ -141,7 +141,7 @@ protected:\n>  \t\tif (camera_->release() != -EBUSY)\n>  \t\t\treturn TestFail;\n>\n> -\t\tif (camera_->configureStreams(defconf_) != -EACCES)\n> +\t\tif (camera_->configure(defconf_) != -EACCES)\n>  \t\t\treturn TestFail;\n>\n>  \t\tif (camera_->allocateBuffers() != -EACCES)\n> @@ -172,7 +172,7 @@ protected:\n>  \t\tif (camera_->acquire())\n>  \t\t\treturn TestFail;\n>\n> -\t\tif (camera_->configureStreams(defconf_))\n> +\t\tif (camera_->configure(defconf_))\n>  \t\t\treturn TestFail;\n>\n>  \t\tif (camera_->allocateBuffers())\n> @@ -193,7 +193,7 @@ protected:\n>  \t\tif (camera_->release() != -EBUSY)\n>  \t\t\treturn TestFail;\n>\n> -\t\tif (camera_->configureStreams(defconf_) != -EACCES)\n> +\t\tif (camera_->configure(defconf_) != -EACCES)\n>  \t\t\treturn TestFail;\n>\n>  \t\tif (camera_->allocateBuffers() != -EACCES)\n> @@ -235,7 +235,7 @@ protected:\n>\n>  \tint run()\n>  \t{\n> -\t\tdefconf_ = camera_->streamConfiguration({ Stream::VideoRecording() });\n> +\t\tdefconf_ = camera_->generateConfiguration({ Stream::VideoRecording() });\n>\n>  \t\tif (testAvailable() != TestPass) {\n>  \t\t\tcout << \"State machine in Available state failed\" << endl;\n> --\n> Regards,\n>\n> Laurent Pinchart\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay10.mail.gandi.net (relay10.mail.gandi.net\n\t[217.70.178.230])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0C0F960E53\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 May 2019 09:58:50 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay10.mail.gandi.net (Postfix) with ESMTPSA id 5E0DE240006;\n\tMon, 20 May 2019 07:58:49 +0000 (UTC)"],"Date":"Mon, 20 May 2019 09:59:55 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190520075955.e3myckjuixnlyoka@uno.localdomain>","References":"<20190519150047.12444-1-laurent.pinchart@ideasonboard.com>\n\t<20190519150047.12444-2-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"l5wphmfrhrsrjur6\"","Content-Disposition":"inline","In-Reply-To":"<20190519150047.12444-2-laurent.pinchart@ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH v2 1/6] libcamera: camera: Rename\n\tconfigureStreams() and streamConfiguration()","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 20 May 2019 07:58:50 -0000"}},{"id":1633,"web_url":"https://patchwork.libcamera.org/comment/1633/","msgid":"<20190520113627.GA5351@pendragon.ideasonboard.com>","date":"2019-05-20T11:36:27","subject":"Re: [libcamera-devel] [PATCH v2 1/6] libcamera: camera: Rename\n\tconfigureStreams() and streamConfiguration()","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Mon, May 20, 2019 at 09:59:55AM +0200, Jacopo Mondi wrote:\n> On Sun, May 19, 2019 at 06:00:42PM +0300, Laurent Pinchart wrote:\n> > Rename the configureStreams() and streamConfiguration() methods to\n> > configure() and generateConfiguration() respectively in order to clarify\n> > the API. Both methods deal with CameraConfiguration objects, and are\n> > thus not limited to streams, even if a CameraConfiguration currently\n> > contains streams only.\n> \n> Bikeshedding, I now, but I still advocate for\n> \n> generateConfiguration()\n> applyConfiguration()\n> \n> or\n> \n> configuration()\n> configure()\n> \n> with a preference for the first one\n\nI've actually thought about the latter :-) In general short names are\npreferable in my opinion, when they can be descriptive enough. I'm\nhoping that down the road we'll find a better name for\ngenerateConfiguration(). Maybe after more development, with the next\nrework of the API ? :-)\n\n> Anyway, that's really minor so\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> \n> > While at it, remove the qcam MainWindow::configureStreams() method that\n> > is declared but never defined or used.\n> >\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > ---\n> >  include/libcamera/camera.h               |  4 ++--\n> >  src/cam/main.cpp                         |  6 ++---\n> >  src/libcamera/camera.cpp                 | 28 ++++++++++++------------\n> >  src/libcamera/include/pipeline_handler.h |  4 ++--\n> >  src/libcamera/pipeline/ipu3/ipu3.cpp     | 21 +++++++++---------\n> >  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 10 ++++-----\n> >  src/libcamera/pipeline/uvcvideo.cpp      | 16 +++++++-------\n> >  src/libcamera/pipeline/vimc.cpp          | 16 +++++++-------\n> >  src/libcamera/pipeline_handler.cpp       | 28 ++++++++++++------------\n> >  src/libcamera/stream.cpp                 |  5 ++---\n> >  src/qcam/main_window.cpp                 |  4 ++--\n> >  src/qcam/main_window.h                   |  1 -\n> >  test/camera/capture.cpp                  |  4 ++--\n> >  test/camera/configuration_default.cpp    |  4 ++--\n> >  test/camera/configuration_set.cpp        | 10 ++++-----\n> >  test/camera/statemachine.cpp             | 16 +++++++-------\n> >  16 files changed, 87 insertions(+), 90 deletions(-)\n> >\n> > diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h\n> > index 777b7e4d48b8..306739b7014a 100644\n> > --- a/include/libcamera/camera.h\n> > +++ b/include/libcamera/camera.h\n> > @@ -75,8 +75,8 @@ public:\n> >\n> >  \tconst std::set<Stream *> &streams() const;\n> >  \tCameraConfiguration\n> > -\tstreamConfiguration(const std::vector<StreamUsage> &usage);\n> > -\tint configureStreams(const CameraConfiguration &config);\n> > +\tgenerateConfiguration(const std::vector<StreamUsage> &usage);\n> > +\tint configure(const CameraConfiguration &config);\n> >\n> >  \tint allocateBuffers();\n> >  \tint freeBuffers();\n> > diff --git a/src/cam/main.cpp b/src/cam/main.cpp\n> > index f03c32b385a9..6a2508dd3bd9 100644\n> > --- a/src/cam/main.cpp\n> > +++ b/src/cam/main.cpp\n> > @@ -93,7 +93,7 @@ static int prepareCameraConfig(CameraConfiguration *config)\n> >\n> >  \t/* If no configuration is provided assume a single video stream. */\n> >  \tif (!options.isSet(OptStream)) {\n> > -\t\t*config = camera->streamConfiguration({ Stream::VideoRecording() });\n> > +\t\t*config = camera->generateConfiguration({ Stream::VideoRecording() });\n> >  \t\tstreamInfo[config->front()] = \"stream0\";\n> >  \t\treturn 0;\n> >  \t}\n> > @@ -121,7 +121,7 @@ static int prepareCameraConfig(CameraConfiguration *config)\n> >  \t\t}\n> >  \t}\n> >\n> > -\t*config = camera->streamConfiguration(roles);\n> > +\t*config = camera->generateConfiguration(roles);\n> >\n> >  \tif (!config->isValid()) {\n> >  \t\tstd::cerr << \"Failed to get default stream configuration\"\n> > @@ -211,7 +211,7 @@ static int capture()\n> >  \t\treturn ret;\n> >  \t}\n> >\n> > -\tret = camera->configureStreams(config);\n> > +\tret = camera->configure(config);\n> >  \tif (ret < 0) {\n> >  \t\tstd::cout << \"Failed to configure camera\" << std::endl;\n> >  \t\treturn ret;\n> > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > index 1a21acac9899..359174a41823 100644\n> > --- a/src/libcamera/camera.cpp\n> > +++ b/src/libcamera/camera.cpp\n> > @@ -275,10 +275,10 @@ const StreamConfiguration &CameraConfiguration::operator[](Stream *stream) const\n> >   *   Available -> Acquired [label = \"acquire()\"];\n> >   *\n> >   *   Acquired -> Available [label = \"release()\"];\n> > - *   Acquired -> Configured [label = \"configureStreams()\"];\n> > + *   Acquired -> Configured [label = \"configure()\"];\n> >   *\n> >   *   Configured -> Available [label = \"release()\"];\n> > - *   Configured -> Configured [label = \"configureStreams()\"];\n> > + *   Configured -> Configured [label = \"configure()\"];\n> >   *   Configured -> Prepared [label = \"allocateBuffers()\"];\n> >   *\n> >   *   Prepared -> Configured [label = \"freeBuffers()\"];\n> > @@ -542,23 +542,23 @@ const std::set<Stream *> &Camera::streams() const\n> >  }\n> >\n> >  /**\n> > - * \\brief Retrieve a group of stream configurations according to stream usages\n> > + * \\brief Generate a default camera configuration according to stream usages\n> >   * \\param[in] usages A list of stream usages\n> >   *\n> > - * Retrieve configuration for a set of desired usages. The caller specifies a\n> > - * list of stream usages and the camera returns a map of suitable streams and\n> > - * their suggested default configurations.\n> > + * Generate a camera configuration for a set of desired usages. The caller\n> > + * specifies a list of stream usages and the camera returns a configuration\n> > + * containing suitable streams and their suggested default configurations.\n> >   *\n> >   * \\return A valid CameraConfiguration if the requested usages can be satisfied,\n> >   * or a invalid one otherwise\n> >   */\n> >  CameraConfiguration\n> > -Camera::streamConfiguration(const std::vector<StreamUsage> &usages)\n> > +Camera::generateConfiguration(const std::vector<StreamUsage> &usages)\n> >  {\n> >  \tif (disconnected_ || !usages.size() || usages.size() > streams_.size())\n> >  \t\treturn CameraConfiguration();\n> >\n> > -\tCameraConfiguration config = pipe_->streamConfiguration(this, usages);\n> > +\tCameraConfiguration config = pipe_->generateConfiguration(this, usages);\n> >\n> >  \tstd::ostringstream msg(\"streams configuration:\", std::ios_base::ate);\n> >  \tunsigned int index = 0;\n> > @@ -575,7 +575,7 @@ Camera::streamConfiguration(const std::vector<StreamUsage> &usages)\n> >  }\n> >\n> >  /**\n> > - * \\brief Configure the camera's streams prior to capture\n> > + * \\brief Configure the camera prior to capture\n> >   * \\param[in] config The camera configurations to setup\n> >   *\n> >   * Prior to starting capture, the camera must be configured to select a\n> > @@ -584,9 +584,9 @@ Camera::streamConfiguration(const std::vector<StreamUsage> &usages)\n> >   * by populating \\a config.\n> >   *\n> >   * The easiest way to populate the array of config is to fetch an initial\n> > - * configuration from the camera with streamConfiguration() and then change the\n> > - * parameters to fit the caller's need and once all the streams parameters are\n> > - * configured hand that over to configureStreams() to actually setup the camera.\n> > + * configuration from the camera with generateConfiguration() and then change\n> > + * the parameters to fit the caller's need and once all the streams parameters\n> > + * are configured hand that over to configure() to actually setup the camera.\n> >   *\n> >   * Exclusive access to the camera shall be ensured by a call to acquire() prior\n> >   * to calling this function, otherwise an -EACCES error will be returned.\n> > @@ -598,7 +598,7 @@ Camera::streamConfiguration(const std::vector<StreamUsage> &usages)\n> >   * \\retval -EACCES The camera is not in a state where it can be configured\n> >   * \\retval -EINVAL The configuration is not valid\n> >   */\n> > -int Camera::configureStreams(const CameraConfiguration &config)\n> > +int Camera::configure(const CameraConfiguration &config)\n> >  {\n> >  \tint ret;\n> >\n> > @@ -629,7 +629,7 @@ int Camera::configureStreams(const CameraConfiguration &config)\n> >\n> >  \tLOG(Camera, Info) << msg.str();\n> >\n> > -\tret = pipe_->configureStreams(this, config);\n> > +\tret = pipe_->configure(this, config);\n> >  \tif (ret)\n> >  \t\treturn ret;\n> >\n> > diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/pipeline_handler.h\n> > index 9f5fe3d673e2..9cc11a8e192e 100644\n> > --- a/src/libcamera/include/pipeline_handler.h\n> > +++ b/src/libcamera/include/pipeline_handler.h\n> > @@ -61,8 +61,8 @@ public:\n> >  \tvoid unlock();\n> >\n> >  \tvirtual CameraConfiguration\n> > -\tstreamConfiguration(Camera *camera, const std::vector<StreamUsage> &usages) = 0;\n> > -\tvirtual int configureStreams(Camera *camera, const CameraConfiguration &config) = 0;\n> > +\tgenerateConfiguration(Camera *camera, const std::vector<StreamUsage> &usages) = 0;\n> > +\tvirtual int configure(Camera *camera, const CameraConfiguration &config) = 0;\n> >\n> >  \tvirtual int allocateBuffers(Camera *camera,\n> >  \t\t\t\t    const std::set<Stream *> &streams) = 0;\n> > diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > index 75a70e66eacc..ba0c708f9e1e 100644\n> > --- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n> > @@ -151,10 +151,10 @@ public:\n> >  \tPipelineHandlerIPU3(CameraManager *manager);\n> >\n> >  \tCameraConfiguration\n> > -\tstreamConfiguration(Camera *camera,\n> > -\t\t\t    const std::vector<StreamUsage> &usages) override;\n> > -\tint configureStreams(Camera *camera,\n> > -\t\t\t     const CameraConfiguration &config) override;\n> > +\tgenerateConfiguration(Camera *camera,\n> > +\t\t\t      const std::vector<StreamUsage> &usages) override;\n> > +\tint configure(Camera *camera,\n> > +\t\t      const CameraConfiguration &config) override;\n> >\n> >  \tint allocateBuffers(Camera *camera,\n> >  \t\t\t    const std::set<Stream *> &streams) override;\n> > @@ -210,8 +210,8 @@ PipelineHandlerIPU3::PipelineHandlerIPU3(CameraManager *manager)\n> >  }\n> >\n> >  CameraConfiguration\n> > -PipelineHandlerIPU3::streamConfiguration(Camera *camera,\n> > -\t\t\t\t\t const std::vector<StreamUsage> &usages)\n> > +PipelineHandlerIPU3::generateConfiguration(Camera *camera,\n> > +\t\t\t\t\t   const std::vector<StreamUsage> &usages)\n> >  {\n> >  \tIPU3CameraData *data = cameraData(camera);\n> >  \tCameraConfiguration config = {};\n> > @@ -309,8 +309,8 @@ PipelineHandlerIPU3::streamConfiguration(Camera *camera,\n> >  \treturn config;\n> >  }\n> >\n> > -int PipelineHandlerIPU3::configureStreams(Camera *camera,\n> > -\t\t\t\t\t  const CameraConfiguration &config)\n> > +int PipelineHandlerIPU3::configure(Camera *camera,\n> > +\t\t\t\t   const CameraConfiguration &config)\n> >  {\n> >  \tIPU3CameraData *data = cameraData(camera);\n> >  \tIPU3Stream *outStream = &data->outStream_;\n> > @@ -631,11 +631,10 @@ bool PipelineHandlerIPU3::match(DeviceEnumerator *enumerator)\n> >  \t * 1) Link enable/disable cannot be done at start/stop time as video\n> >  \t * devices needs to be linked first before format can be configured on\n> >  \t * them.\n> > -\t * 2) As link enable has to be done at the least in configureStreams,\n> > +\t * 2) As link enable has to be done at the least in configure(),\n> >  \t * before configuring formats, the only place where to disable links\n> >  \t * would be 'stop()', but the Camera class state machine allows\n> > -\t * start()<->stop() sequences without any streamConfiguration() in\n> > -\t * between.\n> > +\t * start()<->stop() sequences without any configure() in between.\n> >  \t *\n> >  \t * As of now, disable all links in the media graph at 'match()' time,\n> >  \t * to allow testing different cameras in different test applications\n> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > index 96553bf2d9ef..4d02f9604ad9 100644\n> > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > @@ -34,9 +34,9 @@ public:\n> >  \tPipelineHandlerRkISP1(CameraManager *manager);\n> >  \t~PipelineHandlerRkISP1();\n> >\n> > -\tCameraConfiguration streamConfiguration(Camera *camera,\n> > +\tCameraConfiguration generateConfiguration(Camera *camera,\n> >  \t\tconst std::vector<StreamUsage> &usages) override;\n> > -\tint configureStreams(Camera *camera,\n> > +\tint configure(Camera *camera,\n> >  \t\tconst CameraConfiguration &config) override;\n> >\n> >  \tint allocateBuffers(Camera *camera,\n> > @@ -106,7 +106,7 @@ PipelineHandlerRkISP1::~PipelineHandlerRkISP1()\n> >   * Pipeline Operations\n> >   */\n> >\n> > -CameraConfiguration PipelineHandlerRkISP1::streamConfiguration(Camera *camera,\n> > +CameraConfiguration PipelineHandlerRkISP1::generateConfiguration(Camera *camera,\n> >  \tconst std::vector<StreamUsage> &usages)\n> >  {\n> >  \tRkISP1CameraData *data = cameraData(camera);\n> > @@ -122,8 +122,8 @@ CameraConfiguration PipelineHandlerRkISP1::streamConfiguration(Camera *camera,\n> >  \treturn config;\n> >  }\n> >\n> > -int PipelineHandlerRkISP1::configureStreams(Camera *camera,\n> > -\t\t\t\t\t    const CameraConfiguration &config)\n> > +int PipelineHandlerRkISP1::configure(Camera *camera,\n> > +\t\t\t\t     const CameraConfiguration &config)\n> >  {\n> >  \tRkISP1CameraData *data = cameraData(camera);\n> >  \tconst StreamConfiguration &cfg = config[&data->stream_];\n> > diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp\n> > index 351712cfdc69..118b97457d2a 100644\n> > --- a/src/libcamera/pipeline/uvcvideo.cpp\n> > +++ b/src/libcamera/pipeline/uvcvideo.cpp\n> > @@ -26,10 +26,10 @@ public:\n> >  \tPipelineHandlerUVC(CameraManager *manager);\n> >\n> >  \tCameraConfiguration\n> > -\tstreamConfiguration(Camera *camera,\n> > -\t\t\t    const std::vector<StreamUsage> &usages) override;\n> > -\tint configureStreams(Camera *camera,\n> > -\t\t\t     const CameraConfiguration &config) override;\n> > +\tgenerateConfiguration(Camera *camera,\n> > +\t\t\t      const std::vector<StreamUsage> &usages) override;\n> > +\tint configure(Camera *camera,\n> > +\t\t      const CameraConfiguration &config) override;\n> >\n> >  \tint allocateBuffers(Camera *camera,\n> >  \t\t\t    const std::set<Stream *> &streams) override;\n> > @@ -76,8 +76,8 @@ PipelineHandlerUVC::PipelineHandlerUVC(CameraManager *manager)\n> >  }\n> >\n> >  CameraConfiguration\n> > -PipelineHandlerUVC::streamConfiguration(Camera *camera,\n> > -\t\t\t\t\tconst std::vector<StreamUsage> &usages)\n> > +PipelineHandlerUVC::generateConfiguration(Camera *camera,\n> > +\t\t\t\t\t  const std::vector<StreamUsage> &usages)\n> >  {\n> >  \tUVCCameraData *data = cameraData(camera);\n> >  \tCameraConfiguration config;\n> > @@ -92,8 +92,8 @@ PipelineHandlerUVC::streamConfiguration(Camera *camera,\n> >  \treturn config;\n> >  }\n> >\n> > -int PipelineHandlerUVC::configureStreams(Camera *camera,\n> > -\t\t\t\t\t const CameraConfiguration &config)\n> > +int PipelineHandlerUVC::configure(Camera *camera,\n> > +\t\t\t\t  const CameraConfiguration &config)\n> >  {\n> >  \tUVCCameraData *data = cameraData(camera);\n> >  \tconst StreamConfiguration *cfg = &config[&data->stream_];\n> > diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp\n> > index 737d6df67def..74959581a7ef 100644\n> > --- a/src/libcamera/pipeline/vimc.cpp\n> > +++ b/src/libcamera/pipeline/vimc.cpp\n> > @@ -26,10 +26,10 @@ public:\n> >  \tPipelineHandlerVimc(CameraManager *manager);\n> >\n> >  \tCameraConfiguration\n> > -\tstreamConfiguration(Camera *camera,\n> > -\t\t\t    const std::vector<StreamUsage> &usages) override;\n> > -\tint configureStreams(Camera *camera,\n> > -\t\t\t     const CameraConfiguration &config) override;\n> > +\tgenerateConfiguration(Camera *camera,\n> > +\t\t\t      const std::vector<StreamUsage> &usages) override;\n> > +\tint configure(Camera *camera,\n> > +\t\t      const CameraConfiguration &config) override;\n> >\n> >  \tint allocateBuffers(Camera *camera,\n> >  \t\t\t    const std::set<Stream *> &streams) override;\n> > @@ -76,8 +76,8 @@ PipelineHandlerVimc::PipelineHandlerVimc(CameraManager *manager)\n> >  }\n> >\n> >  CameraConfiguration\n> > -PipelineHandlerVimc::streamConfiguration(Camera *camera,\n> > -\t\t\t\t\t const std::vector<StreamUsage> &usages)\n> > +PipelineHandlerVimc::generateConfiguration(Camera *camera,\n> > +\t\t\t\t\t   const std::vector<StreamUsage> &usages)\n> >  {\n> >  \tVimcCameraData *data = cameraData(camera);\n> >  \tCameraConfiguration config;\n> > @@ -92,8 +92,8 @@ PipelineHandlerVimc::streamConfiguration(Camera *camera,\n> >  \treturn config;\n> >  }\n> >\n> > -int PipelineHandlerVimc::configureStreams(Camera *camera,\n> > -\t\t\t\t\t  const CameraConfiguration &config)\n> > +int PipelineHandlerVimc::configure(Camera *camera,\n> > +\t\t\t\t   const CameraConfiguration &config)\n> >  {\n> >  \tVimcCameraData *data = cameraData(camera);\n> >  \tconst StreamConfiguration *cfg = &config[&data->stream_];\n> > diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp\n> > index 1eeaf4bb6dae..b9ac64328f1d 100644\n> > --- a/src/libcamera/pipeline_handler.cpp\n> > +++ b/src/libcamera/pipeline_handler.cpp\n> > @@ -218,26 +218,26 @@ void PipelineHandler::unlock()\n> >  }\n> >\n> >  /**\n> > - * \\fn PipelineHandler::streamConfiguration()\n> > - * \\brief Retrieve a group of stream configurations for a specified camera\n> > - * \\param[in] camera The camera to fetch default configuration from\n> > + * \\fn PipelineHandler::generateConfiguration()\n> > + * \\brief Generate a camera configuration for a specified camera\n> > + * \\param[in] camera The camera to generate a default configuration for\n> >   * \\param[in] usages A list of stream usages\n> >   *\n> > - * Retrieve the species camera's default configuration for a specified group of\n> > - * use-cases. The caller shall populate the \\a usages array with the use-cases it\n> > - * wishes to fetch the default configuration for. The map of streams and\n> > - * configurations returned can then be examined by the caller to learn about\n> > - * the default parameters for the specified streams.\n> > + * Generate a default configuration for the \\a camera for a specified group of\n> > + * use-cases. The caller shall populate the \\a usages array with the use-cases\n> > + * it wishes to fetch the default configuration for. The returned configuration\n> > + * can then be examined by the caller to learn about the selected streams and\n> > + * their default parameters.\n> >   *\n> > - * The intended companion to this is \\a configureStreams() which can be used to\n> > - * change the group of streams parameters.\n> > + * The intended companion to this is \\a configure() which can be used to change\n> > + * the group of streams parameters.\n> >   *\n> >   * \\return A valid CameraConfiguration if the requested usages can be satisfied,\n> >   * or a invalid configuration otherwise\n> >   */\n> >\n> >  /**\n> > - * \\fn PipelineHandler::configureStreams()\n> > + * \\fn PipelineHandler::configure()\n> >   * \\brief Configure a group of streams for capture\n> >   * \\param[in] camera The camera to configure\n> >   * \\param[in] config The camera configurations to setup\n> > @@ -293,9 +293,9 @@ void PipelineHandler::unlock()\n> >   * \\param[in] camera The camera to start\n> >   *\n> >   * Start the group of streams that have been configured for capture by\n> > - * \\a configureStreams(). The intended caller of this method is the Camera\n> > - * class which will in turn be called from the application to indicate that it\n> > - * has configured the streams and is ready to capture.\n> > + * \\a configure(). The intended caller of this method is the Camera class which\n> > + * will in turn be called from the application to indicate that it has\n> > + * configured the streams and is ready to capture.\n> >   *\n> >   * \\return 0 on success or a negative error code otherwise\n> >   */\n> > diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp\n> > index 4ff296e3a75b..af259510b19c 100644\n> > --- a/src/libcamera/stream.cpp\n> > +++ b/src/libcamera/stream.cpp\n> > @@ -218,9 +218,8 @@ Stream::Stream()\n> >   * \\brief The stream configuration\n> >   *\n> >   * The configuration for the stream is set by any successful call to\n> > - * Camera::configureStreams() that includes the stream, and remains valid until\n> > - * the next call to Camera::configureStreams() regardless of if it includes the\n> > - * stream.\n> > + * Camera::configure() that includes the stream, and remains valid until the\n> > + * next call to Camera::configure() regardless of if it includes the stream.\n> >   */\n> >\n> >  } /* namespace libcamera */\n> > diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\n> > index ee06d751672b..c91b82727ec6 100644\n> > --- a/src/qcam/main_window.cpp\n> > +++ b/src/qcam/main_window.cpp\n> > @@ -97,9 +97,9 @@ int MainWindow::startCapture()\n> >  {\n> >  \tint ret;\n> >\n> > -\tconfig_ = camera_->streamConfiguration({ Stream::VideoRecording() });\n> > +\tconfig_ = camera_->generateConfiguration({ Stream::VideoRecording() });\n> >  \tStream *stream = config_.front();\n> > -\tret = camera_->configureStreams(config_);\n> > +\tret = camera_->configure(config_);\n> >  \tif (ret < 0) {\n> >  \t\tstd::cout << \"Failed to configure camera\" << std::endl;\n> >  \t\treturn ret;\n> > diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h\n> > index 9b31da2bf4b7..143b5b08a5a0 100644\n> > --- a/src/qcam/main_window.h\n> > +++ b/src/qcam/main_window.h\n> > @@ -35,7 +35,6 @@ private:\n> >  \tint openCamera();\n> >\n> >  \tint startCapture();\n> > -\tint configureStreams(Camera *camera, std::set<Stream *> &streams);\n> >  \tvoid stopCapture();\n> >\n> >  \tvoid requestComplete(Request *request,\n> > diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\n> > index 0101cc94e665..bc3a4d6cb9f2 100644\n> > --- a/test/camera/capture.cpp\n> > +++ b/test/camera/capture.cpp\n> > @@ -43,7 +43,7 @@ protected:\n> >  \tint run()\n> >  \t{\n> >  \t\tCameraConfiguration config =\n> > -\t\t\tcamera_->streamConfiguration({ Stream::VideoRecording() });\n> > +\t\t\tcamera_->generateConfiguration({ Stream::VideoRecording() });\n> >  \t\tStream *stream = config.front();\n> >  \t\tStreamConfiguration *cfg = &config[stream];\n> >\n> > @@ -57,7 +57,7 @@ protected:\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> >\n> > -\t\tif (camera_->configureStreams(config)) {\n> > +\t\tif (camera_->configure(config)) {\n> >  \t\t\tcout << \"Failed to set default configuration\" << endl;\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> > diff --git a/test/camera/configuration_default.cpp b/test/camera/configuration_default.cpp\n> > index 2a10ea507a67..340b5f58f04c 100644\n> > --- a/test/camera/configuration_default.cpp\n> > +++ b/test/camera/configuration_default.cpp\n> > @@ -21,7 +21,7 @@ protected:\n> >  \t\tCameraConfiguration config;\n> >\n> >  \t\t/* Test asking for configuration for a video stream. */\n> > -\t\tconfig = camera_->streamConfiguration({ Stream::VideoRecording() });\n> > +\t\tconfig = camera_->generateConfiguration({ Stream::VideoRecording() });\n> >  \t\tif (!config.isValid()) {\n> >  \t\t\tcout << \"Default configuration invalid\" << endl;\n> >  \t\t\treturn TestFail;\n> > @@ -31,7 +31,7 @@ protected:\n> >  \t\t * Test that asking for configuration for an empty array of\n> >  \t\t * stream usages returns an empty list of configurations.\n> >  \t\t */\n> > -\t\tconfig = camera_->streamConfiguration({});\n> > +\t\tconfig = camera_->generateConfiguration({});\n> >  \t\tif (config.isValid()) {\n> >  \t\t\tcout << \"Failed to retrieve configuration for empty usage list\"\n> >  \t\t\t     << endl;\n> > diff --git a/test/camera/configuration_set.cpp b/test/camera/configuration_set.cpp\n> > index ca41ed689511..24d5ca6690b7 100644\n> > --- a/test/camera/configuration_set.cpp\n> > +++ b/test/camera/configuration_set.cpp\n> > @@ -19,7 +19,7 @@ protected:\n> >  \tint run()\n> >  \t{\n> >  \t\tCameraConfiguration config =\n> > -\t\t\tcamera_->streamConfiguration({ Stream::VideoRecording() });\n> > +\t\t\tcamera_->generateConfiguration({ Stream::VideoRecording() });\n> >  \t\tStreamConfiguration *cfg = &config[config.front()];\n> >\n> >  \t\tif (!config.isValid()) {\n> > @@ -33,7 +33,7 @@ protected:\n> >  \t\t}\n> >\n> >  \t\t/* Test that setting the default configuration works. */\n> > -\t\tif (camera_->configureStreams(config)) {\n> > +\t\tif (camera_->configure(config)) {\n> >  \t\t\tcout << \"Failed to set default configuration\" << endl;\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> > @@ -48,7 +48,7 @@ protected:\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> >\n> > -\t\tif (!camera_->configureStreams(config)) {\n> > +\t\tif (!camera_->configure(config)) {\n> >  \t\t\tcout << \"Setting configuration on a camera not acquired succeeded when it should have failed\"\n> >  \t\t\t     << endl;\n> >  \t\t\treturn TestFail;\n> > @@ -66,7 +66,7 @@ protected:\n> >  \t\t */\n> >  \t\tcfg->size.width *= 2;\n> >  \t\tcfg->size.height *= 2;\n> > -\t\tif (camera_->configureStreams(config)) {\n> > +\t\tif (camera_->configure(config)) {\n> >  \t\t\tcout << \"Failed to set modified configuration\" << endl;\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> > @@ -75,7 +75,7 @@ protected:\n> >  \t\t * Test that setting an invalid configuration fails.\n> >  \t\t */\n> >  \t\tcfg->size = { 0, 0 };\n> > -\t\tif (!camera_->configureStreams(config)) {\n> > +\t\tif (!camera_->configure(config)) {\n> >  \t\t\tcout << \"Invalid configuration incorrectly accepted\" << endl;\n> >  \t\t\treturn TestFail;\n> >  \t\t}\n> > diff --git a/test/camera/statemachine.cpp b/test/camera/statemachine.cpp\n> > index 8ae93bee7ca1..bd2e61ff2939 100644\n> > --- a/test/camera/statemachine.cpp\n> > +++ b/test/camera/statemachine.cpp\n> > @@ -19,7 +19,7 @@ protected:\n> >  \tint testAvailable()\n> >  \t{\n> >  \t\t/* Test operations which should fail. */\n> > -\t\tif (camera_->configureStreams(defconf_) != -EACCES)\n> > +\t\tif (camera_->configure(defconf_) != -EACCES)\n> >  \t\t\treturn TestFail;\n> >\n> >  \t\tif (camera_->allocateBuffers() != -EACCES)\n> > @@ -84,7 +84,7 @@ protected:\n> >  \t\tif (camera_->acquire())\n> >  \t\t\treturn TestFail;\n> >\n> > -\t\tif (camera_->configureStreams(defconf_))\n> > +\t\tif (camera_->configure(defconf_))\n> >  \t\t\treturn TestFail;\n> >\n> >  \t\treturn TestPass;\n> > @@ -113,7 +113,7 @@ protected:\n> >  \t\t\treturn TestFail;\n> >\n> >  \t\t/* Test operations which should pass. */\n> > -\t\tif (camera_->configureStreams(defconf_))\n> > +\t\tif (camera_->configure(defconf_))\n> >  \t\t\treturn TestFail;\n> >\n> >  \t\t/* Test valid state transitions, end in Prepared state. */\n> > @@ -123,7 +123,7 @@ protected:\n> >  \t\tif (camera_->acquire())\n> >  \t\t\treturn TestFail;\n> >\n> > -\t\tif (camera_->configureStreams(defconf_))\n> > +\t\tif (camera_->configure(defconf_))\n> >  \t\t\treturn TestFail;\n> >\n> >  \t\tif (camera_->allocateBuffers())\n> > @@ -141,7 +141,7 @@ protected:\n> >  \t\tif (camera_->release() != -EBUSY)\n> >  \t\t\treturn TestFail;\n> >\n> > -\t\tif (camera_->configureStreams(defconf_) != -EACCES)\n> > +\t\tif (camera_->configure(defconf_) != -EACCES)\n> >  \t\t\treturn TestFail;\n> >\n> >  \t\tif (camera_->allocateBuffers() != -EACCES)\n> > @@ -172,7 +172,7 @@ protected:\n> >  \t\tif (camera_->acquire())\n> >  \t\t\treturn TestFail;\n> >\n> > -\t\tif (camera_->configureStreams(defconf_))\n> > +\t\tif (camera_->configure(defconf_))\n> >  \t\t\treturn TestFail;\n> >\n> >  \t\tif (camera_->allocateBuffers())\n> > @@ -193,7 +193,7 @@ protected:\n> >  \t\tif (camera_->release() != -EBUSY)\n> >  \t\t\treturn TestFail;\n> >\n> > -\t\tif (camera_->configureStreams(defconf_) != -EACCES)\n> > +\t\tif (camera_->configure(defconf_) != -EACCES)\n> >  \t\t\treturn TestFail;\n> >\n> >  \t\tif (camera_->allocateBuffers() != -EACCES)\n> > @@ -235,7 +235,7 @@ protected:\n> >\n> >  \tint run()\n> >  \t{\n> > -\t\tdefconf_ = camera_->streamConfiguration({ Stream::VideoRecording() });\n> > +\t\tdefconf_ = camera_->generateConfiguration({ Stream::VideoRecording() });\n> >\n> >  \t\tif (testAvailable() != TestPass) {\n> >  \t\t\tcout << \"State machine in Available state failed\" << endl;","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 31FE260E4A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 May 2019 13:36:45 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(dfj612yhrgyx302h3jwwy-3.rev.dnainternet.fi\n\t[IPv6:2001:14ba:21f5:5b00:ce28:277f:58d7:3ca4])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7FD86443;\n\tMon, 20 May 2019 13:36:44 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1558352204;\n\tbh=9DEEfT8HIWX0i/uUOyzimlGLlvcMy5LLIu8auaXiq2Y=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=jBneBZgTuXlJSrGD3ku7fW4/znwSYBsIR32yUwPgACLbNx7dVJHUYITbCQH9AO/9z\n\tr5W0DVTyispGGGyJTf4e3/zkVita4waEG+AxMqOzPIvqhGJLUqKYLMih8G+PrYs8yF\n\tX4uMp9kOibY736yesxH1YU5DaoE5LtA5UOPHxB7c=","Date":"Mon, 20 May 2019 14:36:27 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190520113627.GA5351@pendragon.ideasonboard.com>","References":"<20190519150047.12444-1-laurent.pinchart@ideasonboard.com>\n\t<20190519150047.12444-2-laurent.pinchart@ideasonboard.com>\n\t<20190520075955.e3myckjuixnlyoka@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<20190520075955.e3myckjuixnlyoka@uno.localdomain>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH v2 1/6] libcamera: camera: Rename\n\tconfigureStreams() and streamConfiguration()","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Mon, 20 May 2019 11:36:45 -0000"}}]