Názor k článku MPlayer a MEncoder: instalace od Mikulas Patocka - Uppercase je to, protoze to bylo delano na...

  • Článek je starý, nové názory již nelze přidávat.
  • 11. 12. 2005 23:21

    Mikulas Patocka (neregistrovaný)
    Uppercase je to, protoze to bylo delano na systemu, co ma
    pouze uppercase pismena.

    Do mplayeru jsem to posilal rozrezany na kousky a
    s lowercase pismenama.

    Oprava useknuteho konce audio souboru je v souboru mplayer.c,
    - if(d_audio->eof) eof = PT_NEXT_ENTRY;
    + if(d_audio->eof) {
    + if (!audio_out->get_delay()) eof = PT_NEXT_ENTRY;
    + else usec_sleep(100000);
    + }
    plus jeste v ao_oss.c: (to zpusobovalo, ze to male soubory
    ani nezacalo prehravat)
    static int play(void* data,int len,int flags){
    - len/=ao_data.outburst;
    - len=write(audio_fd,data,len*ao_data.outburst);
    + /*len/=ao_data.outburst;
    + len=write(audio_fd,data,len*ao_data.outburst);*/
    + len=write(audio_fd,data,len);
    return len;
    }

    ... a dale je v nem jeste oprava spatne A/V synchronizace,
    pokud uz skoncilo dekodovani audia a hraje se pouze
    z bufferu. (ktera je ovsem prorostla do dalsi zmeny ---
    uvolneni CPU pri prepnuti na jinou konzoli) --- Na to mam
    jeste puvodni patch, ktery jsem jim tam posilal --- vypada
    takhle:

    time_frame+=frame_time; // for nosound
    // check for frame-drop:
    current_module="check_framedrop";
    - if(sh_audio && !d_audio->eof){
    + if(sh_audio && (!d_audio->eof || audio_out->get_delay())){
    float delay=playback_speed*audio_out->get_delay();
    float d=delay-sh_audio->delay;
    // we should avoid dropping to many frames in sequence unless we