MediaPortal Forums HTPC/MediaCenter

Go Back   MediaPortal Forum » Archive » Archive » untested 'Nightly Builds' of TV-Server



Reply
 
LinkBack Thread Tools Display Modes
Old 2008-02-14, 04:14   #1 (permalink)
Worlds greatest bot!
 
MediaPortal-Bot's Avatar
 
Join Date: Mar 2007
Posts: 888
Thanks: 0
Thanked 54 Times in 52 Posts

Country:


Default TVEngine3 Snapshot: 02-14-2008 05-07h Revision 17388

General Infos:

Please visit our Wiki-Guide before you try out this engine.
We also provide some tutorial videos which show how to install and configure the TV-Server and TV-Client.

MediaPortal TVEngine3 Capabilities:

- seperate front/backend
- supports multiple frontends
- supports multiple backends (master/slave servers)
- analog/atsc/dvb-c/dvb-s/dvb-t support
- recording to mpeg-2 program stream (.mpg)
- mpeg-2 transport stream timeshifting
- multi tuner support of course
- epg / mhw grabbing right from the DVB stream
- network streaming via rtsp
- teletext grabbing

- ci / cam support for firedtv, twinhan and technotrend
- placeshifting
- TV Movie Clickfinder EPG import


MediaPortal TVEngine3 Requirements:

- latest MediaPortal SVN-Build Wiki-Guide --> Download
- Microsoft SQL Server 2005 Express Edition ---> Download
- additional (but recommened) SQL Server Management Studio Express ---> Download



MediaPortal-Bot is offline   Reply With Quote
Old 2008-02-14, 04:14   #2 (permalink)
Worlds greatest bot!
 
MediaPortal-Bot's Avatar
 
Join Date: Mar 2007
Posts: 888
Thanks: 0
Thanked 54 Times in 52 Posts

Country:


Default

Changes since last snapshot:

Quote:
------------------------------------------------------------------------
r17387 | gemx | 2008-02-13 10:31:47 +0100 (Mi, 13 Feb 2008) | 1 line

Fixed pmtLength>188 in CDiskRecorder::WriteFakePMT (now a second packet gets written with the rest of the section)
------------------------------------------------------------------------

dev note

Quote:
-no dev note for this snapshot





This thread is open to everyone to provide feedback for this particular snapshot.
If you found or confirm a bug please still open a single thread with full details in the Bugsection[/font][/size]
MediaPortal-Bot is offline   Reply With Quote
Old 2008-02-14, 09:37   #3 (permalink)
Portal Developer
 
Join Date: Dec 2007
Posts: 314
Thanks: 0
Thanked 65 Times in 32 Posts

Country:

My System

Default

Previously I was using the 17150.

I've tested the 17383, it's not working with all TV channels with PMT greater than 188 bytes ( may be due to Cyberlink codec, seems a little bit better with MPV, but not sure ).

I've now loaded this new build that should fix the problem, and now TvService crash on all these channels !!

Memory used by TvSevice normally around 25Mb increase suddenly to more than 100Mb and disappear from the task manager. ( No crash window, no blue screen..... )

I attach the Tv and TsWriter log files

