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