Многопоточное проигрывание ogg файлов (комментарии)
Это сообщение сгенерировано автоматически.
ЗЫ сильно не пинайте писалось лишь бы работало
и критикуя - предлагайте. ;-)
Было бы клёво полноценно порировать libmodplug:
http://sourceforge.net/projects/modplug-xmms/
Нет желания?
У локов в мармеладе вроде бы есть фатальный недостаток - они нерекурсивные.
Sbtrn. Devil
> У локов в мармеладе вроде бы есть фатальный недостаток - они нерекурсивные.
>
хм. но в документации ничего не сказано.
откуда у вас такая инфа? очень интересно будет почитать и возможно придется переделывать.
под дебагом только мне ворнинги в консоль выводятся что криты уже залочены в этом же потоке - но все работает и дедлоков не наблюдал
Дайте собирающийся сэмпл этой штуки? Что бы там штучки три файла одновременно проигрывались?
Хочу попробовать на блэкберри ( а то там что-то непонятное с потоками у меня получается ) .
Вот такой код работает на симуляторе и андроиде, а на блэкбери - падает
pthread_t myThread; int retVal = pthread_create( &myThread, NULL, TestPThread, NULL );
void* TestPThread( void* args ) { section = s3eThreadLockCreate(); gTestVariable = 100; while ( true ) { s3eThreadLockAcquire( section, -1 ); ++gTestVariable; if ( gTestVariable > 1000000 ) gTestVariable = 0; s3eThreadLockRelease( section ); } gTestVariable = 200; s3eThreadLockDestroy( section ); pthread_exit( NULL ); return NULL; }
int GetTestValue() { int testValue = -1; s3eThreadLockAcquire( section, -1 ); testValue = gTestVariable; s3eThreadLockRelease( section ); return testValue; }
Тут есть какой-то криминал?
andrey.mesheryakov
с первого взгляда вроде нет.
ЗЫ статью буду полностью переписывать - нашел решение проблемы более оригинальное и без потоков.
сейчас пишу модули для wav и ogg
wav проигрывать будет как моно так и стерео 8 и 16 битное
progman
Через колбеки?
progman
Дай приложение тестовое с потоками, что бы я проверил на блэкберри?
progman
> хм. но в документации ничего не сказано.
> откуда у вас такая инфа? очень интересно будет почитать и возможно придется
> переделывать.
Так из документации же.
Remarks:
Calls to s3eThreadLockAcquire must be matched with s3eThreadLockRelease to allow other threads to be able to acquire the lock. Note that recursive locking is not supported. Succesive calls to acquire within the same thread will cause a deadlock.
GLoom
> Через колбеки?
>
да
andrey.mesheryakov
> Дай приложение тестовое с потоками, что бы я проверил на блэкберри?
>
так в SDK есть простой пример с потоками. там возьми.
я щас в глубоком дебаге звукового манагера :-)
Sbtrn. Devil
> progman
> > хм. но в документации ничего не сказано.
> > откуда у вас такая инфа? очень интересно будет почитать и возможно придется
> > переделывать.
> Так из документации же.
> Remarks:
> Calls to s3eThreadLockAcquire must be matched with s3eThreadLockRelease to
> allow other threads to be able to acquire the lock. Note that recursive locking
> is not supported. Succesive calls to acquire within the same thread will cause
> a deadlock.
лол. я как то не обратил внимание на сабж.
но у меня 100% дедлоков не получается. хотя в одном потоке более 1го раза лочится один и тот же крит.
progman, дедлоков-то не будет, но вот анлок раньше времени очень возможен. Т.к. при рекурсивном локе анлокнуть надо столько же раз. сколько локнул. А тут первый же анлок отпустит мутекс.
DeMoney
> progman, дедлоков-то не будет, но вот анлок раньше времени очень возможен. Т.к.
> при рекурсивном локе анлокнуть надо столько же раз. сколько локнул. А тут
> первый же анлок отпустит мутекс.
>
опа. а вот это печалько. не подумал о таком.
хм. спасибо за инфу - очень пригодится.
ЗЫ
хотя казалось бы проще простого пофиксить сабж и сделать полноценные крит секции.
Тема в архиве.