Another thing concerning MPA decoder ( but I don't wher it comes from ), single audio channel MPEG2 ( mono ) is not working and freezes the video !

Regards.

Ambass.
Ambass is offline   Reply With Quote
Old 2008-02-14, 11:09   #4 (permalink)
Portal Member
 
Join Date: Nov 2007
Posts: 75
Thanks: 0
Thanked 1 Time in 1 Post

Country:


Default

Anyone got any screenshots of a 16:9 skin runnig PIP or PAP with TVe3??
mascot is offline   Reply With Quote
Old 2008-02-14, 11:14   #5 (permalink)
Super Moderator
 
Paranoid Delusion's Avatar
 
Join Date: Jun 2005
Location: Cheshire UK
Posts: 8,639
Thanks: 226
Thanked 387 Times in 349 Posts

Country:

My System

Default

Quote:
Anyone got any screenshots of a 16:9 skin runnig PIP or PAP with TVe3??
MediaPortal does not support either of these, However MP2 does when it is released.
__________________
Ray

Check your codecs are fine with Filmerit.
How to post your logs
Paranoid Delusion is offline   Reply With Quote
Old 2008-02-14, 12:13   #6 (permalink)
Portal Developer
 
Join Date: Dec 2007
Posts: 314
Thanks: 0
Thanked 65 Times in 32 Posts

Country:

My System

Default

Hi,

It seems a part of the problem is in the DiskRecorder.cpp.
On CANALSAT in france, we receive PMT up to 431 bytes ( may be more ), and the function below will crash on the red lines.

I've attached a log from 17383 where PMT error size appear.


void CDiskRecorder::WriteFakePMT()
{
int program_info_length=0;
int sectionLenght=9+2*5+5;

int current_next_indicator=1;
int section_number = 0;
int last_section_number = 0;
int transportId=DR_FAKE_TRANSPORT_ID;

int tableId=2;
int pid=DR_FAKE_PMT_PID;
int PayLoadUnitStart=1;
int AdaptionControl=1;

m_iPmtContinuityCounter++;
if (m_iPmtContinuityCounter>0xf) m_iPmtContinuityCounter=0;

BYTE pmt[256];
memset(pmt,0xff,sizeof(pmt));
pmt[0]=0x47;
pmt[1]=(PayLoadUnitStart<<6) + ( (pid>>8) & 0x1f);
pmt[2]=(pid&0xff);
pmt[3]=(AdaptionControl<<4) +m_iPmtContinuityCounter;
pmt[4]=0;
byte* pmtPtr=&pmt[4];
pmt[5]=tableId;//table id
pmt[6]=0;
pmt[7]=0;
pmt[8]=(DR_FAKE_SERVICE_ID>>8)&0xff;
pmt[9]=(DR_FAKE_SERVICE_ID)&0xff;
pmt[10]=((m_iPmtVersion&0x1f)<<1)+current_next_indicator;
pmt[11]=section_number;
pmt[12]=last_section_number;
pmt[13]=(DR_FAKE_PCR_PID>>8)&0xff;
pmt[14]=(DR_FAKE_PCR_PID)&0xff;
pmt[15]=(program_info_length>>8)&0xff;
pmt[16]=(program_info_length)&0xff;

int pmtLength=9+4;
int offset=17;
ivecPidInfo2 it=m_vecPids.begin();
while (it!=m_vecPids.end())
{
PidInfo2 info=*it;
pmt[offset++]=info.streamType;
pmt[offset++]=0xe0+((info.fakePid>>8)&0x1F); // reserved; elementary_pid (high)
pmt[offset++]=(info.fakePid)&0xff; // elementary_pid (low)
pmt[offset++]=0; // es_length (high)
pmt[offset++]=0; // es_length (low)
pmtLength+=5;
if (info.rawDescriptorData!=NULL)
{
pmt[offset-1]=info.rawDescriptorSize;
memcpy(&pmt[offset],info.rawDescriptorData,info.rawDescriptorSize);
offset += info.rawDescriptorSize;
pmtLength += info.rawDescriptorSize;
}
++it;
}
unsigned section_length = (pmtLength);
pmt[6]=0xb0+((section_length>>8)&0xf);
pmt[7]=section_length&0xff;

DWORD crc= crc32((char*)&pmt[5],offset-5);
pmt[offset++]=(byte)((crc>>24)&0xff);
pmt[offset++]=(byte)((crc>>16)&0xff);
pmt[offset++]=(byte)((crc>>8)&0xff);
pmt[offset++]=(byte)((crc)&0xff);

//if(pmtLength > 188) WriteLog("ERROR: Pmt length : %i ( >188 )!!!!",pmtLength);

Write(pmt,188);
if (pmtLength>188)
{
int newLength=pmtLength-188;
byte packet[188];
memset(packet,0xff,188);
packet[0]=0x47;
packet[1]=(pid>>8) & 0x1f;
packet[2]=(pid&0xff);
m_iPmtContinuityCounter++;
if (m_iPmtContinuityCounter>0xf) m_iPmtContinuityCounter=0;
packet[3]=(AdaptionControl<<4) +m_iPmtContinuityCounter;
memcpy(&packet[4],&pmt[188],newLength);
Write(packet,188);
}
}


Regards.

Ambass.
Ambass is offline   Reply With Quote
Old 2008-02-14, 14:08   #7 (permalink)
Portal Member
 
Join Date: Nov 2007
Posts: 75
Thanks: 0
Thanked 1 Time in 1 Post

Country:


Default

Quote:
Originally Posted by Paranoid Delusion View Post
Quote:
Anyone got any screenshots of a 16:9 skin runnig PIP or PAP with TVe3??
MediaPortal does not support either of these, However MP2 does when it is released.
Ok, too bad. When is MP2 released?
mascot is offline   Reply With Quote
Old 2008-02-14, 15:09   #8 (permalink)
Portal Developer
 
gemx's Avatar
 
Join Date: Oct 2006
Age: 33
Posts: 1,386
Thanks: 28
Thanked 220 Times in 117 Posts

Country:

My System

Default

Quote:
Originally Posted by Ambass View Post
Hi,

It seems a part of the problem is in the DiskRecorder.cpp.
On CANALSAT in france, we receive PMT up to 431 bytes ( may be more ), and the function below will crash on the red lines.
...

Regards.

Ambass.
Thanks. Fixed in next snapshot
__________________
ACCENT HT-100 | 2x16 VFD | AMM Athlon 64 3500+ | Win XP SP3 | Skystar 2 DVB-S PCI | TT connect S2-3600
gemx is offline   Reply With Quote
Old 2008-02-14, 16:12   #9 (permalink)
Portal Member
 
Join Date: Apr 2006
Location: San Sebastian
Posts: 484
Thanks: 11
Thanked 24 Times in 14 Posts

My System

Default

HI

I got a TVserver crash...
Tswriter log
14-02-2008 13:51:14.125 DiskRecorder[TIMESHIFT] paused=yes
14-02-2008 13:51:14.125 epg: reset
14-02-2008 13:51:14.125 epg:ResetEPG()
14-02-2008 13:51:14.125 mhw reset
14-02-2008 13:51:15.156 pmtgrabber: set callback:b70014
14-02-2008 13:51:15.156 pmtgrabber: grab pmt:67 sid:b4
14-02-2008 13:51:15.343 service_id=180
14-02-2008 13:51:15.343 pmtgrabber: got pmt 67 sid:b4
14-02-2008 13:51:15.343 pmtgrabber: got pmt version:2 -1
14-02-2008 13:51:15.343 pmtgrabber: do calback
14-02-2008 13:51:15.343 analyzer: set video pid:cb
14-02-2008 13:51:15.343 analyzer: reset
14-02-2008 13:51:15.343 analyzer: set audio pid:12f
14-02-2008 13:51:15.343 analyzer: reset
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] paused=yes
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] Received from TvService: pmt pid:0x67 serviceId: 0xb4 pmtlength:284
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] Old pids cleared
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] got pmt - tableid: 0x2 section_length: 284 sid: 0xb4
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] PMT parsed - Pid 0x67 ServiceId 0xb4 stream count: 12
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] pcr pid:0xcb
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] SetPcrPid clear old PIDs
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] determine new start pcr
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] add video stream pid: 0xcb fake pid: 0x30 stream type: 0x2 logical type: 0x2 descriptor length: 16
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] add audio stream pid: 0x12f fake pid: 0x40 stream type: 0x4 logical type: 0x4 descriptor length: 17
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] add audio stream pid: 0x132 fake pid: 0x41 stream type: 0x4 logical type: 0x4 descriptor length: 17
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] add teletext stream pid: 0x2bf fake pid: 0x69 stream type: 0x6 logical type: 0x56 descriptor length: 20
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] stream rejected - pid: 0x8fe stream type: 0x5 logical type: 0x5 descriptor length: 5
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] stream rejected - pid: 0x8ff stream type: 0xb logical type: 0xb descriptor length: 51
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] stream rejected - pid: 0x900 stream type: 0x5 logical type: 0x5 descriptor length: 5
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] stream rejected - pid: 0x901 stream type: 0xb logical type: 0xb descriptor length: 49
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] stream rejected - pid: 0x902 stream type: 0x5 logical type: 0x5 descriptor length: 5
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] stream rejected - pid: 0x908 stream type: 0x5 logical type: 0x5 descriptor length: 5
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] stream rejected - pid: 0x912 stream type: 0x5 logical type: 0x5 descriptor length: 5
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] stream rejected - pid: 0x91c stream type: 0x5 logical type: 0x5 descriptor length: 5
14-02-2008 13:51:15.343 DiskRecorder[TIMESHIFT] paused=no
14-02-2008 13:51:15.390 DiskRecorder[TIMESHIFT] start of audio detected
14-02-2008 13:51:15.437 DiskRecorder[TIMESHIFT] start of audio detected
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] start of video detected
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] Pcr start :0 days 04:29:23 268
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] Pcr high :0 days 04:30:39 220
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] Pcr duration :0 days 00:01:15 951
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] Pcr current :0 days 09:27:48 112
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] Pcr newstart :0 days 09:26:32 160
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] Ignoring first PCR jump after channel change
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] PCR: 0 days 00:01:15 951 new: 0 days 09:27:48 112 prev: 0 days 09:26:32 160 start: 0 days 09:26:32 160 diff: 0 days 00:01:15 951 hole: 0 days 00:00:00 0 holeB: 0 days 00:00:00 0 - pid:cb
14-02-2008 13:51:15.703 DiskRecorder[TIMESHIFT] clear TS packet queue
14-02-2008 13:51:47.484 DiskRecorder[TIMESHIFT] Stop 'D:\MediaShift\live2-0.ts.tsbuffer'
14-02-2008 13:51:47.484 DiskRecorder[TIMESHIFT] Reset
14-02-2008 13:51:47.484 del m_pVideoAnalyzer
14-02-2008 13:51:47.484 analyzer: reset
14-02-2008 13:51:47.484 del m_pPmtGrabber
14-02-2008 13:51:47.484 del m_pRecorder
14-02-2008 13:51:47.484 del m_pTimeShifting
14-02-2008 13:51:47.484 del m_pTeletextGrabber
14-02-2008 13:51:47.484 del m_pCaGrabber
14-02-2008 13:51:47.484 del done...
14-02-2008 13:51:47.484 CMpTsFilter:ause()
14-02-2008 13:51:47.562 CMpTsFilter:top()
14-02-2008 13:51:48.718 analyzer: reset
14-02-2008 13:51:48.734 CPcrRefClock::ctor: clock frequency is -1063087296
14-02-2008 13:51:48.734 CPcrRefClock: compensation is 1080
14-02-2008 13:51:48.734 CPcrRefClock::ctor: clock frequency is -1063087296
14-02-2008 13:51:48.734 CPcrRefClock: compensation is 1104
14-02-2008 13:51:48.734 cagrabber: reset
14-02-2008 13:51:48.734 epg: reset
14-02-2008 13:51:48.734 epg:ResetEPG()
14-02-2008 13:51:48.734 mhw reset
14-02-2008 13:51:49.125 analyzer: reset
14-02-2008 13:51:49.125 CPcrRefClock::ctor: clock frequency is -1063087296
14-02-2008 13:51:49.125 CPcrRefClock: compensation is 1096
14-02-2008 13:51:49.125 CPcrRefClock::ctor: clock frequency is -1063087296
14-02-2008 13:51:49.125 CPcrRefClock: compensation is 1128
14-02-2008 13:51:49.125 cagrabber: reset
14-02-2008 13:51:49.125 epg: reset
14-02-2008 13:51:49.125 epg:ResetEPG()
14-02-2008 13:51:49.125 mhw reset
14-02-2008 13:51:49.125 CMpTsFilter:ause()
14-02-2008 13:51:49.140 CMpTsFilter::Run()
14-02-2008 13:51:49.437 pmtgrabber: set callback:b7feb4
14-02-2008 13:51:49.437 pmtgrabber: grab pmt:101 sid:1a4
14-02-2008 13:51:49.531 service_id=1170
14-02-2008 13:51:49.531 pmtgrabber: got pmt 101 sid:492
14-02-2008 13:51:49.531 pmtgrabber: serviceid mismatch 1170 != 420
14-02-2008 13:51:49.531 service_id=420
14-02-2008 13:51:49.531 pmtgrabber: got pmt 101 sid:1a4
14-02-2008 13:51:49.531 pmtgrabber: got pmt version:2 -1
14-02-2008 13:51:49.531 pmtgrabber: do calback
14-02-2008 13:51:49.656 analyzer: set video pid:1a5
14-02-2008 13:51:49.656 analyzer: reset
14-02-2008 13:51:49.656 analyzer: set audio pid:1a6
14-02-2008 13:51:49.656 analyzer: reset
14-02-2008 13:51:49.843 CMpTsFilter:ause()
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] set filename:\MediaShift\live18-0.ts
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] transport stream mode
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] paused=yes
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] Received from TvService: pmt pid:0x101 serviceId: 0x1a4 pmtlength:52
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] Old pids cleared
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] got pmt - tableid: 0x2 section_length: 52 sid: 0x1a4
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] PMT parsed - Pid 0x101 ServiceId 0x1a4 stream count: 3
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] pcr pid:0x1a5
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] SetPcrPid clear old PIDs
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] add video stream pid: 0x1a5 fake pid: 0x30 stream type: 0x2 logical type: 0x2 descriptor length: 0
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] add audio stream pid: 0x1a6 fake pid: 0x40 stream type: 0x4 logical type: 0x4 descriptor length: 6
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] add audio stream pid: 0x1a7 fake pid: 0x41 stream type: 0x4 logical type: 0x4 descriptor length: 6
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] paused=no
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] Start 'D:\MediaShift\live18-0.ts.tsbuffer'
14-02-2008 13:51:49.906 DiskRecorder[TIMESHIFT] SetVideoAudioObserver observer ok
14-02-2008 13:51:49.968 DiskRecorder[TIMESHIFT] start of video detected
14-02-2008 13:51:49.968 DiskRecorder[TIMESHIFT] Pcr new start pcr :0 days 03:04:21 204 - pid:1a5
14-02-2008 13:51:49.968 DiskRecorder[TIMESHIFT] clear TS packet queue
14-02-2008 13:51:50.31 DiskRecorder[TIMESHIFT] start of audio detected
14-02-2008 13:51:50.93 DiskRecorder[TIMESHIFT] start of audio detected
14-02-2008 13:51:50.984 CMpTsFilter::Run()
14-02-2008 13:51:51.00 pmtgrabber: set callback:b7ff34
14-02-2008 13:51:51.00 pmtgrabber: grab pmt:fa1 sid:4e4
14-02-2008 13:51:51.46 service_id=1252
14-02-2008 13:51:51.46 pmtgrabber: got pmt fa1 sid:4e4
14-02-2008 13:51:51.46 pmtgrabber: got pmt version:23 -1
14-02-2008 13:51:51.46 pmtgrabber: do calback
14-02-2008 13:51:51.46 analyzer: set video pid:191
14-02-2008 13:51:51.46 analyzer: reset
14-02-2008 13:51:51.46 analyzer: set audio pid:192
14-02-2008 13:51:51.46 analyzer: reset
14-02-2008 13:51:51.62 epg: set callback
14-02-2008 13:51:51.62 EpgScanner::GrabEPG
14-02-2008 13:51:51.62 epg:GrabEPG
14-02-2008 13:51:51.62 epg:ResetEPG()
14-02-2008 13:51:51.62 epg:GrabEPG()
14-02-2008 13:51:51.62 EpgScanner::GrabMHW
14-02-2008 13:51:51.62 mhw grab
14-02-2008 13:51:51.62 mhw reset
14-02-2008 13:51:51.62 mhw grabber started decoders:2
14-02-2008 13:53:02.31 mhw grabber ended
14-02-2008 13:53:02.31 epg: epg received
14-02-2008 13:53:02.31 epg: do callback
14-02-2008 13:54:38.687 DiskRecorder[TIMESHIFT] Jump forward in PCR detected
14-02-2008 13:54:38.687 DiskRecorder[TIMESHIFT] PCR: 0 days 00:02:22 248 new: 0 days 03:07:09 887 prev: 0 days 03:06:43 432 start: 0 days 03:04:21 204 diff: 0 days 00:00:26 455 hole: 0 days 00:00:26 435 holeB: 0 days 00:00:00 0 - pid:1a5

