rendered paste bodyhb_fifo_t * ivtc_fifo;pv->ivtc_fifo = hb_fifo_init( 4 );hb_fifo_close( ivtc_fifo );/* Set output to render buffer */(*buf_out) = buf_render;if( buf_tmp_in == NULL ){ /* Teardown and cleanup buffers if we are emitting NULL */ if( buf_in && *buf_in ) { hb_buffer_close( buf_in ); *buf_in = NULL; } if( buf_out && *buf_out ) { hb_buffer_close( buf_out ); *buf_out = NULL; }}else if( buf_tmp_in != buf_render ){ /* Copy temporary results and settings into render buffer */ memcpy( buf_render->data, buf_tmp_in->data, buf_render->size ); hb_buffer_copy_settings( buf_render, buf_tmp_in ); hb_fifo_push( pv->ivtc_fifo, buf_render ); }if ( hb_fifo_is_full( pv->ivtc_fifo ) ){ buf_render = hb_fifo_get( pv->ivtc_fifo ); /* Pass VFR NTSC IVTC frame durations on through the workflow. I totally wish I could slip some cryptic abbreviations into the last sentence. (90090000 / 120000) is the rational equivalent of 750.75. That's the number of ticks by which a 23.976 frame is longer than a 29.97 frame. God I hate fractions. */ if ( (dropped_frames) &&( dropped_frames * 4 ) > extended_durations ) { buf_render->stop = buf_render->stop + (90090000 / 120000); extended_durations++; } else if (buf_render->flags & 16) { //buf_render->stop = buf_render->stop + (90090000 / 120000); }}else{ hb_buffer_close( buf_out ); *buf_out = NULL;}