Russian Qt Forum
Ноябрь 23, 2024, 02:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Поток и stdin  (Прочитано 2793 раз)
Ubuntu_linux
Гость
« : Ноябрь 29, 2012, 17:40 »

Здравствуйте, не могу корректно читать данные с stdin под виндой!
Я пробрасую потоки так:
 ffmpeg -i c:/users/alex/videos/test.avi -vcodec rawvideo -f rawvideo - | myApp.exe  -i -

код myApp.exe (VS):

Код
C
size_t bytes_read = fread(m_pVideoFrame, 1, m_nVideoFrameSize, stdin);
printf("m_nVideoFrameSize = %d\n",(size_t)m_nVideoFrameSize);
   printf("ReadNextFrame() bytes_read = %d\n",bytes_read);
 
       if (bytes_read != m_nVideoFrameSize)
       {
          printf("ReadNextFrame() bytes_read = %d mismatches with VideoFrameSize = %d\n", bytes_read, m_nVideoFrameSize);
           return -1;
       }

В принципе прога читает где-то 20 кадров с входящего потока, но потом количество прочитанных данных =0  !
Что я не так делаю, подскажите пожалуйста?

« Последнее редактирование: Ноябрь 29, 2012, 17:46 от Ubuntu_linux » Записан
Ubuntu_linux
Гость
« Ответ #1 : Ноябрь 30, 2012, 01:57 »

Плиз, помогите!
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Ноябрь 30, 2012, 02:07 »

может надо sleep() там втулить?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Ubuntu_linux
Гость
« Ответ #3 : Ноябрь 30, 2012, 03:29 »

может надо sleep() там втулить?
Где?

Вроде понял причину - stdin буфер переполняется и данные не пишутся в него. Но как очистить буфер? (stdin)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.294 секунд. Запросов: 22.