Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. A camera problem.
Forum Updated to NodeBB v4.3 + New Features

A camera problem.

Scheduled Pinned Locked Moved Unsolved General and Desktop
91 Posts 7 Posters 18.9k 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.
  • JonBJ JonB

    @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

    camera = new QCamera;
    
    viewfinder = new QCameraViewfinder();
    viewfinder->show();
    
    camera->setViewfinder(viewfinder);
    
    imageCapture = new QCameraImageCapture(camera);
    
    camera->setCaptureMode(QCamera::CaptureStillImage);
    camera->start();
    

    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....

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

    @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 JonBJ 2 Replies 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?

      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 Online
                                  J.HilkJ Online
                                  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 Extensions
                                      • Unsolved