summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--recordmydesktop/src/rmd_cache_audio.c2
-rw-r--r--recordmydesktop/src/rmd_encode_sound_buffer.c2
-rw-r--r--recordmydesktop/src/rmd_get_frame.c4
-rw-r--r--recordmydesktop/src/rmd_init_encoder.c183
-rw-r--r--recordmydesktop/src/rmd_initialize_data.c6
-rw-r--r--recordmydesktop/src/rmd_types.h63
6 files changed, 131 insertions, 129 deletions
diff --git a/recordmydesktop/src/rmd_cache_audio.c b/recordmydesktop/src/rmd_cache_audio.c
index 042c734..71c9611 100644
--- a/recordmydesktop/src/rmd_cache_audio.c
+++ b/recordmydesktop/src/rmd_cache_audio.c
@@ -102,7 +102,7 @@ void *rmdCacheSoundBuffer(ProgData *pdata) {
}
#endif
}
- pdata->avd-=pdata->periodtime;
+ pdata->avd -= pdata->periodtime;
}
fclose(pdata->cache_data->afp);
diff --git a/recordmydesktop/src/rmd_encode_sound_buffer.c b/recordmydesktop/src/rmd_encode_sound_buffer.c
index c68eae0..3ea85f2 100644
--- a/recordmydesktop/src/rmd_encode_sound_buffer.c
+++ b/recordmydesktop/src/rmd_encode_sound_buffer.c
@@ -127,7 +127,7 @@ void *rmdEncodeSoundBuffer(ProgData *pdata) {
}
pthread_mutex_unlock(&pdata->libogg_mutex);
- pdata->avd-=pdata->periodtime;
+ pdata->avd -= pdata->periodtime;
}
pdata->v_encoding_clean=1;
diff --git a/recordmydesktop/src/rmd_get_frame.c b/recordmydesktop/src/rmd_get_frame.c
index be199c0..aae7d09 100644
--- a/recordmydesktop/src/rmd_get_frame.c
+++ b/recordmydesktop/src/rmd_get_frame.c
@@ -249,7 +249,7 @@ static void rmdMoveCaptureArea( BRWindow *brwin,
*
* \param x_offset left x of the recording area
*
-* \param x_offset upper y of the recording area
+* \param y_offset upper y of the recording area
*
* \param blocknum_x Width of image in blocks
*
@@ -527,7 +527,7 @@ void *rmdGetFrame(ProgData *pdata) {
if (pdata->args.xfixes_cursor || pdata->args.have_dummy_cursor) {
int mouse_xoffset, mouse_yoffset;
//avoid segfaults
- CLIP_DUMMY_POINTER_AREA(mouse_pos_abs,&temp_brwin, &mouse_pos_temp);
+ CLIP_DUMMY_POINTER_AREA(mouse_pos_abs, &temp_brwin, &mouse_pos_temp);
mouse_xoffset=mouse_pos_temp.x-mouse_pos_abs.x;
mouse_yoffset=mouse_pos_temp.y-mouse_pos_abs.y;
if ((mouse_xoffset<0) || (mouse_xoffset>mouse_pos_abs.width))
diff --git a/recordmydesktop/src/rmd_init_encoder.c b/recordmydesktop/src/rmd_init_encoder.c
index da442f2..2b2273e 100644
--- a/recordmydesktop/src/rmd_init_encoder.c
+++ b/recordmydesktop/src/rmd_init_encoder.c
@@ -83,7 +83,7 @@ static int rmdIncrementalNaming(char **name) {
return 0;
}
-void rmdInitEncoder(ProgData *pdata,EncData *enc_data_t,int buffer_ready) {
+void rmdInitEncoder(ProgData *pdata, EncData *enc_data_t, int buffer_ready) {
int y0, y1, y2, fname_length;
ogg_stream_state m_ogg_skel;
ogg_page skel_og_pg;
@@ -91,13 +91,13 @@ void rmdInitEncoder(ProgData *pdata,EncData *enc_data_t,int buffer_ready) {
skel_fba; //audio fisbone packet
const char *fname;
- (pdata)->enc_data=enc_data_t;
+ pdata->enc_data = enc_data_t;
fname = pdata->args.filename;
- fname_length=strlen(fname);
+ fname_length = strlen(fname);
if (!(fname_length>4 && !strcasecmp(&fname[fname_length-3], "ogv"))) {
- char *new_name=malloc(fname_length+5);
+ char *new_name = malloc(fname_length + 5);
strcpy(new_name,fname);
strcat(new_name,".ogv");
@@ -110,34 +110,34 @@ void rmdInitEncoder(ProgData *pdata,EncData *enc_data_t,int buffer_ready) {
fprintf(stderr, "Output file: %s\n", pdata->args.filename);
}
- enc_data_t->fp=fopen((pdata)->args.filename,"w");
- if (enc_data_t->fp==NULL) {
+ enc_data_t->fp = fopen((pdata)->args.filename,"w");
+ if (enc_data_t->fp == NULL) {
fprintf(stderr,"Cannot open file %s for writting!\n", (pdata)->args.filename);
exit(13);
}
//each stream must have a unique
srand(time(NULL));
- y0=rand()+1;
- y1=rand()+1;
- y2=rand()+1;
- y2+=(y1==y2);
- y0=(((y0==y1)||(y0==y2))?(y1+y2):y0);
+ y0 = rand() + 1;
+ y1 = rand() + 1;
+ y2 = rand() + 1;
+ y2 += (y1 == y2);
+ y0 = (((y0 == y1) || (y0 == y2)) ? (y1 + y2) : y0);
//init ogg streams
//skeleton first
ogg_stream_init(&m_ogg_skel, y0);
m_add_fishead_packet(&m_ogg_skel);
- if (ogg_stream_pageout(&m_ogg_skel,&skel_og_pg)!= 1) {
+ if (ogg_stream_pageout(&m_ogg_skel, &skel_og_pg) != 1) {
fprintf (stderr, "Internal Ogg library error.\n");
exit (2);
}
- fwrite(skel_og_pg.header,1,skel_og_pg.header_len,enc_data_t->fp);
- fwrite(skel_og_pg.body,1,skel_og_pg.body_len,enc_data_t->fp);
+ fwrite(skel_og_pg.header, 1, skel_og_pg.header_len, enc_data_t->fp);
+ fwrite(skel_og_pg.body, 1, skel_og_pg.body_len, enc_data_t->fp);
- ogg_stream_init(&enc_data_t->m_ogg_ts,y1);
+ ogg_stream_init(&enc_data_t->m_ogg_ts, y1);
if (!pdata->args.nosound)
- ogg_stream_init(&enc_data_t->m_ogg_vs,y2);
+ ogg_stream_init(&enc_data_t->m_ogg_vs, y2);
theora_info_init(&enc_data_t->m_th_inf);
enc_data_t->m_th_inf.frame_width = pdata->brwin.rrect.width;
@@ -168,9 +168,6 @@ void rmdInitEncoder(ProgData *pdata,EncData *enc_data_t,int buffer_ready) {
enc_data_t->m_th_inf.noise_sensitivity = 1;
enc_data_t->m_th_inf.sharpness = 2;
- theora_encode_init(&enc_data_t->m_th_st,&enc_data_t->m_th_inf);
-
-
if (!pdata->args.nosound) {
int ret;
vorbis_info_init(&enc_data_t->m_vo_inf);
@@ -183,134 +180,141 @@ void rmdInitEncoder(ProgData *pdata,EncData *enc_data_t,int buffer_ready) {
exit(2);
}
vorbis_comment_init(&enc_data_t->m_vo_cmmnt);
- vorbis_analysis_init(&enc_data_t->m_vo_dsp,&enc_data_t->m_vo_inf);
- vorbis_block_init(&enc_data_t->m_vo_dsp,&enc_data_t->m_vo_block);
+ vorbis_analysis_init(&enc_data_t->m_vo_dsp, &enc_data_t->m_vo_inf);
+ vorbis_block_init(&enc_data_t->m_vo_dsp, &enc_data_t->m_vo_block);
+ }
+
+ if (theora_encode_init(&enc_data_t->m_th_st, &enc_data_t->m_th_inf)) {
+ fprintf(stderr, "Theora encoder initialization failure.\n");
+ exit(2);
}
+ if (theora_encode_header(&enc_data_t->m_th_st, &enc_data_t->m_ogg_pckt1)) {
+ fprintf(stderr, "Theora enocde header failure.\n");
+ exit(2);
+ }
- theora_encode_header(&enc_data_t->m_th_st,&enc_data_t->m_ogg_pckt1);
- ogg_stream_packetin(&enc_data_t->m_ogg_ts,&enc_data_t->m_ogg_pckt1);
- if (ogg_stream_pageout(&enc_data_t->m_ogg_ts,&enc_data_t->m_ogg_pg)!=1) {
+ ogg_stream_packetin(&enc_data_t->m_ogg_ts, &enc_data_t->m_ogg_pckt1);
+ if (ogg_stream_pageout(&enc_data_t->m_ogg_ts, &enc_data_t->m_ogg_pg) != 1) {
fprintf(stderr,"Internal Ogg library error.\n");
exit(2);
}
- fwrite(enc_data_t->m_ogg_pg.header,1,
+ fwrite(enc_data_t->m_ogg_pg.header, 1,
enc_data_t->m_ogg_pg.header_len,
enc_data_t->fp);
- fwrite(enc_data_t->m_ogg_pg.body,1,
+ fwrite(enc_data_t->m_ogg_pg.body, 1,
enc_data_t->m_ogg_pg.body_len,
enc_data_t->fp);
theora_comment_init(&enc_data_t->m_th_cmmnt);
- theora_comment_add_tag(&enc_data_t->m_th_cmmnt,"recordMyDesktop",VERSION);
- theora_encode_comment(&enc_data_t->m_th_cmmnt,&enc_data_t->m_ogg_pckt1);
- ogg_stream_packetin(&enc_data_t->m_ogg_ts,&enc_data_t->m_ogg_pckt1);
- theora_encode_tables(&enc_data_t->m_th_st,&enc_data_t->m_ogg_pckt1);
- ogg_stream_packetin(&enc_data_t->m_ogg_ts,&enc_data_t->m_ogg_pckt1);
+ theora_comment_add_tag(&enc_data_t->m_th_cmmnt, "recordMyDesktop", VERSION);
+ theora_encode_comment(&enc_data_t->m_th_cmmnt, &enc_data_t->m_ogg_pckt1);
+ ogg_stream_packetin(&enc_data_t->m_ogg_ts, &enc_data_t->m_ogg_pckt1);
+ theora_encode_tables(&enc_data_t->m_th_st, &enc_data_t->m_ogg_pckt1);
+ ogg_stream_packetin(&enc_data_t->m_ogg_ts, &enc_data_t->m_ogg_pckt1);
if (!pdata->args.nosound) {
ogg_packet header;
ogg_packet header_comm;
ogg_packet header_code;
- vorbis_analysis_headerout(&enc_data_t->m_vo_dsp,
- &enc_data_t->m_vo_cmmnt,
- &header,&header_comm,
- &header_code);
- ogg_stream_packetin(&enc_data_t->m_ogg_vs,&header);
- if (ogg_stream_pageout(&enc_data_t->m_ogg_vs,&enc_data_t->m_ogg_pg)!=1) {
+ vorbis_analysis_headerout( &enc_data_t->m_vo_dsp,
+ &enc_data_t->m_vo_cmmnt,
+ &header, &header_comm,
+ &header_code);
+ ogg_stream_packetin(&enc_data_t->m_ogg_vs, &header);
+ if (ogg_stream_pageout(&enc_data_t->m_ogg_vs, &enc_data_t->m_ogg_pg) != 1) {
fprintf(stderr,"Internal Ogg library error.\n");
exit(2);
}
- fwrite(enc_data_t->m_ogg_pg.header,1,
+ fwrite(enc_data_t->m_ogg_pg.header, 1,
enc_data_t->m_ogg_pg.header_len,
enc_data_t->fp);
- fwrite(enc_data_t->m_ogg_pg.body,1,
+ fwrite(enc_data_t->m_ogg_pg.body, 1,
enc_data_t->m_ogg_pg.body_len,
enc_data_t->fp);
- ogg_stream_packetin(&enc_data_t->m_ogg_vs,&header_comm);
- ogg_stream_packetin(&enc_data_t->m_ogg_vs,&header_code);
+ ogg_stream_packetin(&enc_data_t->m_ogg_vs, &header_comm);
+ ogg_stream_packetin(&enc_data_t->m_ogg_vs, &header_code);
}
//fishbone packets go here
- memset(&skel_fbv,0,sizeof(skel_fbv));
- skel_fbv.serial_no=enc_data_t->m_ogg_ts.serialno;
- skel_fbv.nr_header_packet=3;
- skel_fbv.granule_rate_n=enc_data_t->m_th_inf.fps_numerator;
- skel_fbv.granule_rate_d=enc_data_t->m_th_inf.fps_denominator;
- skel_fbv.start_granule=0;
- skel_fbv.preroll=0;
- skel_fbv.granule_shift=theora_granule_shift(&enc_data_t->m_th_inf);
+ memset(&skel_fbv, 0, sizeof(skel_fbv));
+ skel_fbv.serial_no = enc_data_t->m_ogg_ts.serialno;
+ skel_fbv.nr_header_packet = 3;
+ skel_fbv.granule_rate_n = enc_data_t->m_th_inf.fps_numerator;
+ skel_fbv.granule_rate_d = enc_data_t->m_th_inf.fps_denominator;
+ skel_fbv.start_granule = 0;
+ skel_fbv.preroll = 0;
+ skel_fbv.granule_shift = theora_granule_shift(&enc_data_t->m_th_inf);
add_message_header_field(&skel_fbv, "Content-Type", "video/theora");
add_fisbone_to_stream(&m_ogg_skel,&skel_fbv);
if (!pdata->args.nosound) {
- memset(&skel_fba,0,sizeof(skel_fba));
- skel_fba.serial_no=enc_data_t->m_ogg_vs.serialno;
- skel_fba.nr_header_packet=3;
- skel_fba.granule_rate_n=pdata->args.frequency;
- skel_fba.granule_rate_d=(ogg_int64_t)1;
- skel_fba.start_granule=0;
- skel_fba.preroll=2;
- skel_fba.granule_shift=0;
+ memset(&skel_fba, 0, sizeof(skel_fba));
+ skel_fba.serial_no = enc_data_t->m_ogg_vs.serialno;
+ skel_fba.nr_header_packet = 3;
+ skel_fba.granule_rate_n = pdata->args.frequency;
+ skel_fba.granule_rate_d = (ogg_int64_t)1;
+ skel_fba.start_granule = 0;
+ skel_fba.preroll = 2;
+ skel_fba.granule_shift = 0;
add_message_header_field(&skel_fba, "Content-Type", "audio/vorbis");
- add_fisbone_to_stream(&m_ogg_skel,&skel_fba);
+ add_fisbone_to_stream(&m_ogg_skel, &skel_fba);
}
while (1) {
int result = ogg_stream_flush(&m_ogg_skel, &skel_og_pg);
- if (result<0) {
+ if (result < 0) {
fprintf (stderr, "Internal Ogg library error.\n");
exit(2);
}
- if (result==0)
+ if (result == 0)
break;
- fwrite(skel_og_pg.header,1,skel_og_pg.header_len,enc_data_t->fp);
- fwrite(skel_og_pg.body,1,skel_og_pg.body_len,enc_data_t->fp);
+
+ fwrite(skel_og_pg.header, 1, skel_og_pg.header_len, enc_data_t->fp);
+ fwrite(skel_og_pg.body, 1, skel_og_pg.body_len, enc_data_t->fp);
}
while (1) {
- int result = ogg_stream_flush(&enc_data_t->m_ogg_ts,
- &enc_data_t->m_ogg_pg);
- if (result<0) {
+ int result = ogg_stream_flush(&enc_data_t->m_ogg_ts, &enc_data_t->m_ogg_pg);
+ if (result < 0) {
fprintf(stderr,"Internal Ogg library error.\n");
exit(2);
}
- if (result==0)
+ if (result == 0)
break;
- fwrite( enc_data_t->m_ogg_pg.header,1,
+ fwrite( enc_data_t->m_ogg_pg.header, 1,
enc_data_t->m_ogg_pg.header_len,
enc_data_t->fp);
- fwrite( enc_data_t->m_ogg_pg.body,1,
+ fwrite( enc_data_t->m_ogg_pg.body, 1,
enc_data_t->m_ogg_pg.body_len,
enc_data_t->fp);
}
if (!pdata->args.nosound) {
while (1) {
- int result=ogg_stream_flush(&enc_data_t->m_ogg_vs,
- &enc_data_t->m_ogg_pg);
- if (result<0) {
+ int result = ogg_stream_flush(&enc_data_t->m_ogg_vs, &enc_data_t->m_ogg_pg);
+ if (result < 0) {
fprintf(stderr,"Internal Ogg library error.\n");
exit(2);
}
- if (result==0)
+ if (result == 0)
break;
- fwrite( enc_data_t->m_ogg_pg.header,1,
+ fwrite( enc_data_t->m_ogg_pg.header, 1,
enc_data_t->m_ogg_pg.header_len,
enc_data_t->fp);
- fwrite( enc_data_t->m_ogg_pg.body,1,
+ fwrite( enc_data_t->m_ogg_pg.body, 1,
enc_data_t->m_ogg_pg.body_len,
enc_data_t->fp);
}
@@ -318,29 +322,26 @@ void rmdInitEncoder(ProgData *pdata,EncData *enc_data_t,int buffer_ready) {
//skeleton eos
add_eos_packet_to_stream(&m_ogg_skel);
- if (ogg_stream_flush(&m_ogg_skel,&skel_og_pg)<0) {
+ if (ogg_stream_flush(&m_ogg_skel, &skel_og_pg) < 0) {
fprintf(stderr,"Internal Ogg library error.\n");
exit(2);
}
- fwrite(skel_og_pg.header,1,skel_og_pg.header_len,enc_data_t->fp);
+ fwrite(skel_og_pg.header, 1, skel_og_pg.header_len,enc_data_t->fp);
//theora buffer allocation, if any
if (!buffer_ready) {
- enc_data_t->yuv.y=(unsigned char *)malloc(enc_data_t->m_th_inf.height*
- enc_data_t->m_th_inf.width);
- enc_data_t->yuv.u=(unsigned char *)malloc(enc_data_t->m_th_inf.height*
- enc_data_t->m_th_inf.width/4);
- enc_data_t->yuv.v=(unsigned char *)malloc(enc_data_t->m_th_inf.height*
- enc_data_t->m_th_inf.width/4);
- enc_data_t->yuv.y_width=enc_data_t->m_th_inf.width;
- enc_data_t->yuv.y_height=enc_data_t->m_th_inf.height;
- enc_data_t->yuv.y_stride=enc_data_t->m_th_inf.width;
-
- enc_data_t->yuv.uv_width=enc_data_t->m_th_inf.width/2;
- enc_data_t->yuv.uv_height=enc_data_t->m_th_inf.height/2;
- enc_data_t->yuv.uv_stride=enc_data_t->m_th_inf.width/2;
- enc_data_t->x_offset=enc_data_t->m_th_inf.offset_x;
- enc_data_t->y_offset=enc_data_t->m_th_inf.offset_y;
+ enc_data_t->yuv.y = malloc(enc_data_t->m_th_inf.height * enc_data_t->m_th_inf.width);
+ enc_data_t->yuv.u = malloc(enc_data_t->m_th_inf.height * enc_data_t->m_th_inf.width / 4);
+ enc_data_t->yuv.v = malloc(enc_data_t->m_th_inf.height * enc_data_t->m_th_inf.width / 4);
+ enc_data_t->yuv.y_width = enc_data_t->m_th_inf.width;
+ enc_data_t->yuv.y_height = enc_data_t->m_th_inf.height;
+ enc_data_t->yuv.y_stride = enc_data_t->m_th_inf.width;
+
+ enc_data_t->yuv.uv_width = enc_data_t->m_th_inf.width / 2;
+ enc_data_t->yuv.uv_height = enc_data_t->m_th_inf.height / 2;
+ enc_data_t->yuv.uv_stride = enc_data_t->m_th_inf.width / 2;
+ enc_data_t->x_offset = enc_data_t->m_th_inf.offset_x;
+ enc_data_t->y_offset = enc_data_t->m_th_inf.offset_y;
}
theora_info_clear(&enc_data_t->m_th_inf);
diff --git a/recordmydesktop/src/rmd_initialize_data.c b/recordmydesktop/src/rmd_initialize_data.c
index ecf708a..166f8ea 100644
--- a/recordmydesktop/src/rmd_initialize_data.c
+++ b/recordmydesktop/src/rmd_initialize_data.c
@@ -176,11 +176,11 @@ int rmdInitializeData(ProgData *pdata, EncData *enc_data, CacheData *cache_data)
for(i=0; i<(pdata->enc_data->yuv.uv_width*pdata->enc_data->yuv.uv_height); i++)
pdata->enc_data->yuv.v[i]=pdata->enc_data->yuv.u[i]=127;
- yblocks=malloc(sizeof(u_int32_t)*(pdata->enc_data->yuv.y_width/Y_UNIT_WIDTH)*
+ yblocks = malloc(sizeof(u_int32_t)*(pdata->enc_data->yuv.y_width/Y_UNIT_WIDTH)*
(pdata->enc_data->yuv.y_height/Y_UNIT_WIDTH));
- ublocks=malloc(sizeof(u_int32_t)*(pdata->enc_data->yuv.y_width/Y_UNIT_WIDTH)*
+ ublocks = malloc(sizeof(u_int32_t)*(pdata->enc_data->yuv.y_width/Y_UNIT_WIDTH)*
(pdata->enc_data->yuv.y_height/Y_UNIT_WIDTH));
- vblocks=malloc(sizeof(u_int32_t)*(pdata->enc_data->yuv.y_width/Y_UNIT_WIDTH)*
+ vblocks = malloc(sizeof(u_int32_t)*(pdata->enc_data->yuv.y_width/Y_UNIT_WIDTH)*
(pdata->enc_data->yuv.y_height/Y_UNIT_WIDTH));
pdata->frametime=(1000000)/pdata->args.fps;
diff --git a/recordmydesktop/src/rmd_types.h b/recordmydesktop/src/rmd_types.h
index b655d18..cbabb47 100644
--- a/recordmydesktop/src/rmd_types.h
+++ b/recordmydesktop/src/rmd_types.h
@@ -152,34 +152,34 @@ typedef struct _ProgArgs{
unsigned int jack_nports;
char *jack_port_names[RMD_MAX_JACK_PORTS];
float jack_ringbuffer_secs;
-}ProgArgs;
+} ProgArgs;
//this struct holds anything related to encoding AND
//writting out to file.
typedef struct _EncData{
- ogg_stream_state m_ogg_ts; //theora
- ogg_stream_state m_ogg_vs; //vorbis
- ogg_page m_ogg_pg; //this could be avoided since
- // it is used only while initializing
- ogg_packet m_ogg_pckt1; //theora stream
- ogg_packet m_ogg_pckt2; //vorbis stream
+ ogg_stream_state m_ogg_ts; //theora
+ ogg_stream_state m_ogg_vs; //vorbis
+ ogg_page m_ogg_pg; //this could be avoided since
+ // it is used only while initializing
+ ogg_packet m_ogg_pckt1; //theora stream
+ ogg_packet m_ogg_pckt2; //vorbis stream
//theora data
- theora_state m_th_st;
- theora_info m_th_inf;
- theora_comment m_th_cmmnt;
- yuv_buffer yuv;
+ theora_state m_th_st;
+ theora_info m_th_inf;
+ theora_comment m_th_cmmnt;
+ yuv_buffer yuv;
//vorbis data
- vorbis_info m_vo_inf;
- vorbis_comment m_vo_cmmnt;
- vorbis_dsp_state m_vo_dsp;
- vorbis_block m_vo_block;
+ vorbis_info m_vo_inf;
+ vorbis_comment m_vo_cmmnt;
+ vorbis_dsp_state m_vo_dsp;
+ vorbis_block m_vo_block;
//these should be 0, since area is quantized
//before input
- int x_offset,
- y_offset;
+ int x_offset,
+ y_offset;
//our file
FILE *fp;
-}EncData;
+} EncData;
//this struct will hold a few basic
//information, needed for caching the frames.
@@ -218,19 +218,20 @@ typedef struct _SndBuffer{
#ifdef HAVE_LIBJACK
typedef struct _JackData{
- ProgData *pdata; //pointer to prog data
- jack_client_t *client;
- unsigned int buffersize, //buffer size for every port in frames.
- frequency, //samplerate with which jack server was started.
- nports; //number of ports.
- float ringbuffer_secs;
- char **port_names; //names of ports(as specified in args).
- jack_port_t **ports; //connections to thes ports.
- jack_default_audio_sample_t **portbuf; //retrieval of audio buffers.
- pthread_mutex_t *snd_buff_ready_mutex; //mutex and cond_var
- pthread_cond_t *sound_data_read; //in the pdata struct
- jack_ringbuffer_t *sound_buffer; //data exchange happens through this
- int capture_started; //used to hold recording in the beginning
+ ProgData *pdata; //pointer to prog data
+ jack_client_t *client;
+ unsigned int buffersize, //buffer size for every port in frames.
+ frequency, //samplerate with which jack server was started.
+ nports; //number of ports.
+ float ringbuffer_secs;
+ char **port_names; //names of ports(as specified in args).
+ jack_port_t **ports; //connections to thes ports.
+ jack_default_audio_sample_t
+ **portbuf; //retrieval of audio buffers.
+ pthread_mutex_t *snd_buff_ready_mutex; //mutex and cond_var
+ pthread_cond_t *sound_data_read; //in the pdata struct
+ jack_ringbuffer_t *sound_buffer; //data exchange happens through this
+ int capture_started; //used to hold recording in the beginning
}JackData;
#endif
© All Rights Reserved