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