/* decides between modes, dispatches to the appropriate mapping. */ int vorbis_analysis(vorbis_block *vb, ogg_packet *op){ int ret; vb->glue_bits=0; vb->time_bits=0; vb->floor_bits=0; vb->res_bits=0; /* first things first. Make sure encode is ready */ oggpack_reset(&vb->opb); /* we only have one mapping type (0), and we let the mapping code itself figure out what soft mode to use. This allows easier bitrate management */ if((ret=_mapping_P[0]->forward(vb))) return(ret); if(op){ if(vorbis_bitrate_managed(vb)) /* The app is using a bitmanaged mode... but not using the bitrate management interface. */ return(OV_EINVAL); op->packet=oggpack_get_buffer(&vb->opb); op->bytes=oggpack_bytes(&vb->opb); op->b_o_s=0; op->e_o_s=vb->eofflag; op->granulepos=vb->granulepos; op->packetno=vb->sequence; /* for sake of completeness */ } return(0); }
static PyObject * py_ogg_oggpack_reset(PyObject *self, PyObject *args) { int size; oggpack_buffer * b; PyArg_ParseTuple(args, "s#", &b, &size); oggpack_reset(b); Py_INCREF(Py_None); return Py_None; };
/* * Class: org_tritonus_lowlevel_ogg_Buffer * Method: reset * Signature: ()V */ JNIEXPORT void JNICALL Java_org_tritonus_lowlevel_ogg_Buffer_reset (JNIEnv* env, jobject obj) { oggpack_buffer* handle; if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_ogg_Buffer_reset(): begin\n"); } handle = getHandle(env, obj); oggpack_reset(handle); if (debug_flag) { fprintf(debug_file, "Java_org_tritonus_lowlevel_ogg_Buffer_reset(): end\n"); } }
/* decides between modes, dispatches to the appropriate mapping. */ int vorbis_analysis(vorbis_block *vb,ogg_packet *op){ vorbis_dsp_state *vd=vb->vd; backend_lookup_state *b=vd->backend_state; vorbis_info *vi=vd->vi; codec_setup_info *ci=vi->codec_setup; int type,ret; int mode=0; vb->glue_bits=0; vb->time_bits=0; vb->floor_bits=0; vb->res_bits=0; /* first things first. Make sure encode is ready */ oggpack_reset(&vb->opb); /* Encode the packet type */ oggpack_write(&vb->opb,0,1); /* currently lazy. Short block dispatches to 0, long to 1. */ if(vb->W &&ci->modes>1)mode=1; type=ci->map_type[ci->mode_param[mode]->mapping]; vb->mode=mode; /* Encode frame mode, pre,post windowsize, then dispatch */ oggpack_write(&vb->opb,mode,b->modebits); if(vb->W){ oggpack_write(&vb->opb,vb->lW,1); oggpack_write(&vb->opb,vb->nW,1); /*fprintf(stderr,"*"); }else{ fprintf(stderr,".");*/ } if((ret=_mapping_P[type]->forward(vb,b->mode[mode]))) return(ret); /* set up the packet wrapper */ op->packet=oggpack_get_buffer(&vb->opb); op->bytes=oggpack_bytes(&vb->opb); op->b_o_s=0; op->e_o_s=vb->eofflag; op->granulepos=vb->granulepos; op->packetno=vb->sequence; /* for sake of completeness */ return(0); }
int vorbis_analysis_headerout(vorbis_dsp_state *v, ogg_packet *op_code) { int ret=OV_EIMPL; vorbis_info *vi=v->vi; oggpack_buffer opb; private_state *b=v->backend_state; if(!b){ ret=OV_EFAULT; goto err_out; } oggpack_writeinit(&opb); /* third header packet (modes/codebooks) ****************************/ oggpack_reset(&opb); if(_vorbis_pack_books(&opb,vi))goto err_out; if(b->header2)_ogg_free(b->header2); b->header2=_ogg_malloc(oggpack_bytes(&opb)); memcpy(b->header2,opb.buffer,oggpack_bytes(&opb)); op_code->packet=b->header2; op_code->bytes=oggpack_bytes(&opb); op_code->b_o_s=0; op_code->e_o_s=0; op_code->granulepos=0; oggpack_writeclear(&opb); return(0); err_out: oggpack_writeclear(&opb); memset(op_code,0,sizeof(*op_code)); if(b->header2)_ogg_free(b->header2); b->header2=NULL; return(ret); }
int BURGERCALL vorbis_analysis_headerout(vorbis_dsp_state *v, vorbis_comment *vc, ogg_packet *op, ogg_packet *op_comm, ogg_packet *op_code){ int ret=OV_EIMPL; vorbis_info *vi=v->vi; oggpack_buffer opb; backend_lookup_state *b=static_cast<backend_lookup_state *>(v->backend_state); if(!b){ ret=OV_EFAULT; goto err_out; } /* first header packet **********************************************/ oggpack_writeinit(&opb); if(_vorbis_pack_info(&opb,vi))goto err_out; /* build the packet */ if(b->header)DeallocAPointer(b->header); b->header=static_cast<Word8 *>(AllocAPointer(oggpack_bytes(&opb))); FastMemCpy(b->header,opb.buffer,oggpack_bytes(&opb)); op->packet=b->header; op->bytes=oggpack_bytes(&opb); op->b_o_s=1; op->e_o_s=0; op->granulepos=0; /* second header packet (comments) **********************************/ oggpack_reset(&opb); if(_vorbis_pack_comment(&opb,vc))goto err_out; if(b->header1)DeallocAPointer(b->header1); b->header1=static_cast<Word8 *>(AllocAPointer(oggpack_bytes(&opb))); FastMemCpy(b->header1,opb.buffer,oggpack_bytes(&opb)); op_comm->packet=b->header1; op_comm->bytes=oggpack_bytes(&opb); op_comm->b_o_s=0; op_comm->e_o_s=0; op_comm->granulepos=0; /* third header packet (modes/codebooks) ****************************/ oggpack_reset(&opb); if(_vorbis_pack_books(&opb,vi))goto err_out; if(b->header2)DeallocAPointer(b->header2); b->header2=static_cast<Word8 *>(AllocAPointer(oggpack_bytes(&opb))); FastMemCpy(b->header2,opb.buffer,oggpack_bytes(&opb)); op_code->packet=b->header2; op_code->bytes=oggpack_bytes(&opb); op_code->b_o_s=0; op_code->e_o_s=0; op_code->granulepos=0; oggpack_writeclear(&opb); return(0); err_out: oggpack_writeclear(&opb); FastMemSet(op,0,sizeof(*op)); FastMemSet(op_comm,0,sizeof(*op_comm)); FastMemSet(op_code,0,sizeof(*op_code)); if(b->header)DeallocAPointer(b->header); if(b->header1)DeallocAPointer(b->header1); if(b->header2)DeallocAPointer(b->header2); b->header=NULL; b->header1=NULL; b->header2=NULL; return(ret); }
int vorbis_analysis_headerout(vorbis_dsp_state *v, vorbis_comment *vc, ogg_packet *op, ogg_packet *op_comm, ogg_packet *op_code){ int ret=OV_EIMPL; vorbis_info *vi=v->vi; oggpack_buffer opb; private_state *b=v->backend_state; if(!b){ ret=OV_EFAULT; goto err_out; } /* first header packet **********************************************/ oggpack_writeinit(&opb); if(_vorbis_pack_info(&opb,vi))goto err_out; /* build the packet */ if(b->header)_ogg_free(b->header); b->header=_ogg_malloc(oggpack_bytes(&opb)); memcpy(b->header,opb.buffer,oggpack_bytes(&opb)); op->packet=b->header; op->bytes=oggpack_bytes(&opb); op->b_o_s=1; op->e_o_s=0; op->granulepos=0; op->packetno=0; /* second header packet (comments) **********************************/ oggpack_reset(&opb); if(_vorbis_pack_comment(&opb,vc))goto err_out; if(b->header1)_ogg_free(b->header1); b->header1=_ogg_malloc(oggpack_bytes(&opb)); memcpy(b->header1,opb.buffer,oggpack_bytes(&opb)); op_comm->packet=b->header1; op_comm->bytes=oggpack_bytes(&opb); op_comm->b_o_s=0; op_comm->e_o_s=0; op_comm->granulepos=0; op_comm->packetno=1; /* third header packet (modes/codebooks) ****************************/ oggpack_reset(&opb); if(_vorbis_pack_books(&opb,vi))goto err_out; if(b->header2)_ogg_free(b->header2); b->header2=_ogg_malloc(oggpack_bytes(&opb)); memcpy(b->header2,opb.buffer,oggpack_bytes(&opb)); op_code->packet=b->header2; op_code->bytes=oggpack_bytes(&opb); op_code->b_o_s=0; op_code->e_o_s=0; op_code->granulepos=0; op_code->packetno=2; oggpack_writeclear(&opb); return(0); err_out: memset(op,0,sizeof(*op)); memset(op_comm,0,sizeof(*op_comm)); memset(op_code,0,sizeof(*op_code)); if(b){ oggpack_writeclear(&opb); if(b->header)_ogg_free(b->header); if(b->header1)_ogg_free(b->header1); if(b->header2)_ogg_free(b->header2); b->header=NULL; b->header1=NULL; b->header2=NULL; } return(ret); }
TarkinError tarkin_analysis_headerout (TarkinStream * v, TarkinComment * vc, ogg_packet * op, ogg_packet * op_comm, ogg_packet * op_code) { int ret = -TARKIN_NOT_IMPLEMENTED; TarkinInfo *vi; oggpack_buffer opb; tarkin_header_store *b = &v->headers; vi = v->ti; /* first header packet ********************************************* */ oggpack_writeinit (&opb); if (_tarkin_pack_info (&opb, vi)) goto err_out; /* build the packet */ if (b->header) FREE (b->header); b->header = MALLOC (oggpack_bytes (&opb)); memcpy (b->header, opb.buffer, oggpack_bytes (&opb)); op->packet = b->header; op->bytes = oggpack_bytes (&opb); op->b_o_s = 1; op->e_o_s = 0; op->granulepos = 0; /* second header packet (comments) ********************************* */ oggpack_reset (&opb); if (_tarkin_pack_comment (&opb, vc)) goto err_out; if (b->header1) FREE (b->header1); b->header1 = MALLOC (oggpack_bytes (&opb)); memcpy (b->header1, opb.buffer, oggpack_bytes (&opb)); op_comm->packet = b->header1; op_comm->bytes = oggpack_bytes (&opb); op_comm->b_o_s = 0; op_comm->e_o_s = 0; op_comm->granulepos = 0; /* third header packet (modes/codebooks) *************************** */ oggpack_reset (&opb); if (_tarkin_pack_layer_desc (&opb, vi)) goto err_out; if (b->header2) FREE (b->header2); b->header2 = MALLOC (oggpack_bytes (&opb)); memcpy (b->header2, opb.buffer, oggpack_bytes (&opb)); op_code->packet = b->header2; op_code->bytes = oggpack_bytes (&opb); op_code->b_o_s = 0; op_code->e_o_s = 0; op_code->granulepos = 0; oggpack_writeclear (&opb); return (0); err_out: oggpack_writeclear (&opb); memset (op, 0, sizeof (*op)); memset (op_comm, 0, sizeof (*op_comm)); memset (op_code, 0, sizeof (*op_code)); if (b->header) FREE (b->header); if (b->header1) FREE (b->header1); if (b->header2) FREE (b->header2); b->header = NULL; b->header1 = NULL; b->header2 = NULL; return (ret); }
JNIEXPORT void JNICALL Java_org_echocat_jogg_OggPackBufferJNI_reset (JNIEnv *env, jclass thisClass, jlong handle) { oggpack_reset((oggpack_buffer*) handle); }