| Message ID | 20200421203954.15585-1-andrey.konovalov@linaro.org | 
|---|---|
| Headers | show | 
| Series | 
   
  | 
 
| Related | show | 
Forgot to mention that this series is to be applied on top of Simple pipeline handler, v4 patch set: https://lists.libcamera.org/pipermail/libcamera-devel/2020-April/007880.html Thanks, Andrey On 21.04.2020 23:39, Andrey Konovalov wrote: > When enumerating the possible pipeline configurations, SimpleCameraData::init() > doesn't check if the sink pad uses the same format as the source pad of the > same link does. This can result in broken pipeline configurations added to > the formats_ map, and if such a configuration is selected the issue reveals > late as a failure to start streaming. > > The first patch adds the check into SimpleCameraData::setupFormats() - now > it returns -EINVAL if a link is misconfigured. > > The second patch prevents the enumeration of the possible pipeline > configurations from being aborted on the first broken configuration > and proceeds with the next media bus code instead. > > Andrey Konovalov (2): > libcamera: pipeline: simple: make sure the formats at the link's pads > match > libcamera: pipeline: simple: try next mbus code if setupFormats() > fails > > src/libcamera/pipeline/simple/simple.cpp | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) >
When enumerating the possible pipeline configurations, SimpleCameraData::init() doesn't check if the sink pad uses the same format as the source pad of the same link does. This can result in broken pipeline configurations added to the formats_ map, and if such a configuration is selected the issue reveals late as a failure to start streaming. The first patch adds the check into SimpleCameraData::setupFormats() - now it returns -EINVAL if a link is misconfigured. The second patch prevents the enumeration of the possible pipeline configurations from being aborted on the first broken configuration and proceeds with the next media bus code instead. Andrey Konovalov (2): libcamera: pipeline: simple: make sure the formats at the link's pads match libcamera: pipeline: simple: try next mbus code if setupFormats() fails src/libcamera/pipeline/simple/simple.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-)