170 похожих чатов

Не совсем вопрос по с/с++, но общий вопрос по мультитредингу

и асинхронному сообщению.

Конкретно, я работаю с камерами интел рилсенс, когда работаю с одной, то за 10 секунд "сна" процесс собирает в буффер около 300 фреймов, как и обещано около 30 fps.

естественно создается некоторый pipe, делается pipe.start(callback), pipe.stop, и колбеки вызываются асинхронно.

теперь СДК позволяет запустить pipe2.start(callback2) и по такой же схеме стоп и тд, с колбеком в другой буффер (так я написла колбек).

При запуске двух одновременно я не получаю 30 fps на каждый, а иногда 30 на оба, то есть около 300 фреймов в сумме в обоих буферах, иногда там 200 и 250, 100 и 250, пару раз было что один 300, а другой 2 или 10 или 40.

Процессор Intel(R) Core(TM) i3-4000M CPU @ 2.40GHz 2.39 GHz.


коротко код (можно читать примерно словами, детали не суть важно, там все через api, никакого моего мультитрединга или ассинхрона):
rs2::context ctx;

std::vector<rs2::pipeline> pipelines;

std::vector<std::string> serials;

rs2::pipeline pipe;
rs2::config cfg;
cfg.enable_device(serials[0]);
rs2::pipeline_profile profiles = pipe.start(cfg, callback);
pipelines.emplace_back(pipe);

rs2::pipeline pipe2(ctx);
rs2::pipeline_profile profiles2;
if(serials.size() > 1) {
rs2::config cfg2;
cfg2.enable_device(serials[1]);
profiles2 = pipe2.start(cfg2, callback2);
pipelines.emplace_back(pipe2);
}

sleep_for(nanoseconds(10000000000));

pipe.stop();
if(serials.size() > 1)
pipe2.stop();

Ничего сверхъестественного, старты, слип, стопы. (рилсенс дает контекст который менеджит обеими пайпами которые запускают колбеки ассинхроно).


Из того, насколько я понимаю, следует что либо они криво имплементировали ассинк общение когда больше одного девайса (то есть их context так себе) либо мой комп не тянет реальную эффективность в 60 fps ?

ну либо я криво использую их api, но вроде и колбеки и мульти-камеры на их примерах буквально написаны.

1 ответов

17 просмотров

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта