csvorbis.Info.clear C# (CSharp) Method

clear() public method

public clear ( ) : void
return void
        public void clear()
        {
            for(int i=0;i<modes;i++){ mode_param[i]=null; }
            mode_param=null;

            for(int i=0;i<maps;i++)
            { // unpack does the range checking
                FuncMapping.mapping_P[map_type[i]].free_info(map_param[i]);
            }
            map_param=null;

            for(int i=0;i<times;i++)
            { // unpack does the range checking
                FuncTime.time_P[time_type[i]].free_info(time_param[i]);
            }
            time_param=null;

            for(int i=0;i<floors;i++)
            { // unpack does the range checking
                FuncFloor.floor_P[floor_type[i]].free_info(floor_param[i]);
            }
            floor_param=null;

            for(int i=0;i<residues;i++)
            { // unpack does the range checking
                FuncResidue.residue_P[residue_type[i]].free_info(residue_param[i]);
            }
            residue_param=null;

            // the static codebooks *are* freed if you call info_clear, because
            // decode side does alloc a 'static' codebook. Calling clear on the
            // full codebook does not clear the static codebook (that's our
            // responsibility)
            for(int i=0;i<books;i++)
            {
                // just in case the decoder pre-cleared to save space
                if(book_param[i]!=null)
                {
                    book_param[i].clear();
                    book_param[i]=null;
                }
            }
            //if(vi->book_param)free(vi->book_param);
            book_param=null;

            for(int i=0;i<psys;i++)
            {
                psy_param[i].free();
            }
            //if(vi->psy_param)free(vi->psy_param);
            //memset(vi,0,sizeof(vorbis_info));
        }

Usage Example

		// uses the local ogg_stream storage in vf; this is important for
		// non-streaming input sources
        public int fetch_headers(Info vi, Comment vc, int[] serialno, Page og_ptr, VorbisFileInstance instance)
		{
			//System.err.println("fetch_headers");
			Page og=new Page();
			Packet op=new Packet();
			int ret;

			if(og_ptr==null)
			{
                ret = get_next_page(og, CHUNKSIZE, instance);
				if(ret==OV_EREAD)return OV_EREAD;
				if(ret<0) return OV_ENOTVORBIS;
				og_ptr=og;
			}
  
			if(serialno!=null)serialno[0]=og_ptr.serialno();

			instance.os.init(og_ptr.serialno());
  
			// extract the initial header from the first page and verify that the
			// Ogg bitstream is in fact Vorbis data
  
			vi.init();
			vc.init();
  
			int i=0;
			while(i<3)
			{
                instance.os.pagein(og_ptr);
				while(i<3)
				{
                    int result = instance.os.packetout(op);
					if(result==0)break;
					if(result==-1)
					{
						Console.Error.WriteLine("Corrupt header in logical bitstream.");
						//goto bail_header;
						vi.clear();
						vc.clear();
                        instance.os.clear();
						return -1;
					}
					if(vi.synthesis_headerin(vc, op)!=0)
					{
						Console.Error.WriteLine("Illegal header in logical bitstream.");
						//goto bail_header;
						vi.clear();
						vc.clear();
                        instance.os.clear();
						return -1;
					}
					i++;
				}
				if(i<3)
					if(get_next_page(og_ptr, 1, instance)<0)
					{
						Console.Error.WriteLine("Missing header in logical bitstream.");
						//goto bail_header;
						vi.clear();
						vc.clear();
                        instance.os.clear();
						return -1;
					}
			}
			return 0; 
		}
All Usage Examples Of csvorbis.Info::clear