Home | Info | Community | Development | myReactOS | Contact Us
Create a handle with preset parameters.
Definition at line 108 of file libmpg123.c.
Referenced by mpg123_new().
{ mpg123_handle *fr = NULL; int err = MPG123_OK; #if (defined CCALIGN) && (defined NEED_ALIGNCHECK) && ((defined DEBUG) || (defined CHECK_ALIGN)) #ifdef CCALIGN double ALIGNED(16) altest[4]; if(((size_t)altest) % 16 != 0) { error("Stack variable is not aligned! Your combination of compiler/library is dangerous!"); *error = MPG123_BAD_ALIGN; return NULL; } #endif #endif if(initialized) fr = (mpg123_handle*) malloc(sizeof(mpg123_handle)); else err = MPG123_NOT_INITIALIZED; if(fr != NULL) { frame_init_par(fr, mp); debug("cpu opt setting"); if(frame_cpu_opt(fr, decoder) != 1) { err = MPG123_BAD_DECODER; frame_exit(fr); free(fr); fr = NULL; } } if(fr != NULL) { /* Cleanup that mess! ... use mpg123_decoder / decode_update! */ if(frame_outbuffer(fr) != 0) { err = MPG123_NO_BUFFERS; frame_exit(fr); free(fr); fr = NULL; } else { /* I smell cleanup here... with get_next_frame() */ /* if(decode_update(fr) != 0) { err = fr->err != MPG123_OK ? fr->err : MPG123_BAD_DECODER; frame_exit(fr); free(fr); fr = NULL; } else */ fr->decoder_change = 1; } } else if(err == MPG123_OK) err = MPG123_OUT_OF_MEM; if(error != NULL) *error = err; return fr; }