Russian Qt Forum

Программирование => Общий => Тема начата: Ubuntu_linux от Ноябрь 29, 2012, 17:40



Название: Поток и stdin
Отправлено: 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  !
Что я не так делаю, подскажите пожалуйста?



Название: Re: Поток и stdin
Отправлено: Ubuntu_linux от Ноябрь 30, 2012, 01:57
Плиз, помогите!


Название: Re: Поток и stdin
Отправлено: kambala от Ноябрь 30, 2012, 02:07
может надо sleep() там втулить?


Название: Re: Поток и stdin
Отправлено: Ubuntu_linux от Ноябрь 30, 2012, 03:29
может надо sleep() там втулить?
Где?

Вроде понял причину - stdin буфер переполняется и данные не пишутся в него. Но как очистить буфер? (stdin)