Lines Matching refs:vc

61 void vorbis_comment_init(vorbis_comment *vc){
62 memset(vc,0,sizeof(*vc));
65 void vorbis_comment_add(vorbis_comment *vc,const char *comment){
66 vc->user_comments=_ogg_realloc(vc->user_comments,
67 (vc->comments+2)*sizeof(*vc->user_comments));
68 vc->comment_lengths=_ogg_realloc(vc->comment_lengths,
69 (vc->comments+2)*sizeof(*vc->comment_lengths));
70 vc->comment_lengths[vc->comments]=strlen(comment);
71 vc->user_comments[vc->comments]=_ogg_malloc(vc->comment_lengths[vc->comments]+1);
72 strcpy(vc->user_comments[vc->comments], comment);
73 vc->comments++;
74 vc->user_comments[vc->comments]=NULL;
77 void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents){
82 vorbis_comment_add(vc, comment);
97 char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count){
106 for(i=0;i<vc->comments;i++){
107 if(!tagcompare(vc->user_comments[i], fulltag, taglen)){
110 return vc->user_comments[i] + taglen;
118 int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){
125 for(i=0;i<vc->comments;i++){
126 if(!tagcompare(vc->user_comments[i], fulltag, taglen))
133 void vorbis_comment_clear(vorbis_comment *vc){
134 if(vc){
136 if(vc->user_comments){
137 for(i=0;i<vc->comments;i++)
138 if(vc->user_comments[i])_ogg_free(vc->user_comments[i]);
139 _ogg_free(vc->user_comments);
141 if(vc->comment_lengths)_ogg_free(vc->comment_lengths);
142 if(vc->vendor)_ogg_free(vc->vendor);
143 memset(vc,0,sizeof(*vc));
240 static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){
245 vc->vendor=_ogg_calloc(vendorlen+1,1);
246 _v_readstring(opb,vc->vendor,vendorlen);
250 vc->comments=i;
251 vc->user_comments=_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments));
252 vc->comment_lengths=_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths));
254 for(i=0;i<vc->comments;i++){
258 vc->comment_lengths[i]=len;
259 vc->user_comments[i]=_ogg_calloc(len+1,1);
260 _v_readstring(opb,vc->user_comments[i],len);
266 vorbis_comment_clear(vc);
379 int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){
415 return(_vorbis_unpack_comment(vc,&opb));
418 if(vi->rate==0 || vc->vendor==NULL){
461 static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){
474 oggpack_write(opb,vc->comments,32);
475 if(vc->comments){
477 for(i=0;i<vc->comments;i++){
478 if(vc->user_comments[i]){
479 oggpack_write(opb,vc->comment_lengths[i],32);
480 _v_writestring(opb,vc->user_comments[i], vc->comment_lengths[i]);
547 int vorbis_commentheader_out(vorbis_comment *vc,
553 if(_vorbis_pack_comment(&opb,vc)) return OV_EIMPL;
568 vorbis_comment *vc,
601 if(_vorbis_pack_comment(&opb,vc))goto err_out;