audio_decoder_obj = audio_decoder/audio_decoder.o \
audio_decoder/audio_math.o
+subtitle_decoder_obj = subtitle_decoder/subtitle_decoder.o
+
#??generic_decoder_obj = generic_decoder/generic_decoder.o
# remeber to add it to OBJ
$(video_output_obj) \
$(ac3_decoder_obj) \
$(audio_decoder_obj) \
+ $(subtitle_decoder_obj) \
$(generic_decoder_obj) \
$(video_parser_obj) \
$(video_decoder_obj) \
{
double mean;
double deviation;
- int count;
} video_synchro_tab_t;
* Initialize the synchro properties
*/
p_vpar->synchro.modulo = 0;
- /* assume there were about 3 P and 4 B images between I's */
+ /* assume there were about 3 P and 6 B images between I's */
p_vpar->synchro.current_p_count = 1;
p_vpar->synchro.p_count_predict = 3;
p_vpar->synchro.current_b_count = 1;
- p_vpar->synchro.b_count_predict = 4;
+ p_vpar->synchro.b_count_predict = 6;
{
int i;
for( i=0; i<6; i++)
{
p_vpar->synchro.tab_p[i].mean = 3;
- p_vpar->synchro.tab_p[i].deviation = 1;
- p_vpar->synchro.tab_p[i].count = 0;
+ p_vpar->synchro.tab_p[i].deviation = .5;
- p_vpar->synchro.tab_b[i].mean = 4;
- p_vpar->synchro.tab_b[i].deviation = 1;
- p_vpar->synchro.tab_b[i].count = 0;
+ p_vpar->synchro.tab_b[i].mean = 6;
+ p_vpar->synchro.tab_b[i].deviation = .5;
}
}
*****************************************************************************/
double vpar_SynchroUpdateTab( video_synchro_tab_t * tab, int count )
{
- if( tab->count < MAX_COUNT)
- tab->count++;
-
- tab->mean = ( (tab->count-1) * tab->mean + count )
- / tab->count;
-
- tab->deviation = ( (tab->count-1) * tab->deviation
- + abs (tab->mean - count) ) / tab->count;
+
+ tab->mean = ( tab->mean + 3 * count ) / 4;
+ tab->deviation = ( tab->deviation + 3 * abs (tab->mean - count) ) / 4;
return tab->deviation;
}
intf_DbgMsg("vpar debug: synchro image %i - modulo is %i\n", i_coding_type, p_vpar->synchro.modulo);
intf_DbgMsg("vpar debug: synchro predict P %e - predict B %e\n", p_vpar->synchro.p_count_predict, p_vpar->synchro.b_count_predict);
+ return(0);
return( i_coding_type == I_CODING_TYPE );
}