forked from len0rd/rockbox
Import Vorbis seeking improvements from Tremor SVN.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21841 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
23ea8a53a1
commit
5e2f11ad65
3 changed files with 631 additions and 319 deletions
|
@ -232,6 +232,31 @@ static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){
|
||||||
return(OV_EBADHEADER);
|
return(OV_EBADHEADER);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Is this packet a vorbis ID header? */
|
||||||
|
int vorbis_synthesis_idheader(ogg_packet *op){
|
||||||
|
oggpack_buffer opb;
|
||||||
|
char buffer[6];
|
||||||
|
|
||||||
|
if(op){
|
||||||
|
oggpack_readinit(&opb,op->packet);
|
||||||
|
|
||||||
|
if(!op->b_o_s)
|
||||||
|
return(0); /* Not the initial packet */
|
||||||
|
|
||||||
|
if(oggpack_read(&opb,8) != 1)
|
||||||
|
return 0; /* not an ID header */
|
||||||
|
|
||||||
|
memset(buffer,0,6);
|
||||||
|
_v_readstring(&opb,buffer,6);
|
||||||
|
if(memcmp(buffer,"vorbis",6))
|
||||||
|
return 0; /* not vorbis */
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* The Vorbis header is in three packets; the initial small packet in
|
/* The Vorbis header is in three packets; the initial small packet in
|
||||||
the first page that identifies basic parameters, a second packet
|
the first page that identifies basic parameters, a second packet
|
||||||
with bitstream comments and a third packet that holds the
|
with bitstream comments and a third packet that holds the
|
||||||
|
|
|
@ -166,6 +166,7 @@ extern int vorbis_block_clear(vorbis_block *vb);
|
||||||
extern void vorbis_dsp_clear(vorbis_dsp_state *v);
|
extern void vorbis_dsp_clear(vorbis_dsp_state *v);
|
||||||
|
|
||||||
/* Vorbis PRIMITIVES: synthesis layer *******************************/
|
/* Vorbis PRIMITIVES: synthesis layer *******************************/
|
||||||
|
extern int vorbis_synthesis_idheader(ogg_packet *op);
|
||||||
extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
|
extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
|
||||||
ogg_packet *op);
|
ogg_packet *op);
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue