# Difference between Cvb.SharedImg and Cvb.Image.IMG

**URL:** <https://forum.commonvisionblox.com/t/difference-between-cvb-sharedimg-and-cvb-image-img/207>\
**Category:** C-style API\
**Tags:** csharp, acquisition, linearaccess, ringbuffer, parallel\
**Created:** [September 4, 2017, 11:01am UTC](https://forum.commonvisionblox.com/t/difference-between-cvb-sharedimg-and-cvb-image-img/207 "2017-09-04T11:01:45Z")\
**Posts on this page:** 1\
**Showing post:** 12

<div class="post-metadata">

**Author:** ![parsd](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.commonvisionblox.com/parsd/32/7_2.png) [@parsd](https://forum.commonvisionblox.com/u/parsd)\
**Post date:** [December 6, 2017, 10:42pm UTC](https://forum.commonvisionblox.com/t/difference-between-cvb-sharedimg-and-cvb-image-img/207/12 "2017-12-06T22:42:27Z")

</div>

Hi @andrea.annovi,

### Working with two cameras

You can adapt the C code for opening from here:

[https://forum.commonvisionblox.com/t/old-image-broken-after-setting-new-camport/66/5?u=parsd](https://forum.commonvisionblox.com/t/old-image-broken-after-setting-new-camport/66/5)

Actually you then use the same driver twice, but have two camera objects open with which you can work in parallel. Each object then has its own, independent ring buffer which needs to be configured.

### Ring Buffer Image

You are correct, you need to query that information from the \_driverImage despite the fact that this information is stored with the ring buffer image. This is because the returned ring buffer IMGs are only implementing the `IImageVPA` interface and none of the driver interfaces like `IDeviceControl`. They are just views on the ring buffer memory. In the C api all is centered around that driver `IMG`. Dependent types are very simple objects.

Driver `IMG`s are special. As mentioned above they have all the additional interfaces and the `IImageVPA` interface points to the one synchronized last via `G2Wait`. Therefore you can query that information from it.

From an OOP perspective I agree that this is not intuitive. This is why the [CVB.Net](http://CVB.Net) api has the timestamp property on the `RingBufferImage` (which derives from `StreamImage`).

[https://forum.commonvisionblox.com/t/getting-started-with-cvb-net/246/6?u=parsd](https://forum.commonvisionblox.com/t/getting-started-with-cvb-net/246/6)

---

_[View the full topic](https://forum.commonvisionblox.com/t/difference-between-cvb-sharedimg-and-cvb-image-img/207)._
