int main(int argc, char *argv[]){ PaStream *stream; sharedBuffer = (Packet *)malloc(sizeof(Packet) * BUFFER_SIZE); processArgs(argc, argv); if (!startAudio(stream, argv[1])){ exit(1); } // TODO - get rid of glut stuff and set up context manually setupGlut(argc, argv); GLenum err = glewInit(); if (GLEW_OK != err){ fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err)); exit(1); } SetupRC(); glutMainLoop(); free(sharedBuffer); endAudio(stream); exit(0); }
//_______________________________________________ uint8_t ADM_ogmWrite::save(const char *name) { uint8_t *bufr; uint32_t len,flags; uint8_t error=0; _fd=fopen(name,"wb"); if(!_fd) { GUI_Error_HIG(QT_TR_NOOP("File error"), QT_TR_NOOP("Cannot open \"%s\" for writing."), name); return 0; } videoStream=new ogm_page(_fd,1); encoding_gui=new DIA_encoding(25000); encoding_gui->setContainer("OGM"); //______________ Write headers..._____________________ if(!initVideo(name)) { fclose(_fd); _fd=NULL; GUI_Error_HIG(QT_TR_NOOP("Could not initialize video"), NULL); return 0; } if(!initAudio()) { fclose(_fd); _fd=NULL; GUI_Error_HIG(QT_TR_NOOP("Could not initialize audio"), NULL); return 0; } encoding_gui->setFps(_fps1000); encoding_gui->reset(); // ___________________Then body_______________________ uint32_t j=0; for( j=0;j<_togo && !error;j++) { if(!encoding_gui->isAlive()) { error=1; continue; } if(!writeVideo(j)) error=1; if(!writeAudio(j)) error=1; } if(abs(j-_togo)<3 && error) error=0; // might be caused by late B frame delete encoding_gui; encoding_gui=NULL; //________________ Flush______________________ videoStream->flush(); endAudio(); //deleteAudioFilters(); // ____________Close____________________ fclose(_fd); _fd=NULL; return !error; }