# Camera works in arv-viewer but cannot be read by gst-aravis-launch aravissrc

**URL:** <https://aravis-project.discourse.group/t/camera-works-in-arv-viewer-but-cannot-be-read-by-gst-aravis-launch-aravissrc/439>\
**Category:** Using Aravis\
**Created:** [April 19, 2022, 8:49am UTC](https://aravis-project.discourse.group/t/camera-works-in-arv-viewer-but-cannot-be-read-by-gst-aravis-launch-aravissrc/439 "2022-04-19T08:49:56Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lesterr](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/lesterr/32/154_2.png) [@Lesterr](https://aravis-project.discourse.group/u/Lesterr)\
**Post date:** [April 19, 2022, 8:49am UTC](https://aravis-project.discourse.group/t/camera-works-in-arv-viewer-but-cannot-be-read-by-gst-aravis-launch-aravissrc/439/1 "2022-04-19T08:49:56Z")

</div>

Hi all,

I am really new to Aravis and my goal is to use Aravis to detect my GigE camera and then create /dev/videoX via v4l2loopback as suggested in [Gstreamer pipelines to use GigE cams as webcam for Zoom/Teams/Skype · GitHub](https://gist.github.com/nitheeshkl/5cbf1a0777801a7e9b8e12f8252d465e).

I followed the steps mentioned in the website with my MindVision Camera. I can see the real-time image from the camera by `arv-viewer-0.8` . However, when I tried `gst-launch-1.0 aravissrc ! videoconvert ! xvimagesink` , I got error:

```auto
~/aravis/build$ gst-launch-1.0 aravissrc ! videoconvert ! xvimagesink
Setting pipeline to PAUSED ...

**(gst-launch-1.0:29128): CRITICAL**: 16:37:32.719: arv_camera_uv_set_usb_mode: assertion 'arv_camera_is_uv_device (camera)' failed
Pipeline is live and does not need PREROLL ...
ERROR: from element /GstPipeline:pipeline0/GstAravis:aravis0: Could not read camera "": [AcquisitionFrameRateAbs:ArvGcIntegerNode] Not a ArvGcFloat
Additional debug info:
../gst/gstaravis.c(445): gst_aravis_init_error (): /GstPipeline:pipeline0/GstAravis:aravis0
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

```

I can do the similar thing by using fake camera instead of my camera:

```auto
arv-fake-gv-camera-0.8 # In one terminal

```

```auto
gst-launch-1.0 aravissrc ! videoconvert ! xvimagesink # In another terminal

```

A moving test video is observed from the popup window.

**Lists of devices and some debug messages are listed below.**

Computer: Nvidia Jetson nano (4GB)  
Camera: MindVision-GE500C-051050520768 (GigE camera)

`arv-tool-0.8 features:`

```auto
~/aravis/build$ arv-tool-0.8 features
MindVision-GE500C-051050520768 (10.0.20.78)
Category : 'Root'
    Category : 'DeviceControl'
        StringReg : [RO] 'DeviceModelName'
        StringReg : [RO] 'DeviceFirmwareVersion'
        Float : [RO] 'DeviceTemperature'
    Category : 'AcquisitionControl'
        Enumeration : [RW] 'AcquisitionMode'
            EnumEntry : 'SingleFrame'
            EnumEntry : 'Continuous'
        Command : [WO] 'AcquisitionStart'
        Command : [WO] 'AcquisitionStop'
        Enumeration : [RW] 'AcquisitionFrameRate'
            EnumEntry : 'Super'
            EnumEntry : 'High'
            EnumEntry : 'Mid'
            EnumEntry : 'Low'
        Boolean : [RW] 'AcquisitionFrameRateEnable'
        Integer : [RW] 'AcquisitionFrameRateAbs'
        Integer : [RW] 'AcquisitionFrameSendConfig'
    Category : 'TriggerControl'
        Enumeration : [RW] 'TriggerMode'
            EnumEntry : 'On_GRR'
            EnumEntry : 'On'
            EnumEntry : 'Off'
        Integer : [RW] 'TriggerCount'
        Integer : [RW] 'TriggerInterval'
        Enumeration : [RW] 'TriggerActivation'
            EnumEntry : 'LowLevel'
            EnumEntry : 'HighLevel'
            EnumEntry : 'AnyEdge'
            EnumEntry : 'FallingEdge'
            EnumEntry : 'RisingEdge'
        Integer : [RW] 'ExtTrigJitterTime'
        Integer : [RW] 'TriggerDelay'
        Enumeration : [RW] 'StrobeMode'
            EnumEntry : 'Custom'
            EnumEntry : 'Auto'
        Integer : [RW] 'StrobeDelay'
        Integer : [RW] 'StrobeWidth'
        Command : [WO] 'TriggerSoftware'
    Category : 'ImageFormatControl'
        Enumeration : [RW] 'PixelFormat'
            EnumEntry : 'BayerBG12'
            EnumEntry : 'BayerGB12'
            EnumEntry : 'BayerGR12'
            EnumEntry : 'BayerRG12'
            EnumEntry : 'BayerBG12Packed'
            EnumEntry : 'BayerGB12Packed'
            EnumEntry : 'BayerGR12Packed'
            EnumEntry : 'BayerRG12Packed'
            EnumEntry : 'BayerBG8'
            EnumEntry : 'BayerGB8'
            EnumEntry : 'BayerGR8'
            EnumEntry : 'BayerRG8'
        Boolean : [RW] 'ReverseX'
        Boolean : [RW] 'ReverseY'
        Enumeration : [RW] 'ResolutionPresetSel'
            EnumEntry : 'Custom'
            EnumEntry : 'Resol8'
            EnumEntry : 'Resol7'
            EnumEntry : 'Resol6'
            EnumEntry : 'Resol5'
            EnumEntry : 'Resol4'
            EnumEntry : 'Resol3'
            EnumEntry : 'Resol2'
            EnumEntry : 'Resol1'
        Enumeration : [RW] 'ResolutionMod'
            EnumEntry : 'BINAVR4X'
            EnumEntry : 'BINAVR2X'
            EnumEntry : 'BINSUM4X'
            EnumEntry : 'BINSUM2X'
            EnumEntry : 'Normal'
        Integer : [RW] 'OffsetX'
        Integer : [RW] 'OffsetY'
        Integer : [RW] 'Width'
        Integer : [RW] 'Height'
        Integer : [RO] 'WidthMax'
        Integer : [RO] 'HeightMax'
    Category : 'ExposureControl'
        Enumeration : [RW] 'ExposureAuto'
            EnumEntry : 'Continuous'
            EnumEntry : 'Off'
        Integer : [RW] 'AutoExposureTarget'
        Float : [RW] 'ExposureTime'
        Float : [RO] 'ExposureTimeMin'
    Category : 'AnalogControls'
        Float : [RW] 'Gain'
        Integer : [RW] 'Contrast'
        Integer : [RW] 'Gamma'
    Category : 'ColorControl'
        Boolean : [RW] 'ColorTemperatureAutoSel'
        Enumeration : [RW] 'ColorTemperatureIndex'
            EnumEntry : 'Custom'
            EnumEntry : 'Index3'
            EnumEntry : 'Index2'
            EnumEntry : 'Index1'
        Integer : [RW] 'RGain'
        Integer : [RW] 'GGain'
        Integer : [RW] 'BGain'
        Command : [WO] 'WBOnce'
        Integer : [RW] 'Saturation'
    Category : 'DigitalIOControl'
        Enumeration : [RW] 'In0Mod'
            EnumEntry : 'TriggerInput'
            EnumEntry : 'GPInput'
        Enumeration : [RW] 'Out0Mod'
            EnumEntry : 'PWMOutput'
            EnumEntry : 'StrobeOutput'
            EnumEntry : 'GPOutput'
        Enumeration : [RW] 'Out1Mod'
            EnumEntry : 'PWMOutput'
            EnumEntry : 'GPOutput'
        Integer : [RO] 'GPIn0'
        Integer : [RO] 'GPIn1'
        Integer : [RO] 'GPIn2'
        Integer : [RW] 'GPOut0'
        Integer : [RW] 'GPOut1'
        Integer : [RW] 'GPOut2'
        Integer : [RW] 'GPOut3'
        Integer : [RW] 'PWMOut0Cycle'
        Integer : [RW] 'PWMOut0Duty'
        Integer : [RW] 'PWMOut1Cycle'
        Integer : [RW] 'PWMOut1Duty'
    Category : 'GigeVisionControl'
        Integer : [RO] 'PayloadSize'
        Boolean : [RW] 'GevCurrentIPConfigurationPersistentIP'
        Integer : [RO] 'GevCurrentIPAddress'
        Integer : [RO] 'GevCurrentSubnetMask'
        Integer : [RO] 'GevCurrentDefaultGateway'
        Enumeration : [RO] 'GevIPConfigurationStatus'
            EnumEntry : 'ForceIP'
            EnumEntry : 'LLA'
            EnumEntry : 'DHCP'
            EnumEntry : 'PersistentIP'
            EnumEntry : 'None'
        Integer : [RW] 'GevPersistentIPAddress'
        Integer : [RW] 'GevPersistentSubnetMask'
        Integer : [RW] 'GevPersistentDefaultGateway'
        Integer : [RO] 'GevLinkSpeed'
        Integer : [RW] 'GevHeartbeatTimeout'
        Boolean : [RW] 'GevGVCPHeartbeatDisable'
        Enumeration : [RW] 'GevCCP'
            EnumEntry : 'ControlAccessSwitchoverActive'
            EnumEntry : 'ControlAccess'
            EnumEntry : 'ExclusiveAccess'
            EnumEntry : 'OpenAccess'
        Integer : [RW] 'GevPrimaryApplicationSocket'
        Integer : [RW] 'GevPrimaryApplicationIPAddress'
        Integer : [RW] 'GevSCPHostPort'
        Integer : [RW] 'GevSCPSPacketSize'
        Integer : [RW] 'GevSCPD'
        Integer : [RW] 'GevSCDA'
        Integer : [RW] 'GevSCSP'
    Category : 'UserSetControl'
        Enumeration : [RW] 'UserSetSelector'
              * UserSetLoad
              * UserSetSave
            EnumEntry : 'UserSet2'
            EnumEntry : 'UserSet1'
            EnumEntry : 'Default'
        Command : [WO] 'UserSetLoad'
        Command : 'UserSetSave' (Not available)
        Enumeration : [RW] 'UserSetDefaultSelector'
            EnumEntry : 'UserSet2'
            EnumEntry : 'UserSet1'
            EnumEntry : 'Default'
    Category : 'SensorCorrection'
        Integer : [RW] 'CcdTap1GainStep'
        Integer : [RW] 'CcdTap2GainStep'
        Integer : [RW] 'CcdTap3GainStep'
        Integer : [RW] 'CcdTap4GainStep'
        Command : [WO] 'SensorCorrectionDataSave'

```

`ARV_DEBUG=all ./gst/gst-aravis-launch aravissrc ! videoconvert ! ximagesink:`

```auto
~/aravis/build$ ARV_DEBUG=all ./gst/gst-aravis-launch aravissrc ! videoconvert ! ximagesink
Setting pipeline to PAUSED ...
[16:14:50.465] 🅸 interface> Found 0 USB3Vision device (among 5 USB devices)
[16:14:50.465] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
[16:14:50.466] 🅸 interface> [GvDiscoverSocket::new] Add interface 10.0.20.149 (10.0.21.255)
[16:14:50.467] 🅸 interface> [GvInterface::discovery] Device 'MindVision-GE500C-051050520768' found (interface 10.0.20.149) user_id '' - MAC 'dc:a5:01:6a:04:45'
[16:14:50.467] 🅸 device> [GvDevice::new] Interface address = 10.0.20.149
[16:14:50.467] 🅸 device> [GvDevice::new] Device address = 10.0.20.78
[16:14:50.468] 🅸 device> [GvDevice::load_genicam] xml url = 'Local:GE_C_V1_2_180428.zip;10424000;1d62' at 0x200
[16:14:50.468] 🅸 device> [GvDevice::load_genicam] Xml address = 0x10424000 - size = 0x1d62 - GE_C_V1_2_180428.zip
[16:14:50.477] 🅸 device> [GvDevice::load_genicam] Zipped xml data
[16:14:50.516] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceVendorName'
[16:14:50.517] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceVersion'
[16:14:50.517] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceManufacturerInfo'
[16:14:50.517] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceID'
[16:14:50.517] 🅸 genicam> [Gc::set_default_node_data] Add 'GevStreamChannelCount'
[16:14:50.518] 🅸 genicam> [Gc::set_default_node_data] Add 'GevTimestampTickFrequency'
[16:14:50.519] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPSDoNotFragment'
[16:14:50.519] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPSBigEndian'
[16:14:50.519] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPAddrCalc'
[16:14:50.520] 🅸 genicam> [Gc::set_default_node_data] Add 'TLParamsLocked'
[16:14:50.559] 🅸 device> [GvDevice::new] Device endianness = big
[16:14:50.559] 🅸 device> [GvDevice::new] Packet resend = yes
[16:14:50.560] 🅸 device> [GvDevice::new] Write memory = yes
[16:14:50.560] 🅸 device> [GvDevice::new] Legacy endianness handling = yes

**(gst-launch-1.0:29434): CRITICAL**: 16:14:50.561: arv_camera_uv_set_usb_mode: assertion 'arv_camera_is_uv_device (camera)' failed
Pipeline is live and does not need PREROLL ...
ERROR: from element /GstPipeline:pipeline0/GstAravis:aravis0: Could not read camera "": [AcquisitionFrameRateAbs:ArvGcIntegerNode] Not a ArvGcFloat
Additional debug info:
../gst/gstaravis.c(445): gst_aravis_init_error (): /GstPipeline:pipeline0/GstAravis:aravis0
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

```

Thank you for your time!

Best,  
Lester

---

<div class="post-metadata">

**Author:** ![Emmanuel](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/emmanuel/32/198_2.png) [@Emmanuel](https://aravis-project.discourse.group/u/Emmanuel)\
**Post date:** [April 22, 2022, 3:16pm UTC](https://aravis-project.discourse.group/t/camera-works-in-arv-viewer-but-cannot-be-read-by-gst-aravis-launch-aravissrc/439/2 "2022-04-22T15:16:18Z")

</div>

Hi,

> [@Lesterr](#):
>
> ```auto
> Enumeration : [RW] 'AcquisitionFrameRate'
> EnumEntry : 'Super'
> EnumEntry : 'High'
> EnumEntry : 'Mid'
> EnumEntry : 'Low'
> 
> ```
> 
> ```auto
> ERROR: from element /GstPipeline:pipeline0/GstAravis:aravis0: Could not read camera "": [AcquisitionFrameRateAbs:ArvGcIntegerNode] Not a ArvGcFloat
> 
> ```

That is the source of your issue. Your camera has its own funky way to handle frame rate. How are we supposed to know which frame rate corresponds to `Super` ?

There is already a kludge implemented in arvcamera.c for some TheImagingSource cameras, that also use an enumeration for this feature. At least in this case the enumeration labels are explicit.

Please open an issue on github. Patch welcome !

Cheers,

```
Emmanuel.

```

---

<div class="post-metadata">

**Author:** ![Lesterr](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/lesterr/32/154_2.png) [@Lesterr](https://aravis-project.discourse.group/u/Lesterr)\
**Post date:** [April 25, 2022, 1:44am UTC](https://aravis-project.discourse.group/t/camera-works-in-arv-viewer-but-cannot-be-read-by-gst-aravis-launch-aravissrc/439/3 "2022-04-25T01:44:02Z")

</div>

Thank you @Emmanuel ,

I saw a post [Imperx Bobcat 6620C Support · Issue #439 · AravisProject/aravis · GitHub](https://github.com/AravisProject/aravis/issues/439) using a camera without `AcquisitionFrameRateAbs` and `AcquisitionFrameRate`. They can modify the `arvcamera.c` file and set the frame rate themselves. Is it workable in my case?

I had tried a similar thing, and the modifications are listed below:  
**1**. Add `ARV_CAMERA_VENDOR_MV` under typedef enum { …} ArvCameraVendor;  
**2**. Add `ARV_CAMERA_SERIES_MV` under typedef enum { …} ArvCameraSeries;  
**3**. Under

```auto
void
arv_camera_set_frame_rate (ArvCamera *camera, double frame_rate, GError **error)

```

, add

```auto
case ARV_CAMERA_VENDOR_MV:
                        if (local_error == NULL)
/* arv_camera_set_string (camera, "TriggerMode", "Off", &local_error);
*/
                                arv_camera_set_boolean (camera, "AcquisitionFrameRateEnable", TRUE, &local_error);
                        if (local_error == NULL)
                                arv_camera_set_integer (camera, "AcquisitionFrameRateAbs", frame_rate, &local_error);
                        break;

```

**4**. Under

```auto
double
arv_camera_get_frame_rate (ArvCamera *camera, GError **error)

```

, add

```auto
case ARV_CAMERA_VENDOR_MV:
                        return arv_camera_get_integer (camera, "AcquisitionFrameRate", error);

```

**5**. Under

```auto
void
arv_camera_get_frame_rate_bounds (ArvCamera *camera, double *min, double *max, GError **error)

```

, add

```auto
case ARV_CAMERA_VENDOR_MV:
                        arv_camera_get_integer_bounds (camera, "AcquisitionFrameRateAbs", min, max, error);
                        break;

```

**6**. Under

```auto
gboolean
arv_camera_is_frame_rate_available (ArvCamera *camera, GError **error)

```

, add

```auto
case ARV_CAMERA_VENDOR_MV:
                        return arv_camera_is_feature_available (camera, "AcquisitionFrameRateAbs", error);

```

**7**. Under

```auto
static void
arv_camera_constructed (GObject *object)

```

, add

```auto
else if (g_strcmp0 (vendor_name, "MindVision") == 0) {
                vendor = ARV_CAMERA_VENDOR_MV;
                series = ARV_CAMERA_SERIES_MV;
}

```

Warning exist when I type `ninja` after modifying the file.

```auto
[1/34] Compiling C object src/libaravis-0.8.so.0.8.22.p/arvcamera.c.o
../src/arvcamera.c: In function ‘arv_camera_get_frame_rate_bounds’:
../src/arvcamera.c:1233:70: warning: passing argument 3 of ‘arv_camera_get_integer_bounds’ from incompatible pointer type [-Wincompatible-pointer-types]
    arv_camera_get_integer_bounds (camera, "AcquisitionFrameRateAbs", min, max, error);
                                                                      ^~~
In file included from ../src/arvcamera.c:34:0:
../src/arvcamera.h:165:15: note: expected ‘gint64 * {aka long int *}’ but argument is of type ‘double *’
 ARV_API void arv_camera_get_integer_bounds (ArvCamera *camera, const char *feature, gint64 *min, gint64 *max, GError **error);
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~../src/arvcamera.c:1233:75: warning: passing argument 4 of ‘arv_camera_get_integer_bounds’ from incompatible pointer type [-Wincompatible-pointer-types]
    arv_camera_get_integer_bounds (camera, "AcquisitionFrameRateAbs", min, max, error);
                                                                           ^~~
In file included from ../src/arvcamera.c:34:0:
../src/arvcamera.h:165:15: note: expected ‘gint64 * {aka long int *}’ but argument is of type ‘double *’
 ARV_API void arv_camera_get_integer_bounds (ArvCamera *camera, const char *feature, gint64 *min, gint64 *max, GError **error);
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

```

The output of `ARV_DEBUG=all ./gst/gst-aravis-launch aravissrc ! videoconvert ! xvimagesink ` is :

```auto
~/aravis_int_float_2/build$ ARV_DEBUG=all ./gst/gst-aravis-launch aravissrc ! videoconvert ! xvimagesink
Setting pipeline to PAUSED ...
[09:34:21.046] 🅸 interface> Found 0 USB3Vision device (among 5 USB devices)
[09:34:21.047] 🅸 interface> [GvDiscoverSocket::new] Add interface 127.0.0.1 (127.0.0.1)
[09:34:21.047] 🅸 interface> [GvDiscoverSocket::new] Add interface 10.0.20.149 (10.0.21.255)
[09:34:21.048] 🅸 interface> [GvInterface::discovery] Device 'MindVision-GE500C-051050520768' found (interface 10.0.20.149) user_id '' - MAC 'dc:a5:01:6a:04:45'
[09:34:21.048] 🅸 device> [GvDevice::new] Interface address = 10.0.20.149
[09:34:21.048] 🅸 device> [GvDevice::new] Device address = 10.0.20.78
[09:34:21.049] 🅸 device> [GvDevice::load_genicam] xml url = 'Local:GE_C_V1_2_180428.zip;10424000;1d62' at 0x200
[09:34:21.050] 🅸 device> [GvDevice::load_genicam] Xml address = 0x10424000 - size = 0x1d62 - GE_C_V1_2_180428.zip
[09:34:21.059] 🅸 device> [GvDevice::load_genicam] Zipped xml data
[09:34:21.085] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceVendorName'
[09:34:21.085] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceVersion'
[09:34:21.085] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceManufacturerInfo'
[09:34:21.085] 🅸 genicam> [Gc::set_default_node_data] Add 'DeviceID'
[09:34:21.085] 🅸 genicam> [Gc::set_default_node_data] Add 'GevStreamChannelCount'
[09:34:21.086] 🅸 genicam> [Gc::set_default_node_data] Add 'GevTimestampTickFrequency'
[09:34:21.086] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPSDoNotFragment'
[09:34:21.086] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPSBigEndian'
[09:34:21.087] 🅸 genicam> [Gc::set_default_node_data] Add 'GevSCPAddrCalc'
[09:34:21.087] 🅸 genicam> [Gc::set_default_node_data] Add 'TLParamsLocked'
[09:34:21.132] 🅸 device> [GvDevice::new] Device endianness = big
[09:34:21.132] 🅸 device> [GvDevice::new] Packet resend = yes
[09:34:21.132] 🅸 device> [GvDevice::new] Write memory = yes
[09:34:21.132] 🅸 device> [GvDevice::new] Legacy endianness handling = yes

**(gst-launch-1.0:23598): CRITICAL**: 09:34:21.133: arv_camera_uv_set_usb_mode: assertion 'arv_camera_is_uv_device (camera)' failed

(gst-launch-1.0:23598): GStreamer-CRITICAL **: 09:34:21.134: range start is not smaller than end for `GstFractionRange'

(gst-launch-1.0:23598): GStreamer-CRITICAL **: 09:34:21.134: range start is not smaller than end for `GstFractionRange'

(gst-launch-1.0:23598): GStreamer-CRITICAL **: 09:34:21.134: range start is not smaller than end for `GstFractionRange'

(gst-launch-1.0:23598): GStreamer-CRITICAL **: 09:34:21.134: range start is not smaller than end for `GstFractionRange'
[09:34:21.134] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x010c002b not found
[09:34:21.134] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x010c002a not found
[09:34:21.134] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x010c002c not found
[09:34:21.135] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x010c002d not found
[09:34:21.135] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x01100011 not found
[09:34:21.135] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x01100010 not found
[09:34:21.135] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x01100012 not found
[09:34:21.135] 🆆 misc> [PixelFormat::to_gst_caps_string] 0x01100013 not found
Pipeline is live and does not need PREROLL ...
ERROR: from element /GstPipeline:pipeline0/GstAravis:aravis0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstAravis:aravis0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

```

I tried to set the `AcquisitionFrameRateAbs` as 30 by

```auto
~/aravis_int_float_2/build$ arv-tool-0.8 control AcquisitionFrameRateAbs=30
MindVision-GE500C-051050520768 (10.0.20.78)
AcquisitionFrameRateAbs = 30 min:0 max:65535

```

However it still does not work. Is it possible to ignore the strange ‘Super’ ‘High’ … `AcquisitionFrameRate` by modifying the `arvcamera.c ` as I did above?

Again, thank you very much for your help!

Best,  
Lester

---

<div class="post-metadata">

**Author:** ![Emmanuel](https://yyz2.discourse-cdn.com/free1/user_avatar/aravis-project.discourse.group/emmanuel/32/198_2.png) [@Emmanuel](https://aravis-project.discourse.group/u/Emmanuel)\
**Post date:** [April 25, 2022, 6:49am UTC](https://aravis-project.discourse.group/t/camera-works-in-arv-viewer-but-cannot-be-read-by-gst-aravis-launch-aravissrc/439/4 "2022-04-25T06:49:40Z")

</div>

On your camera, `AcquisitionFrameRate` is not a number, but an enumeration.

So what you need to implements in ArvCamera.c is a code that takes a frame rate as a float value (the frame\_rate parameter of arv\_camera\_set\_frame\_rate) and convert it to either `Super`, `High`, `Mid` or `Low`, then call `arv_camera_set_string(camera, "AcquisitionFrameRate", ...)` with it.

And obviously you need the reverse operation in `arv_camera_get_frame_rate`.
