Программное потоковое чтение файла OggVorbis

Список разделов Ogg Vorbis Тех-поддержка

Описание: Инструменты, кодеки, сопроводительная информация, алгоритмы, программирование.

Сообщение #1 Osiris » 20.06.2008, 11:44

Возможно вопрос немного не в общую тематику форума, но пока нигде не нашел ответа. Может здесь найдется человек знающий.

Мне необходимо программно прочитать потоково ogg файл, а затем начать проигрывание с начала. Само потокове чтение реализовал так (С++) :

Код: Выделить всё
   PCM = new char[Size];

   // читаем
   while( TotalRet < (long)Size )
   {
      ret = ov_read( &m_OggFile, PCM + TotalRet, (long)Size - TotalRet, 0, 2, 1, &current_section);

      // если конец файла или лимит чтения
      if( ret <= 0 )
         break;

      TotalRet += ret;
   }

   if( TotalRet > 0 )
   {
      alBufferData( BufID, m_iSoundFormat, (void*)PCM, TotalRet, m_iSoundRate );

      ALenum Error = 0;

      if( ( Error = alGetError() ) != AL_NO_ERROR )
      {
         CDX9E3Dlogfile::Get().Report( CDX9E3Dlogfile::ERROR_, "%s%s%s",
            "Error : COALOggSoundData::ReadBlock : alBufferData : ",
            alGetString(Error), "\n" );

         SAFE_DELETE_ARRAY( PCM );
         return false;
      }
   }

   SAFE_DELETE_ARRAY( PCM );

   if( ret <= 0 )
      ov_pcm_seek( &m_OggFile, 0 );

Файл отлично читается по кусочкам, но когда доходим до конца и при помощи ov_pcm_seek перегоняем (вроде перегоняем) в начало - повтороного чтения не происходит.
Osiris
Заинтересованый
С нами: 8 лет 10 месяцев

Название раздела: Тех-поддержка
Описание: Инструменты, кодеки, сопроводительная информация, алгоритмы, программирование.

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения
:hi: :smile: :wink: :twisted: :sad: :evil: :smoke: :eh: :eek: :fie: :silenced: :razz: :oops: :help: :spy: :insane: :biggrin: :toothless: :ill: :nervious: :weirdface: :pray: :clap: :think: :boxing: :cyclop: :rambo: :zombie: :cry: Ещё смайлики…

   

Вернуться в Тех-поддержка

Интересные статьи