summaryrefslogtreecommitdiff
path: root/recordmydesktop/src/encode_sound_buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'recordmydesktop/src/encode_sound_buffer.c')
-rw-r--r--recordmydesktop/src/encode_sound_buffer.c66
1 files changed, 33 insertions, 33 deletions
diff --git a/recordmydesktop/src/encode_sound_buffer.c b/recordmydesktop/src/encode_sound_buffer.c
index 73f6d48..aeea402 100644
--- a/recordmydesktop/src/encode_sound_buffer.c
+++ b/recordmydesktop/src/encode_sound_buffer.c
@@ -27,12 +27,12 @@
#include <recordmydesktop.h>
-void *EncodeSoundBuffer(void *pdata){
+void *EncodeSoundBuffer(ProgData *pdata){
- int sampread=((ProgData *)pdata)->periodsize/(2*((ProgData *)pdata)->args.channels);
+ int sampread=pdata->periodsize/(2*pdata->args.channels);
pthread_mutex_t smut;
pthread_mutex_init(&smut,NULL);
- while((((ProgData *)pdata)->running)){
+ while((pdata->running)){
float **vorbis_buffer;
int count=0,i,j;
SndBuffer *buff;
@@ -40,51 +40,51 @@ void *EncodeSoundBuffer(void *pdata){
if(Paused){
pthread_mutex_t tmut;
pthread_mutex_init(&tmut,NULL);
- pthread_cond_wait(&((ProgData *)pdata)->pause_cond,&tmut);
+ pthread_cond_wait(&pdata->pause_cond,&tmut);
}
- if(((ProgData *)pdata)->sound_buffer==NULL)
- pthread_cond_wait(&((ProgData *)pdata)->sound_data_read,&smut);
+ if(pdata->sound_buffer==NULL)
+ pthread_cond_wait(&pdata->sound_data_read,&smut);
- pthread_mutex_lock(&((ProgData *)pdata)->sound_buffer_mutex);
- buff=((ProgData *)pdata)->sound_buffer;
+ pthread_mutex_lock(&pdata->sound_buffer_mutex);
+ buff=pdata->sound_buffer;
//advance the list
- ((ProgData *)pdata)->sound_buffer=((ProgData *)pdata)->sound_buffer->next;
- pthread_mutex_unlock(&((ProgData *)pdata)->sound_buffer_mutex);
-
- vorbis_buffer=vorbis_analysis_buffer(&((ProgData *)pdata)->enc_data->m_vo_dsp,sampread);
+ pdata->sound_buffer=pdata->sound_buffer->next;
+ pthread_mutex_unlock(&pdata->sound_buffer_mutex);
+
+ vorbis_buffer=vorbis_analysis_buffer(&pdata->enc_data->m_vo_dsp,sampread);
for(i=0;i<sampread;i++){
- for(j=0;j<((ProgData *)pdata)->args.channels;j++){
+ for(j=0;j<pdata->args.channels;j++){
vorbis_buffer[j][i]=((buff->data[count+1]<<8)|
(0x00ff&(int)buff->data[count]))/32768.f;
count+=2;
}
}
- vorbis_analysis_wrote(&((ProgData *)pdata)->enc_data->m_vo_dsp,sampread);
-
- while(vorbis_analysis_blockout(&((ProgData *)pdata)->enc_data->m_vo_dsp,&((ProgData *)pdata)->enc_data->m_vo_block)==1){
-
- vorbis_analysis(&((ProgData *)pdata)->enc_data->m_vo_block,NULL);
- vorbis_bitrate_addblock(&((ProgData *)pdata)->enc_data->m_vo_block);
-
- while(vorbis_bitrate_flushpacket(&((ProgData *)pdata)->enc_data->m_vo_dsp,&((ProgData *)pdata)->enc_data->m_ogg_pckt2)){
- pthread_mutex_lock(&((ProgData *)pdata)->libogg_mutex);
- ogg_stream_packetin(&((ProgData *)pdata)->enc_data->m_ogg_vs,&((ProgData *)pdata)->enc_data->m_ogg_pckt2);
- pthread_mutex_unlock(&((ProgData *)pdata)->libogg_mutex);
+ vorbis_analysis_wrote(&pdata->enc_data->m_vo_dsp,sampread);
+
+ while(vorbis_analysis_blockout(&pdata->enc_data->m_vo_dsp,&pdata->enc_data->m_vo_block)==1){
+
+ vorbis_analysis(&pdata->enc_data->m_vo_block,NULL);
+ vorbis_bitrate_addblock(&pdata->enc_data->m_vo_block);
+
+ while(vorbis_bitrate_flushpacket(&pdata->enc_data->m_vo_dsp,&pdata->enc_data->m_ogg_pckt2)){
+ pthread_mutex_lock(&pdata->libogg_mutex);
+ ogg_stream_packetin(&pdata->enc_data->m_ogg_vs,&pdata->enc_data->m_ogg_pckt2);
+ pthread_mutex_unlock(&pdata->libogg_mutex);
}
}
- ((ProgData *)pdata)->avd-=((ProgData *)pdata)->periodtime;
+ pdata->avd-=pdata->periodtime;
free(buff->data);
free(buff);
}
- vorbis_analysis_wrote(&((ProgData *)pdata)->enc_data->m_vo_dsp,0);
-// while(vorbis_analysis_blockout(&((ProgData *)pdata)->enc_data->m_vo_dsp,&((ProgData *)pdata)->enc_data->m_vo_block)==1){
-// vorbis_analysis(&((ProgData *)pdata)->enc_data->m_vo_block,NULL);
-// vorbis_bitrate_addblock(&((ProgData *)pdata)->enc_data->m_vo_block);
-// while(vorbis_bitrate_flushpacket(&((ProgData *)pdata)->enc_data->m_vo_dsp,&((ProgData *)pdata)->enc_data->m_ogg_pckt2))
-// ogg_stream_packetin(&((ProgData *)pdata)->enc_data->m_ogg_vs,&((ProgData *)pdata)->enc_data->m_ogg_pckt2);
+ vorbis_analysis_wrote(&pdata->enc_data->m_vo_dsp,0);
+// while(vorbis_analysis_blockout(&pdata->enc_data->m_vo_dsp,&pdata->enc_data->m_vo_block)==1){
+// vorbis_analysis(&pdata->enc_data->m_vo_block,NULL);
+// vorbis_bitrate_addblock(&pdata->enc_data->m_vo_block);
+// while(vorbis_bitrate_flushpacket(&pdata->enc_data->m_vo_dsp,&pdata->enc_data->m_ogg_pckt2))
+// ogg_stream_packetin(&pdata->enc_data->m_ogg_vs,&pdata->enc_data->m_ogg_pckt2);
// }
pthread_exit(&errno);
@@ -106,10 +106,10 @@ void SyncEncodeSoundBuffer(ProgData *pdata,signed char *buff){
vorbis_analysis_wrote(&pdata->enc_data->m_vo_dsp,sampread);
while(vorbis_analysis_blockout(&pdata->enc_data->m_vo_dsp,&pdata->enc_data->m_vo_block)==1){
-
+
vorbis_analysis(&pdata->enc_data->m_vo_block,NULL);
vorbis_bitrate_addblock(&pdata->enc_data->m_vo_block);
-
+
while(vorbis_bitrate_flushpacket(&pdata->enc_data->m_vo_dsp,&pdata->enc_data->m_ogg_pckt2)){
pthread_mutex_lock(&pdata->libogg_mutex);
ogg_stream_packetin(&pdata->enc_data->m_ogg_vs,&pdata->enc_data->m_ogg_pckt2);
© All Rights Reserved