Thread: Re: [Mlt-devel] [Kdenlive-devel] current mlt jack issues
Brought to you by:
ddennedy,
lilo_booter
From: Ed R. <ed....@go...> - 2012-06-25 07:38:06
|
Hi Dan, > I just integrated jack into Shotcut, which also uses OpenGL very > similarly, and I did not reproduce this problem. Ok. In this case I will investigate. Thanks anyways. > static int jack_process (jack_nframes_t frames, void * data) > { > ... > for ( i = 0; i < channels; i++ ) > { > size_t jack_size = ( frames * sizeof(float) ); > size_t ring_size; > // Send audio through out port > jack_output_buffers[i] = jack_port_get_buffer( jack_output_ports[i], frames > ); > if ( ! jack_output_buffers[i] ) > { > mlt_log_error( MLT_FILTER_SERVICE(filter), "no buffer for output port %d\n", > i ); > err = 1; > break; > } > ring_size = jack_ringbuffer_read_space( output_buffers[i] ); <--- ring_size > = 0, nothing is copied to jackd > jack_ringbuffer_read( output_buffers[i], ( char * )jack_output_buffers[i], > ring_size < jack_size ? ring_size : jack_size ); > .... > } > > the ring_size is 0 and no data is transfered to the jack outport >> This is the problem - jack playing unset memory. This is what I have >> committed and works for me using melt -jack -consumer sdl_preview. I had implemented in my private jack branch a similiar solution (silence buffer) for playing around. Ok I've integrated the patch - it works for me too. Thank you. Now I'm ready for the next step. I have some another issues in sync and seeking if audio tracks are muted or not available (using mlt jack only as transport). But for describing the problem/issue I want to play a little bit more. I'll let you know if I have the details. regards eddrog |
From: Ed R. <ed....@go...> - 2012-06-26 18:42:18
|
> Now I'm ready for the next step. I have some another issues in sync > and seeking if audio tracks are muted or not available (using mlt jack > only as transport). >> Are you attaching the jackrack filter to the consumer? Not absolutly sure what you mean but - yes I'm attaching the jackrack filter to the "sdl_preview" consumer. .... if (!m_mltConsumer->is_stopped()) m_mltConsumer->stop(); if (m_isJackActive == false) { // create jackrack filter using the factory m_mltFilterJack = new Mlt::Filter(*m_mltProfile, "jackrack"); if(m_mltFilterJack->is_valid()) { // attach filter to consumer m_mltConsumer->attach(*m_mltFilterJack); // set comsumer properties m_mltConsumer->set("audio_off", 1); ... I compared your implementation in shotcut - its almost equal. That means that I didn't to much wrong ;-))) why ? regards eddrog |
From: Dan D. <da...@de...> - 2012-06-25 16:16:55
|
On Mon, Jun 25, 2012 at 12:37 AM, Ed Rogalsky <ed....@go...> wrote: > Hi Dan, > >> I just integrated jack into Shotcut, which also uses OpenGL very >> similarly, and I did not reproduce this problem. > > Ok. In this case I will investigate. Thanks anyways. > > > >> static int jack_process (jack_nframes_t frames, void * data) >> { >> ... >> for ( i = 0; i < channels; i++ ) >> { >> size_t jack_size = ( frames * sizeof(float) ); >> size_t ring_size; >> // Send audio through out port >> jack_output_buffers[i] = jack_port_get_buffer( jack_output_ports[i], frames >> ); >> if ( ! jack_output_buffers[i] ) >> { >> mlt_log_error( MLT_FILTER_SERVICE(filter), "no buffer for output port %d\n", >> i ); >> err = 1; >> break; >> } >> ring_size = jack_ringbuffer_read_space( output_buffers[i] ); <--- ring_size >> = 0, nothing is copied to jackd >> jack_ringbuffer_read( output_buffers[i], ( char * )jack_output_buffers[i], >> ring_size < jack_size ? ring_size : jack_size ); >> .... >> } >> >> the ring_size is 0 and no data is transfered to the jack outport > >>> This is the problem - jack playing unset memory. This is what I have >>> committed and works for me using melt -jack -consumer sdl_preview. > > I had implemented in my private jack branch a similiar solution > (silence buffer) for playing around. Ok I've integrated the patch - it > works for me too. > Thank you. > > Now I'm ready for the next step. I have some another issues in sync > and seeking if audio tracks are muted or not available (using mlt jack > only as transport). Are you attaching the jackrack filter to the consumer? > But for describing the problem/issue I want to play a little bit more. > I'll let you know if I have the details. > > > regards > eddrog |