page.java

来自「java ogg player library. for play back o」· Java 代码 · 共 974 行 · 第 1/2 页

JAVA
974
字号
    }    // page with the 255 segment limit    {      int[] packets={0,10,10,10,10,10,10,10,10,		     10,10,10,10,10,10,10,10,		     10,10,10,10,10,10,10,10,		     10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,50,-1};      int[] head1={0x4f,0x67,0x67,0x53,0,0x02,		   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,0,0,0,0,		   0xff,0x7b,0x23,0x17,		   1,		   0};      int[] head2={0x4f,0x67,0x67,0x53,0,0x00,		   0x07,0xfc,0x03,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,1,0,0,0,		   0xed,0x2a,0x2e,0xa7,		   255,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10,10,		   10,10,10,10,10,10,10};      int[] head3={0x4f,0x67,0x67,0x53,0,0x04,		   0x07,0x00,0x04,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,2,0,0,0,		   0x6c,0x3b,0x82,0x3d,		   1,		   50};      int[][] headret={head1,head2,head3,null};      System.err.print("testing max packet segments... ");      test_pack(packets,headret);    }    {      // packet that overspans over an entire page      int[] packets={0,100,9000,259,255,-1};      int[] head1={0x4f,0x67,0x67,0x53,0,0x02,		   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,0,0,0,0,		   0xff,0x7b,0x23,0x17,		   1,		   0};      int[] head2={0x4f,0x67,0x67,0x53,0,0x00,		   0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,1,0,0,0,		   0x3c,0xd9,0x4d,0x3f,		   17,		   100,255,255,255,255,255,255,255,255,		   255,255,255,255,255,255,255,255};      int[] head3={0x4f,0x67,0x67,0x53,0,0x01,		   0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,2,0,0,0,		   0xbd,0xd5,0xb5,0x8b,		   17,		   255,255,255,255,255,255,255,255,		   255,255,255,255,255,255,255,255,255};      int[] head4={0x4f,0x67,0x67,0x53,0,0x05,		   0x07,0x10,0x00,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,3,0,0,0,		   0xef,0xdd,0x88,0xde,		   7,		   255,255,75,255,4,255,0};      int[][] headret={head1,head2,head3,head4,null};      System.err.print("testing very large packets... ");      test_pack(packets,headret);    }    {      // term only page.  why not?      int[] packets={0,100,4080,-1};      int[] head1={0x4f,0x67,0x67,0x53,0,0x02,		   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,0,0,0,0,		   0xff,0x7b,0x23,0x17,		   1,		   0};      int[] head2={0x4f,0x67,0x67,0x53,0,0x00,		   0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,1,0,0,0,		   0x3c,0xd9,0x4d,0x3f,		   17,		   100,255,255,255,255,255,255,255,255,		   255,255,255,255,255,255,255,255};      int[] head3={0x4f,0x67,0x67,0x53,0,0x05,		   0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00,		   0x01,0x02,0x03,0x04,2,0,0,0,		   0xd4,0xe0,0x60,0xe5,		   1,0};      int[][] headret={head1,head2,head3,null};      System.err.print("testing zero data page (1 nil packet)... ");      test_pack(packets,headret);    }    {      // build a bunch of pages for testing      byte[] data=new byte[1024*1024];      int[] pl={0,100,4079,2956,2057,76,34,912,0,234,1000,1000,1000,300,-1};      int inptr=0;      Page[] og=new Page[5];      for(int i=0; i<5; i++){	og[i]=new Page();      }          os_en.reset();      for(int i=0;pl[i]!=-1;i++){	Packet op=new Packet();	int len=pl[i];      	op.packet_base=data;	op.packet=inptr;	op.bytes=len;	op.e_o_s=(pl[i+1]<0?1:0);	op.granulepos=(i+1)*1000;		for(int j=0;j<len;j++)data[inptr++]=(byte)(i+j);	os_en.packetin(op);      }    //    free(data);      // retrieve finished pages      for(int i=0;i<5;i++){	if(os_en.pageout(og[i])==0){	  System.err.print("Too few pages output building sync tests!\n");	  System.exit(1);	}	og[i].copy_page();      }      // Test lost pages on pagein/packetout: no rollback      {	Page temp=new Page();	Packet test=new Packet();	System.err.print("Testing loss of pages... ");	oy.reset();	os_de.reset();	for(int i=0;i<5;i++){	  int index=oy.buffer(og[i].header_len);	  System.arraycopy(og[i].header_base, og[i].header,			   oy.data, index, og[i].header_len);	  oy.wrote(og[i].header_len);	  index=oy.buffer(og[i].body_len);	  System.arraycopy(og[i].body_base, og[i].body,			   oy.data, index, og[i].body_len);	  oy.wrote(og[i].body_len);	}	oy.pageout(temp);	os_de.pagein(temp);	oy.pageout(temp);	os_de.pagein(temp);	oy.pageout(temp);        // skip	oy.pageout(temp);	os_de.pagein(temp);        // do we get the expected results/packets?      	if(os_de.packetout(test)!=1)error();	test.checkpacket(0,0,0);	if(os_de.packetout(test)!=1)error();	test.checkpacket(100,1,-1);	if(os_de.packetout(test)!=1)error();	test.checkpacket(4079,2,3000);	if(os_de.packetout(test)!=-1){	  System.err.println("Error: loss of page did not return error");	  System.exit(1);	}	if(os_de.packetout(test)!=1)error();	test.checkpacket(76,5,-1);	if(os_de.packetout(test)!=1)error();	test.checkpacket(34,6,-1);	System.err.println("ok.");      }      // Test lost pages on pagein/packetout: rollback with continuation      {	Page temp=new Page();	Packet test=new Packet();	System.err.print("Testing loss of pages (rollback required)... ");	oy.reset();	os_de.reset();	for(int i=0;i<5;i++){	  int index=oy.buffer(og[i].header_len);	  System.arraycopy(og[i].header_base, og[i].header,			   oy.data, index, og[i].header_len);	  oy.wrote(og[i].header_len);	  index=oy.buffer(og[i].body_len);	  System.arraycopy(og[i].body_base, og[i].body,			   oy.data, index, og[i].body_len);	  oy.wrote(og[i].body_len);	}	oy.pageout(temp);	os_de.pagein(temp);	oy.pageout(temp);	os_de.pagein(temp);	oy.pageout(temp);	os_de.pagein(temp);	oy.pageout(temp);        // skip	oy.pageout(temp);	os_de.pagein(temp);        // do we get the expected results/packets?      	if(os_de.packetout(test)!=1)error();	test.checkpacket(0,0,0);	if(os_de.packetout(test)!=1)error();	test.checkpacket(100,1,-1);	if(os_de.packetout(test)!=1)error();	test.checkpacket(4079,2,3000);	if(os_de.packetout(test)!=1)error();	test.checkpacket(2956,3,4000);	if(os_de.packetout(test)!=-1){	  System.err.println("Error: loss of page did not return error");	  System.exit(1);	}	if(os_de.packetout(test)!=1)error();	test.checkpacket(300,13,14000);	System.err.println("ok.");      }      // the rest only test sync      {    	Page og_de=new Page();        // Test fractional page inputs: incomplete capture    	System.err.print("Testing sync on partial inputs... ");    	oy.reset();    	int index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header,     			 oy.data, index, 3);    	oy.wrote(3);    	if(oy.pageout(og_de)>0)error();              // Test fractional page inputs: incomplete fixed header    	index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header+3,     			 oy.data, index, 20);        	oy.wrote(20);    	if(oy.pageout(og_de)>0)error();            // Test fractional page inputs: incomplete header    	index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header+23,     			 oy.data, index, 5);    	oy.wrote(5);    	if(oy.pageout(og_de)>0)error();            // Test fractional page inputs: incomplete body    	index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header+28,     			 oy.data, index, og[1].header_len-28);    	oy.wrote(og[1].header_len-28);    	if(oy.pageout(og_de)>0)error();        	index=oy.buffer(og[1].body_len);    	System.arraycopy(og[1].body_base, og[1].body,    			 oy.data, index, 1000);    	oy.wrote(1000);    	if(oy.pageout(og_de)>0)error();    	index=oy.buffer(og[1].body_len);    	System.arraycopy(og[1].body_base, og[1].body+1000,    			 oy.data, index, og[1].body_len-1000);    	oy.wrote(og[1].body_len-1000);    	if(oy.pageout(og_de)<=0)error();    	System.err.println("ok.");      }      // Test fractional page inputs: page + incomplete capture      {    	Page og_de=new Page();    	System.err.print("Testing sync on 1+partial inputs... ");    	oy.reset();     	int index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header,    			 oy.data, index, og[1].header_len);    	oy.wrote(og[1].header_len);    	index=oy.buffer(og[1].body_len);    	System.arraycopy(og[1].body_base, og[1].body,    			 oy.data, index, og[1].body_len);    	oy.wrote(og[1].body_len);    	index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header,    			 oy.data, index, 20);    	oy.wrote(20);    	if(oy.pageout(og_de)<=0)error();    	if(oy.pageout(og_de)>0)error();    	index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header+20,    			 oy.data, index, og[1].header_len-20);    	oy.wrote(og[1].header_len-20);    	index=oy.buffer(og[1].body_len);    	System.arraycopy(og[1].body_base, og[1].body,    			 oy.data, index, og[1].body_len);    	         	oy.wrote(og[1].body_len);    	if(oy.pageout(og_de)<=0)error();        	System.err.println("ok.");      }//    //    //    //    //    //    //    //    //          // Test recapture: garbage + page      {    	Page og_de=new Page();    	System.err.print("Testing search for capture... ");    	oy.reset();               // 'garbage'    	int index=oy.buffer(og[1].body_len);    	System.arraycopy(og[1].body_base, og[1].body,    			 oy.data, index, og[1].body_len);    	oy.wrote(og[1].body_len);    	index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header,    			 oy.data, index, og[1].header_len);    	oy.wrote(og[1].header_len);    	index=oy.buffer(og[1].body_len);    	System.arraycopy(og[1].body_base, og[1].body,    			 oy.data, index, og[1].body_len);    	oy.wrote(og[1].body_len);    	index=oy.buffer(og[2].header_len);    	System.arraycopy(og[2].header_base, og[2].header,    			 oy.data, index, 20);    	oy.wrote(20);    	if(oy.pageout(og_de)>0)error();    	if(oy.pageout(og_de)<=0)error();    	if(oy.pageout(og_de)>0)error();    	index=oy.buffer(og[2].header_len);    	System.arraycopy(og[2].header_base, og[2].header+20,    			 oy.data, index, og[2].header_len-20);    	oy.wrote(og[2].header_len-20);    	index=oy.buffer(og[2].body_len);    	System.arraycopy(og[2].body_base, og[2].body,    			 oy.data, index, og[2].body_len);    	oy.wrote(og[2].body_len);    	if(oy.pageout(og_de)<=0)error();    	System.err.println("ok.");      }      // Test recapture: page + garbage + page      {    	Page og_de=new Page();    	System.err.print("Testing recapture... ");    	oy.reset();     	int index=oy.buffer(og[1].header_len);    	System.arraycopy(og[1].header_base, og[1].header,    			 oy.data, index, og[1].header_len);    	oy.wrote(og[1].header_len);    	index=oy.buffer(og[1].body_len);    	System.arraycopy(og[1].body_base, og[1].body,    			 oy.data, index, og[1].body_len);    	oy.wrote(og[1].body_len);    	index=oy.buffer(og[2].header_len);    	System.arraycopy(og[2].header_base, og[2].header,    			 oy.data, index, og[2].header_len);    	oy.wrote(og[2].header_len);    	index=oy.buffer(og[2].header_len);    	System.arraycopy(og[2].header_base, og[2].header,    			 oy.data, index, og[2].header_len);    	oy.wrote(og[2].header_len);    	if(oy.pageout(og_de)<=0)error();    	index=oy.buffer(og[2].body_len);    	System.arraycopy(og[2].body_base, og[2].body,    			 oy.data, index, og[2].body_len-5);    	oy.wrote(og[2].body_len-5);    	index=oy.buffer(og[3].header_len);    	System.arraycopy(og[3].header_base, og[3].header,    			 oy.data, index, og[3].header_len);    	oy.wrote(og[3].header_len);    	index=oy.buffer(og[3].body_len);    	System.arraycopy(og[3].body_base, og[3].body,    			 oy.data, index, og[3].body_len);    	oy.wrote(og[3].body_len);    	if(oy.pageout(og_de)>0)error();    	if(oy.pageout(og_de)<=0)error();    	System.err.println("ok.");      }    }        //return(0);  }  */}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?