mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-24 16:49:59 +01:00
bugfix enable/disable audio, report audio status to ui
git-svn-id: svn://code.dyne.org/veejay/trunk@774 eb8d1916-c9e9-0310-b8de-cf0c9472ead5
This commit is contained in:
@@ -6684,50 +6684,26 @@ void vj_event_output_y4m_stop(void *ptr, const char format[], va_list ap)
|
||||
void vj_event_enable_audio(void *ptr, const char format[], va_list ap)
|
||||
{
|
||||
veejay_t *v = (veejay_t*)ptr;
|
||||
if(v->edit_list->has_audio)
|
||||
#ifdef HAVE_JACK
|
||||
if( v->audio == NO_AUDIO )
|
||||
{
|
||||
if(v->audio != AUDIO_PLAY)
|
||||
{
|
||||
if( vj_perform_audio_start(v) )
|
||||
{
|
||||
v->audio = AUDIO_PLAY;
|
||||
}
|
||||
else
|
||||
{
|
||||
veejay_msg(VEEJAY_MSG_ERROR, "Cannot start Jack ");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
veejay_msg(VEEJAY_MSG_ERROR, "Already playing audio");
|
||||
}
|
||||
vj_jack_enable();
|
||||
v->audio = AUDIO_PLAY;
|
||||
}
|
||||
else
|
||||
{
|
||||
veejay_msg(VEEJAY_MSG_ERROR, "Video has no audio");
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
void vj_event_disable_audio(void *ptr, const char format[], va_list ap)
|
||||
{
|
||||
veejay_t *v = (veejay_t *)ptr;
|
||||
if(v->edit_list->has_audio)
|
||||
#ifdef HAVE_JACK
|
||||
if( v->audio != NO_AUDIO )
|
||||
{
|
||||
if(v->audio == AUDIO_PLAY)
|
||||
{
|
||||
vj_perform_audio_stop(v);
|
||||
v->audio = NO_AUDIO;
|
||||
}
|
||||
else
|
||||
{
|
||||
veejay_msg(VEEJAY_MSG_ERROR, "Not playing audio");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
veejay_msg(VEEJAY_MSG_ERROR, "Video has no audio");
|
||||
vj_jack_disable();
|
||||
v->audio = NO_AUDIO;
|
||||
vj_jack_reset();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -7751,7 +7727,7 @@ void vj_event_send_video_information ( void *ptr, const char format[], va_lis
|
||||
editlist *el = ( SAMPLE_PLAYING(v) ? sample_get_editlist( v->uc->sample_id ) :
|
||||
v->current_edit_list );
|
||||
|
||||
snprintf(info_msg,sizeof(info_msg)-1, "%04d %04d %01d %c %02.3f %1d %04d %06ld %02d %03ld %08ld",
|
||||
snprintf(info_msg,sizeof(info_msg)-1, "%04d %04d %01d %c %02.3f %1d %04d %06ld %02d %03ld %08ld %1d",
|
||||
el->video_width,
|
||||
el->video_height,
|
||||
el->video_inter,
|
||||
@@ -7762,25 +7738,11 @@ void vj_event_send_video_information ( void *ptr, const char format[], va_lis
|
||||
el->audio_rate,
|
||||
el->audio_chans,
|
||||
el->num_video_files,
|
||||
el->video_frames
|
||||
el->video_frames,
|
||||
v->audio
|
||||
);
|
||||
sprintf( _s_print_buf, "%03d%s",strlen(info_msg), info_msg);
|
||||
|
||||
veejay_msg(VEEJAY_MSG_DEBUG,
|
||||
"%p , %04d %04d %01d %c %02.3f %1d %04d %06ld %02d %03ld %08ld",
|
||||
el,
|
||||
el->video_width,
|
||||
el->video_height,
|
||||
el->video_inter,
|
||||
el->video_norm,
|
||||
el->video_fps,
|
||||
el->has_audio,
|
||||
el->audio_bits,
|
||||
el->audio_rate,
|
||||
el->audio_chans,
|
||||
el->num_video_files,
|
||||
el->video_frames
|
||||
);
|
||||
|
||||
SEND_MSG(v,_s_print_buf);
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ int vj_jack_pause();
|
||||
|
||||
int vj_jack_resume();
|
||||
|
||||
void vj_jack_reset();
|
||||
|
||||
int vj_jack_play(void *data, int len);
|
||||
|
||||
int vj_jack_set_volume(int volume);
|
||||
@@ -45,6 +47,10 @@ int vj_jack_resume();
|
||||
|
||||
long vj_jack_get_status(long int *sec, long int *usec);
|
||||
|
||||
void vj_jack_enable();
|
||||
|
||||
void vj_jack_disable();
|
||||
|
||||
int vj_jack_get_space();
|
||||
|
||||
int vj_jack_continue(int speed);
|
||||
|
||||
@@ -939,9 +939,13 @@ void vj_perform_audio_status(struct timeval tmpstmp, unsigned int nb_out,
|
||||
void vj_perform_audio_stop(veejay_t * info)
|
||||
{
|
||||
if (info->edit_list->has_audio) {
|
||||
//audio_shutdown();
|
||||
#ifdef HAVE_JACK
|
||||
vj_jack_stop();
|
||||
if(resample_jack)
|
||||
{
|
||||
audio_resample_close(resample_jack);
|
||||
resample_jack = NULL;
|
||||
}
|
||||
#endif
|
||||
info->audio = NO_AUDIO;
|
||||
}
|
||||
|
||||
@@ -18,8 +18,6 @@
|
||||
*/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
||||
#ifdef HAVE_JACK
|
||||
#include <bio2jack/bio2jack.h>
|
||||
#include <libel/vj-el.h>
|
||||
@@ -28,7 +26,6 @@ static int bits_per_sample = 0;
|
||||
static unsigned long audio_rate = 0;
|
||||
static int audio_channels = 0;
|
||||
static int audio_bps = 0;
|
||||
static int buffer_len = 0;
|
||||
static unsigned long v_rate = 0;
|
||||
|
||||
extern void veejay_msg(int type, const char format[], ...);
|
||||
@@ -95,9 +92,8 @@ int vj_jack_init(editlist *el)
|
||||
|
||||
audio_bps = audio_rate * audio_channels;
|
||||
|
||||
buffer_len = vj_jack_get_space();
|
||||
|
||||
veejay_msg(2,"Jack: %ld, %d Hz/ %d Channels %d Bit ", jack_rate,audio_rate,audio_channels,bits_per_sample);
|
||||
veejay_msg(2,"Jack: %ld, %d Hz/ %d Channels %d Bit, Buffering max %d bytes ", jack_rate,audio_rate,audio_channels,bits_per_sample,
|
||||
vj_jack_get_space());
|
||||
|
||||
ret = 1;
|
||||
|
||||
@@ -148,11 +144,21 @@ int vj_jack_stop()
|
||||
return 1;
|
||||
}
|
||||
|
||||
int vj_jack_reset()
|
||||
void vj_jack_enable()
|
||||
{
|
||||
if( JACK_GetState(driver) == STOPPED )
|
||||
JACK_SetState(driver, PLAYING );
|
||||
}
|
||||
|
||||
void vj_jack_disable()
|
||||
{
|
||||
JACK_SetState( driver, STOPPED );
|
||||
}
|
||||
|
||||
|
||||
void vj_jack_reset()
|
||||
{
|
||||
JACK_Reset(driver);
|
||||
buffer_len = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int vj_jack_c_play(void *data, int len, int entry)
|
||||
@@ -191,8 +197,6 @@ int vj_jack_get_space()
|
||||
|
||||
long vj_jack_get_status(long int *sec, long int *usec)
|
||||
{
|
||||
//JACK_GetPosition(int deviceID, enum pos_enum position, int type);
|
||||
|
||||
return JACK_OutputStatus( driver, sec, usec);
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user