def parse_buf
			bs=BitStream.new(@buf)
			table_id                  =bs.read 8 #uimsbf
			section_syntax_indicator  =bs.read 1 #bslbf
			reserved_future_use       =bs.read 1 #bslbf
			reserved                  =bs.read 2 #bslbf
			section_length            =bs.read 12 #uimsbf
			transport_stream_id       =bs.read 16 #uimsbf
			reserved                  =bs.read 2 #bslbf
			version_number            =bs.read 5 #uimsbf
			current_next_indicator    =bs.read 1 #bslbf
			section_number            =bs.read 8 #uimsbf
			last_section_number       =bs.read 8 #uimsbf
			count=(section_length-5-4)/4
			count.times do
				program_number          =bs.read 16 #uimsbf
				reserved                =bs.read 3 #bslbf
				if(program_number == 0)
					network_PID           =bs.read 13 #uimsbf
				else
					program_map_PID       =bs.read 13 #uimsbf
				end
			end
			cCRC_32  =bs.read 32 #rpchof
			nil
		end
def parse_buf
			bs=BitStream.new(@buf)
			table_id                  =bs.read 8 #uimsbf
			section_syntax_indicator  =bs.read 1 #bslbf
			reserved_future_use       =bs.read 1 #bslbf
			reserved                  =bs.read 2 #bslbf
			section_length            =bs.read 12 #uimsbf
			transport_stream_id       =bs.read 16 #uimsbf
			reserved                  =bs.read 2 #bslbf
			version_number            =bs.read 5 #uimsbf
			current_next_indicator    =bs.read 1 #bslbf
			section_number            =bs.read 8 #uimsbf
			last_section_number       =bs.read 8 #uimsbf
			count=(section_length-5-4)/4
			count.times do
				program_number          =bs.read 16 #uimsbf
				reserved                =bs.read 3 #bslbf
				if(program_number == 0)
					network_PID           =bs.read 13 #uimsbf
				else
					program_map_PID       =bs.read 13 #uimsbf
				end
			end
			cCRC_32  =bs.read 32 #rpchof
			nil
		end
< 1Kbyte