File tree Expand file tree Collapse file tree 1 file changed +11
-4
lines changed Expand file tree Collapse file tree 1 file changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -118,6 +118,16 @@ static void set_hdr(bool hdr) {
118118 }
119119}
120120
121+ // https://github.com/raspberrypi/rpicam-apps/blob/74abee8f2de519fed9cb88d39473d1dd4cf50b62/core/rpicam_app.hpp#L176
122+ static std::vector<std::shared_ptr<Camera>> get_cameras (const CameraManager *camera_manager) {
123+ std::vector<std::shared_ptr<Camera>> cameras = camera_manager->cameras ();
124+ auto rem = std::remove_if (cameras.begin (), cameras.end (),
125+ [](auto &cam) { return cam->id ().find (" /usb" ) != std::string::npos; });
126+ cameras.erase (rem, cameras.end ());
127+ std::sort (cameras.begin (), cameras.end (), [](auto l, auto r) { return l->id () > r->id (); });
128+ return cameras;
129+ }
130+
121131struct CameraPriv {
122132 const parameters_t *params;
123133 camera_frame_cb frame_cb;
@@ -162,10 +172,7 @@ bool camera_create(
162172 return false ;
163173 }
164174
165- std::vector<std::shared_ptr<Camera>> cameras = camp->camera_manager ->cameras ();
166- auto rem = std::remove_if (cameras.begin (), cameras.end (),
167- [](auto &cam) { return cam->id ().find (" /usb" ) != std::string::npos; });
168- cameras.erase (rem, cameras.end ());
175+ std::vector<std::shared_ptr<Camera>> cameras = get_cameras (camp->camera_manager .get ());
169176 if (params->camera_id >= cameras.size ()){
170177 set_error (" selected camera is not available" );
171178 return false ;
You can’t perform that action at this time.
0 commit comments