After that I got on the "event viewer"
At 13:54:11

Faulting application tvservice.exe, version 1.0.0.0, stamp 47b376fb, faulting module kernel32.dll, version 5.1.2600.3119, stamp 46239bd5, debug? 0, fault address 0x00012a5b.

Last edited by iosub; 2008-02-14 at 16:16..
iosub is offline   Reply With Quote
Old 2008-02-14, 19:36   #10 (permalink)
MP Donator
 
vuego's Avatar
 
Join Date: Aug 2006
Age: 8
Posts: 428
Thanks: 120
Thanked 45 Times in 30 Posts

Country:

My System

Default

I can no longer scan for channels using DVB-C.
Only channels on the first transponder is found. After that all remaining transponders says Nothing found. At this point the TV Server crash almost every time. In tv.log i see that 8 channels is found on the first transponder and 11 on the second however only the first 8 channels is visible at TV Channels.

In error.log:
System.AccessViolationException: Attempted to read or write protected memory

In SVN 17305 I could complete a scan but no HD channels were found.
In SVN 17267 scanning is complete and all channels found.
vuego is offline   Reply With Quote
Reply

Bookmarks

Tags
0507h, snapshot

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off



All times are GMT +1. The time now is 09:20.


Powered by vBulletin® Version 3.8.1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0 Protected by Akismet Blog with WordPress
Advertisement System V2.6 By   Branden