Marmalade SDKФорум

Многопоточное проигрывание ogg файлов (комментарии)

#0
16:20, 20 июня 2012

Многопоточное проигрывание ogg файлов (комментарии)

Это сообщение сгенерировано автоматически.

#1
16:20, 20 июня 2012

ЗЫ сильно не пинайте писалось лишь бы работало
и критикуя - предлагайте. ;-)

#2
18:38, 21 июня 2012

Было бы клёво полноценно порировать libmodplug:
http://sourceforge.net/projects/modplug-xmms/

Нет желания?

#3
12:58, 24 июня 2012

У локов в мармеладе вроде бы есть фатальный недостаток - они нерекурсивные.

#4
21:07, 24 июня 2012

Sbtrn. Devil
> У локов в мармеладе вроде бы есть фатальный недостаток - они нерекурсивные.
>
хм. но в документации ничего не сказано.
откуда у вас такая инфа? очень интересно будет почитать и возможно придется переделывать.

под дебагом только мне ворнинги в консоль выводятся что криты уже залочены в этом же потоке - но все работает и дедлоков не наблюдал

#5
19:23, 25 июня 2012

Дайте собирающийся сэмпл этой штуки? Что бы там штучки три файла одновременно проигрывались?
Хочу попробовать на блэкберри ( а то там что-то непонятное с потоками у меня получается ) .
Вот такой код работает на симуляторе и андроиде, а на блэкбери - падает

 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;
}

Тут есть какой-то криминал?

#6
20:51, 25 июня 2012

andrey.mesheryakov
с первого взгляда вроде нет.

ЗЫ статью буду полностью переписывать - нашел решение проблемы более оригинальное и без потоков.
сейчас пишу модули для wav и ogg
wav проигрывать будет как моно так и стерео 8 и 16 битное

#7
21:05, 25 июня 2012

progman
Через колбеки?

#8
22:44, 25 июня 2012

progman
Дай приложение тестовое с потоками, что бы я проверил на блэкберри?

#9
22:55, 25 июня 2012

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.

#10
10:54, 26 июня 2012

GLoom
> Через колбеки?
>
да

andrey.mesheryakov
> Дай приложение тестовое с потоками, что бы я проверил на блэкберри?
>
так в SDK есть простой пример с потоками. там возьми.
я щас в глубоком дебаге звукового манагера :-)

#11
10:56, 26 июня 2012

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го раза лочится один и тот же крит.

#12
11:36, 26 июня 2012

progman, дедлоков-то не будет, но вот анлок раньше времени очень возможен. Т.к. при рекурсивном локе анлокнуть надо столько же раз. сколько локнул. А тут первый же анлок отпустит мутекс.

#13
13:50, 26 июня 2012

DeMoney
> progman, дедлоков-то не будет, но вот анлок раньше времени очень возможен. Т.к.
> при рекурсивном локе анлокнуть надо столько же раз. сколько локнул. А тут
> первый же анлок отпустит мутекс.
>
опа. а вот это печалько. не подумал о таком.
хм. спасибо за инфу - очень пригодится.

ЗЫ
хотя казалось бы проще простого пофиксить сабж и сделать полноценные крит секции.

Marmalade SDKФорум

Тема в архиве.