Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. A camera problem.
Qt 6.12 LTS is out! See what's new in the release blog

A camera problem.

Scheduled Pinned Locked Moved Unsolved General and Desktop
91 Posts 7 Posters 46.7k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J jenya7

    @JonB said in A camera problem.:

    @jenya7
    What is "not physically allocated", and why do you get an exception on what?

    There is a basic example at https://doc.qt.io/qt-5/qcameraviewfinder.html
    Did you test whether just this code might work for you?

    You also ought check those m_camera->isCaptureModeSupported(...) I mentioned, else you are whistling in the wind....

    bool supported = m_camera->isCaptureModeSupported(QCamera::CaptureStillImage);
    

    Yes. It's supported.
    I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.
    Is it normal?

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #75

    @jenya7 said in A camera problem.:

    I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.

    Where do you see it and where do you create camera object? Can you please post relevant code?

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    J 1 Reply Last reply
    0
    • J jenya7

      @JonB said in A camera problem.:

      @jenya7
      What is "not physically allocated", and why do you get an exception on what?

      There is a basic example at https://doc.qt.io/qt-5/qcameraviewfinder.html
      Did you test whether just this code might work for you?

      You also ought check those m_camera->isCaptureModeSupported(...) I mentioned, else you are whistling in the wind....

      bool supported = m_camera->isCaptureModeSupported(QCamera::CaptureStillImage);
      

      Yes. It's supported.
      I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.
      Is it normal?

      JonBJ Offline
      JonBJ Offline
      JonB
      wrote on last edited by JonB
      #76

      @jenya7
      OK, but why not try the example from the docs, in a standalone test program? Not going to say it again.....

      J 1 Reply Last reply
      0
      • JonBJ JonB

        @jenya7
        OK, but why not try the example from the docs, in a standalone test program? Not going to say it again.....

        J Offline
        J Offline
        jenya7
        wrote on last edited by
        #77

        @JonB said in A camera problem.:

        @jenya7
        OK, but why not try the example from the docs, in a standalone test program? Not going to say it again.....

        It runs on Windows machine. Have to arrange some camera....

        JonBJ 1 Reply Last reply
        0
        • J jenya7

          @JonB said in A camera problem.:

          @jenya7
          OK, but why not try the example from the docs, in a standalone test program? Not going to say it again.....

          It runs on Windows machine. Have to arrange some camera....

          JonBJ Offline
          JonBJ Offline
          JonB
          wrote on last edited by
          #78

          @jenya7
          What runs on Windows machine? It's just sample code, does it not run on whatever platform you are on? You may know better than I, I'll keep quiet now.

          1 Reply Last reply
          0
          • jsulmJ jsulm

            @jenya7 said in A camera problem.:

            I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.

            Where do you see it and where do you create camera object? Can you please post relevant code?

            J Offline
            J Offline
            jenya7
            wrote on last edited by
            #79

            @jsulm said in A camera problem.:

            @jenya7 said in A camera problem.:

            I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.

            Where do you see it and where do you create camera object? Can you please post relevant code?

            I put a break point in the MainWindow constructor and Camera constructor and see which hits the first.
            This way it works without errors

            QCameraViewfinder *v_finder;
            
            MainWindow::MainWindow(QWidget *parent) :
                QMainWindow(parent),
                ui(new Ui::MainWindow)
            {
                v_finder = new QCameraViewfinder(this);
                v_finder->show();
            
                ui->setupUi(this);
                ui->textEditTerminalTx->installEventFilter(this);
            }
            
            void Camera::setCamera(const QCameraInfo &cameraInfo)
            {
                   //........................
            
                 m_camera->setViewfinder(v_finder);
            
                  //............................
            }
            
            

            Is it OK?

            JonBJ 1 Reply Last reply
            0
            • J jenya7

              @jsulm said in A camera problem.:

              @jenya7 said in A camera problem.:

              I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.

              Where do you see it and where do you create camera object? Can you please post relevant code?

              I put a break point in the MainWindow constructor and Camera constructor and see which hits the first.
              This way it works without errors

              QCameraViewfinder *v_finder;
              
              MainWindow::MainWindow(QWidget *parent) :
                  QMainWindow(parent),
                  ui(new Ui::MainWindow)
              {
                  v_finder = new QCameraViewfinder(this);
                  v_finder->show();
              
                  ui->setupUi(this);
                  ui->textEditTerminalTx->installEventFilter(this);
              }
              
              void Camera::setCamera(const QCameraInfo &cameraInfo)
              {
                     //........................
              
                   m_camera->setViewfinder(v_finder);
              
                    //............................
              }
              
              

              Is it OK?

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by JonB
              #80

              @jenya7 said in A camera problem.:

              I put a break point in the MainWindow constructor and Camera constructor and see which hits the first.

              And what was the result?!

              I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.

              At the time your Camera::setCamera() is called, has v_finder = new QCameraViewfinder(this); been executed yet? If not then v_finder in m_camera->setViewfinder(v_finder) will be nullptr....

              J 1 Reply Last reply
              1
              • JonBJ JonB

                @jenya7 said in A camera problem.:

                I put a break point in the MainWindow constructor and Camera constructor and see which hits the first.

                And what was the result?!

                I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.

                At the time your Camera::setCamera() is called, has v_finder = new QCameraViewfinder(this); been executed yet? If not then v_finder in m_camera->setViewfinder(v_finder) will be nullptr....

                J Offline
                J Offline
                jenya7
                wrote on last edited by
                #81

                @JonB said in A camera problem.:

                @jenya7 said in A camera problem.:

                I put a break point in the MainWindow constructor and Camera constructor and see which hits the first.

                And what was the result?!

                I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.

                At the time your Camera::setCamera() is called, has v_finder = new QCameraViewfinder(this); been executed yet? If not then v_finder in m_camera->setViewfinder(v_finder) will be nullptr....

                m_camera->setViewfinder(v_finder) is executed first

                JonBJ 1 Reply Last reply
                0
                • J jenya7

                  @JonB said in A camera problem.:

                  @jenya7 said in A camera problem.:

                  I put a break point in the MainWindow constructor and Camera constructor and see which hits the first.

                  And what was the result?!

                  I see the Camera object is created before MainWindow::MainWindow(QWidget *parent) constructor.

                  At the time your Camera::setCamera() is called, has v_finder = new QCameraViewfinder(this); been executed yet? If not then v_finder in m_camera->setViewfinder(v_finder) will be nullptr....

                  m_camera->setViewfinder(v_finder) is executed first

                  JonBJ Offline
                  JonBJ Offline
                  JonB
                  wrote on last edited by
                  #82

                  @jenya7
                  Then obviously it is not the right place to put m_camera->setViewfinder(v_finder);.... You cannot execute that line until both m_camera & v_finder have been initialized, so move it somewhere suitable.

                  J 2 Replies Last reply
                  1
                  • JonBJ JonB

                    @jenya7
                    Then obviously it is not the right place to put m_camera->setViewfinder(v_finder);.... You cannot execute that line until both m_camera & v_finder have been initialized, so move it somewhere suitable.

                    J Offline
                    J Offline
                    jenya7
                    wrote on last edited by
                    #83

                    @JonB said in A camera problem.:

                    @jenya7
                    Then obviously it is not the right place to put m_camera->setViewfinder(v_finder);.... You cannot execute that line until both m_camera & v_finder have been initialized, so move it somewhere suitable.

                    I'll try

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mchinand
                      wrote on last edited by
                      #84

                      It seems your code is largely based on the Camera Example; is that correct? Does that example work for you unmodified?

                      J 1 Reply Last reply
                      0
                      • M mchinand

                        It seems your code is largely based on the Camera Example; is that correct? Does that example work for you unmodified?

                        J Offline
                        J Offline
                        jenya7
                        wrote on last edited by
                        #85

                        @mchinand said in A camera problem.:

                        It seems your code is largely based on the Camera Example; is that correct? Does that example work for you unmodified?

                        It's a widget based example. I removed all widget related stuff cause I don't have all these controls for camera operating in my app. I control the camera with commands I type in a terminal.

                        jsulmJ 1 Reply Last reply
                        0
                        • J jenya7

                          @mchinand said in A camera problem.:

                          It seems your code is largely based on the Camera Example; is that correct? Does that example work for you unmodified?

                          It's a widget based example. I removed all widget related stuff cause I don't have all these controls for camera operating in my app. I control the camera with commands I type in a terminal.

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on last edited by
                          #86

                          @jenya7 Come on, the question is whether this example works with your camera or not! Can't you simply try that?

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          J 1 Reply Last reply
                          3
                          • jsulmJ jsulm

                            @jenya7 Come on, the question is whether this example works with your camera or not! Can't you simply try that?

                            J Offline
                            J Offline
                            jenya7
                            wrote on last edited by jenya7
                            #87

                            @jsulm said in A camera problem.:

                            @jenya7 Come on, the question is whether this example works with your camera or not! Can't you simply try that?

                            I'll try tomorrow. I have to get a camera.

                            well...in the original example I press on Capture Photo and it stays inactive forever.

                            J.HilkJ 1 Reply Last reply
                            0
                            • J Offline
                              J Offline
                              jenya7
                              wrote on last edited by jenya7
                              #88

                              How can I pass a default camera instance to use it later?
                              In camera.h

                              class Camera : public QMainWindow
                              {
                                  Q_OBJECT
                              
                                  public:
                                  Camera();
                                  void Camera::setCamera(const QCameraInfo &cameraInfo);
                              
                                  const QCameraInfo* default_camera;   
                              }
                              

                              in camera.cpp in a constructor

                              if (cameraInfo == QCameraInfo::defaultCamera())
                              {
                                     default_camera = new QCameraInfo(cameraInfo );
                                      videoDeviceAction->setChecked(true);
                              }
                              

                              in main.cpp

                              g_camera.SetCamera(g_camera.default_camera );
                              

                              I get
                              error: reference to type 'const QCameraInfo' could not bind to an lvalue of type 'const QCameraInfo *'

                              1 Reply Last reply
                              0
                              • J jenya7

                                @jsulm said in A camera problem.:

                                @jenya7 Come on, the question is whether this example works with your camera or not! Can't you simply try that?

                                I'll try tomorrow. I have to get a camera.

                                well...in the original example I press on Capture Photo and it stays inactive forever.

                                J.HilkJ Offline
                                J.HilkJ Offline
                                J.Hilk
                                Moderators
                                wrote on last edited by
                                #89

                                @jenya7 said in A camera problem.:

                                I'll try tomorrow. I have to get a camera.

                                wait!

                                how do you expect the state to change to a ready for capture == true, when you have no camera connected that could be used ?


                                Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                                Q: What's that?
                                A: It's blue light.
                                Q: What does it do?
                                A: It turns blue.

                                J 1 Reply Last reply
                                0
                                • J.HilkJ J.Hilk

                                  @jenya7 said in A camera problem.:

                                  I'll try tomorrow. I have to get a camera.

                                  wait!

                                  how do you expect the state to change to a ready for capture == true, when you have no camera connected that could be used ?

                                  J Offline
                                  J Offline
                                  jenya7
                                  wrote on last edited by jenya7
                                  #90

                                  @J-Hilk said in A camera problem.:

                                  @jenya7 said in A camera problem.:

                                  I'll try tomorrow. I have to get a camera.

                                  wait!

                                  how do you expect the state to change to a ready for capture == true, when you have no camera connected that could be used ?

                                  It's connected. The constructor detects it - "dev/video0".

                                  I just wonted to try the original example on Windows. my app is running on Linux.

                                  1 Reply Last reply
                                  0
                                  • JonBJ JonB

                                    @jenya7
                                    Then obviously it is not the right place to put m_camera->setViewfinder(v_finder);.... You cannot execute that line until both m_camera & v_finder have been initialized, so move it somewhere suitable.

                                    J Offline
                                    J Offline
                                    jenya7
                                    wrote on last edited by
                                    #91

                                    @JonB said in A camera problem.:

                                    @jenya7
                                    Then obviously it is not the right place to put m_camera->setViewfinder(v_finder);.... You cannot execute that line until both m_camera & v_finder have been initialized, so move it somewhere suitable.

                                    I resolved the issue. Now I get

                                    Ready for capture: true

                                    But on takeImage

                                    QWidget::paintEngine: Should no longer be called
                                    CameraBin warning: "Resource busy or not available."

                                    1 Reply Last reply
                                    0

                                    • Login

                                    • Login or register to search.
                                    • First post
                                      Last post
                                    0
                                    • Categories
                                    • Recent
                                    • Tags
                                    • Popular
                                    • Users
                                    • Groups
                                    • Search
                                    • Get Qt
                                    • Unsolved