MythTV at Nokia N800
MaemoMyth is a frontend to access Mythtv backends. It allows N800 users to watch livetv and recorded programs from everywhere. The application is very simple. It has only two views: MyChannels (livetv) and MyRecordings (recorded programs). One tap in the video area will start the playback in fullscreen. EPG and recording schedules are two other interesting functionalities that could come in next releases.
MaemoMyth connects to the server through the gmyth library, which is based on glib/gobject. The menu->settings option is used to setup the server to connect with. If connection is ok, MaemoMyth starts downloading channel list, recorded videos list and all related snapshots available in the server.

The .install file for MaemoMyth is already available here. Souce code and binaries can be found in the Garage.
Before start using the application, the user needs to setup a Mythtv backend and the GMythStream transcode server. If you have analog TV the transcoder is not needed, just setup mythtv backend to MPEG-4 and a short resolution (e.g. 320x240).
It is possible to easily install the transcoder. There is a repository with .deb packages suitable for Ubuntu Feisty, and a howto explaining how to install it manually.
Contributions and comments are really welcome. The developers can be found at #gmyth IRC channel (freenode) and in the gmyth-devel mailing list.
Here is a short video showing the application...
Labels: maemo

154 Comments:
I have managed to find most of the required dependencies, but have not had any luck finding armel versions of gstreamer0.10-indt-mythtvsrc and gstreamer0.10-indt-nuvdemux.
The only versions I could find are for i386, and are on the gmyth download page at sourceforge.
Do you know where I can find these packages?
Thanks,
Kevin
Hi!
Great work.
I see my channels and recordings but gms.py shows me a 404 error (file not found I think) when I try to play a recording I get the same error after 5 secs.
Any Idea how to solve this?
@Kevin: I added the repository manually from the .install-file. Then all libs show up in your application manager
Halbamy
I've not had much luck with this - the first time I ran it my channels showed up, but no recordings, after that nothing showed up at all.
(The channels also gave a 404 when I attempted to play them)
Plus, if I close it, I have to restart my N800 before it will launch again...
--Jonty
Hi Kevin, thanks for using it. I will put these files in the sourceforge, but you can get them from the repository. They are in this folder:
http://hallysonluiz.com/mythtv/pool/extras/g/gst-indt-plugins/
Melunko
Thanks for the comments on where to find the additional files.
I will give it a try this evening.
Kevin
Hi,
Any chance this will work on a Nokia 770?
Thanks,
Oliver
very, very cool thing. Please take this further. Cool would be a 3d Navigation like coverflow :)
Hi Halbamy and Jonty, I added in the gmyth wiki the steps to to test gmythstream. This page might help:
http://gmyth.sourceforge.net/wiki/index.php/GMythStream
I think the problem is gmencoder.
I captured a file with gmyth-cat (that played fine in mplayer). Then I tried to transcode is with "gmencoder -i capture.avi -o test.avi" nothing happens. test.avi is not created and I get no errors it just jumps back to my prompt.
Halbamy
EDIT: all debs on your site are installed
Halbamy
Hi, channel listing is really slow on my tablet, is this normal?
(I'm using IT 2007 hacker edition)
Halbamy, try to use gmencoder in this way:
gmencoder -i file:///path/file.avi -o file:///path/output.avi
Use 3 "/". What tv standard are you using? Can you upload the capture.avi file to somewhere I could donwload?
Hi Oliver, good comment. I did not try yet. In general it should work on 770, but we have to change the way we are doing the playback. I will post about this as soon I get something conclusive.
Hi, when I want to see a live channel, I get this error in gmsd.log on my server:
### 2007-09-25 15:04:25 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:7213@192.168.0.102:6543/livetv/?channel=39&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 200 -
### 2007-09-25 15:04:25 gms.gmencoder INFO GMencoder: /usr/bin/gmencoder -d -i myth://mythtv:7213@192.168.0.102:6543/livetv/?channel=39 --video-encode ffenc_mpeg1video --video-opts bitrate=300000,pass=512,quantizer=0.01,quant-type=1 --video-fps 10 --video-width 320 --video-height 240 --audio-rate 32000 -o fd://4
** (gmemcoder:9239): WARNING **: Audio elements not found
** (gmemcoder:9239): WARNING **: Invalid uri
### 2007-09-25 15:04:25 gms.gmencoder INFO OK
### 2007-09-25 15:04:30 gms.request ERROR 192.168.0.106: code 404, message File not found
### 2007-09-25 15:04:30 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:7213@192.168.0.102:6543/livetv/?channel=39&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 404 -
Hi ajf, do you have these packages installed?
gstreamer0.10-plugins-bad,
gstreamer0.10-plugins-base, gstreamer0.10-plugins-good, gstreamer0.10-plugins-ugly
Thanks for your first advise, I get the following error with this command:
gmencoder -i file:///home/halbamy/test.avi -o file:///home/halbamy/enc.avi
(gmemcoder:13283): GStreamer-WARNING **: adding flushing pad 'video_e0' to running element 'flupsdemux0'
Error: Error [1] Interner Fehler im Datanfluss (gstbasesrc.c(1642): gst_base_src_loop (): /pipe/bin2/src:
streaming task paused, reason error (-5))
I tested with that file:
http://ebg-abi.de/download/test.avi
I use a analog tv card (hauppauge 500)
Sorry for your trouble I'm probaby just too stupid.
Hi, I reproduced the error with http://ebg-abi.de/download/test.avi. The problem is that gstreamer is trying to use a fluendo demux that somehow is with problems. I fixed this error removing this package:
sudo apt-get remove gstreamer0.10-fluendo-mpegdemux
One step further:
Recordings play fine for 30-60 secs then is lags a little but I guess this is because of my weak cpu (athlon 64 3000+, getting a X2 4200+ this week ;-).
Here is the next issu:
I cannot play livetv. This is the console output of gms.py
### 2007-09-25 23:00:21 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:xidcqpyf@192.168.0.37:6543/livetv/?channel=1&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 200 -
### 2007-09-25 23:00:21 gms.gmencoder INFO GMencoder: /usr/bin/gmencoder -d -i myth://mythtv:xidcqpyf@192.168.0.37:6543/livetv/?channel=1 --video-encode ffenc_mpeg1video --video-opts bitrate=300000,pass=512,quantizer=0.01,quant-type=1 --video-fps 10 --video-width 320 --video-height 240 --audio-rate 32000 -o fd://8
** (gmemcoder:15615): WARNING **: Property pass of type GstFFMpegEncPass. Not supported using default enum
** (gmemcoder:15615): WARNING **: Property quant-type of type GstFFMpegEncQuantTypes. Not supported using default enum
### 2007-09-25 23:00:21 gms.gmencoder ERROR Detected problem @ gmencoder: Error: Error [3] Konnte die Unterstützungsbibliothek nicht initialisieren. (gstmythtvsrc.c(662): gst_mythtv_src_start (): /pipe/bin2/src:
### 2007-09-25 23:00:22 gms.gmencoder INFO OK
### 2007-09-25 23:00:22 gms.request ERROR noname: code 404, message File not found
### 2007-09-25 23:00:22 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:xidcqpyf@192.168.0.37:6543/livetv/?channel=1&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 404 -
Thanks in advance.
Halbamy
Hi! thanks for your answer.
I have all those packages installed in the server, any idea?
Great, it works. I was just looking for a solution for showing live tv from myth.
The default 10 fps made my eyes hurt, but this was quickly worked around.
Hi ajf. The msg "Audio elements not found" means that one gstreamer plugin related to audio is missing. Does this happen only with livetv? What TV standard are you trying with? What is your linux distribution?
The only additional packages i have here are: gstreamer0.10-alsa, gstreamer0.10-esd, gstreamer0.10-plugins-bad-multiverse, gstreamer0.10-plugins-ugly-multiverse,
Can you upload one mythtv video to somewhere I can download? I can check what plugins are been needed. You can use gmyth-cat to get a livetv video. See the tests steps at:
http://gmyth.sourceforge.net/wiki/index.php/GMythStream
Yes, 10fps is not good. You can try 15fps, it works, but sometimes you can face freezes. You also need a good server machine to capture livetv, transcode and stream. We can add the framerate option in the maemo-myth settings. Lets do this in the next version.
Can you compile maemo-myth to armel? If yes, just change 10fps to 15fps in the file mtv-mythtvdata.c.
Hi again!
this error
** (gmemcoder:9239): WARNING **: Audio elements not found
and this one
problem @ gmencoder: Error: Error [3] Konnte die Unterstützungsbibliothek nicht initialisieren. (gstmythtvsrc.c(662): gst_mythtv_src_start (): /pipe/bin2/src:
are kind of related.
The first one appears when using the packet gstreamer0.10-plugins-bad in ubuntu feisty.
The sceond one appears with gstreamer0.10-plugins-bad-multiverse.
Hope this helps and was not obvious.
Halbamy
Hi Albamy, what release of gstreamer0.10-ffmpeg is installed?
Just in case, this might help:
$ dpkg -l | grep gstreamer0.10-ffmpeg
One more question, did gmyth-cat work with livetv?
Hi! thanks again for your answer.
I installed gstreamer0.10-plugins-ugly-multiverse and now I can get audio, but not video, here is the log:
### 2007-09-26 09:39:15 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:7213@192.168.0.102:6543/livetv/?channel=39&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 200 -
### 2007-09-26 09:39:15 gms.gmencoder INFO GMencoder: /usr/bin/gmencoder -d -i myth://mythtv:7213@192.168.0.102:6543/livetv/?channel=39 --video-encode ffenc_mpeg1video --video-opts bitrate=300000,pass=512,quantizer=0.01,quant-type=1 --video-fps 10 --video-width 320 --video-height 240 --audio-rate 32000 -o fd://4
** (gmemcoder:6929): WARNING **: Property pass of type GstFFMpegEncPass. Not supported using default enum
** (gmemcoder:6929): WARNING **: Property quant-type of type GstFFMpegEncQuantTypes. Not supported using default enum
** (gmemcoder:6929): WARNING **: Unknown Type
Here is the output of dpkg -l | grep gstreamer0.10-ffmpeg
ii gstreamer0.10-ffmpeg 0.10.2-cvs20070814 FFmpeg plugin for GStreamer
I'm using Ubuntu Gutsy.
Thank you!
Hi!
gstreamer0.10-ffmpeg 0.10.2-cvs20070814
gmyth-cat works with live tv.
no problems there.
Halbamy
Hi,
gmyth-cat seems to work OK, I can play it with mplayer on the server machine.
Here is the test file:
http://74.205.121.232/channel.avi
BTW, I use PAL-Nc as TV Standard :)
Hi ajf, we can play your file (thanks to Renato Filho for his tip). Gmencoder is using decodebin2 (gstreamer), but somehow your file just play with decodebin :(. We added some trick in the gmencoder. If you export the USE_DECODEBIN1 env, it will work.
I added one new release to the repository: gmencoder_0.1-indt3. So, try to upgrade this package. After this, you need to run gms differently:
$ USE_DECODEBIN1=1 /usr/bin/gms
Please, tell me if it worked.
Hi Halbamy, the same tip about USE_DECODEBIN1 env should work with you as well.
melunko, thanks for your answer.
I did this:
apt-get remove gmencoder
apt-get update
apt-get install gmencoder
apt-get install gms
dpkg -l | grep gmencoder
ii gmencoder 0.1-indt3 GMencoder is an application similar to mencoder, but i
export USE_DECODEBIN1=1
/usr/bin/gms.py
But no luck yet :(
I get the same, audio but no video.
### 2007-09-26 17:21:05 gms.request INFO "GET /transcode.do?transcoder=gmencoder&type=myth&uri=mythtv:7213@192.168.0.102:6543/livetv/?channel=39&width=320&height=240&video-opts='bitrate=300000'&fps=10 HTTP/1.1" 200 -
### 2007-09-26 17:21:05 gms.gmencoder INFO GMencoder: /usr/bin/gmencoder -d -i myth://mythtv:7213@192.168.0.102:6543/livetv/?channel=39 --video-encode ffenc_mpeg1video --video-opts bitrate=300000,pass=512,quantizer=0.01,quant-type=1 --video-fps 10 --video-width 320 --video-height 240 --audio-rate 32000 -o fd://4
** (gmemcoder:11719): WARNING **: Property pass of type GstFFMpegEncPass. Not supported using default enum
** (gmemcoder:11719): WARNING **: Property quant-type of type GstFFMpegEncQuantTypes. Not supported using default enum
Please tell me if I'm doing it wrong.
Thanks.
Hi ajf, now we tested in a Gutsy machine and reproduced your problem. We will prepare packages for this distro and upload to repo...
Thanks for trying.
Great! I'll wait for it.
Thank you!
I tested everythig and everything works using the utiities. But when I try to run the maemo application on my N800 and click on a file it immediately crashes regardless of what I have. There are no messages or anything :(
Hi!
I tried your new version but with no luck.
Still get
** (gmemcoder:9239): WARNING **: Audio elements not found
With USE_DECODEBIN1=1 gms.py it is the same.
Halbamy
Hi!
I have another stupid question.
Why is the command gmencoder but in the error log you get gmemcoder?
Halbamy
I finally did some tries at Nokia 770. As I told before, the playback will not work, since we are using some stuff from N800. The good news is that Renato Filho (http://tuxrecife.blogspot.com/) is already taking care of that. We will post something as soon as we get it.
Someone also wrote about the list speed. I made tests with my finger and the list really does not move correctly, but with the pen it is very very fast.
Halbamy, to solve this error:
** (gmemcoder:9239): WARNING **: Audio elements not found
I installed this package:
gstreamer0.10-plugins-ugly-multiverse
Now I have audio but no video, but that's another problem :)
melunko,
Playback will not work using IT 2007 hacker edition on 770?
Hi!
When I installed gstreamer0.10-plugins-ugly-multiverse I get:
** (gmemcoder:13097): WARNING **: Unknown Type
Error: Error [1] Interner Fehler im Datanfluss (gstbasesrc.c(1642): gst_base_src_loop (): /pipe/bin2/src:
streaming task paused, reason not-linked (-1))
Halbamy
Halbamy,
I don't get that error in my machine, sorry :(
ajf, Renato Filho is trying to solve this problem with 770. We still do not know if it is possible.
Halbamy, lets try step by step....
1. Try to play the file you mentioned with gstreamer:
$ gst-launch-0.10 playbin uri=file:///home/halbamy/test.avi
If this plays, decoders are ok
2. Now, lets try to transcode using command line (sorry for the huge line):
$ gst-launch-0.10 ffmux_mpeg name="mpg" ! filesink location=" teste.mpg" gnomevfssrc location="file:///home/halbamy/test.avi" ! decodebin name="d" { d. ! queue ! ffmpegcolorspace ! ffenc_mpeg1video ! queue ! mpg. } { d. ! queue ! audioconvert ! audioresample ! lame ! queue ! mpg. }
- I hope to see now what gstreamer element is missing.
- Try also to change decodebin to decodebin2
- If this does not work, send me the list of gstreamer packages instaled (dpkg -l | grep gstreamer), and the list of gstreamer elements (gst-inspect-0.10).
Halbamy, gmemcoder is just a typo :).
Hi!
Thanks Melunko live tv is working!
Now I use USE_DECODEBIN1=1 /usr/bin/gms.py to start the transcoding server and I installed totem video player. There must have been some dependency of totem video player that did the trick. I guess totem is the standard player in ubuntu.
What is strange though is that recordings lag badly.
I noticed something else. It is about my tv signal being 4:3 and if my cable provider is playing 16:9 shows I have already a huge amount of black on my tv but when I watch it with the n800 I would like to crop the video to 16:9 instead of streching it because in my case half of the screen is not used although I play a 16:9 show.
Thanks for your patience with me.
Halbamy
Halbamy, are you using n800 or 770?
I am using a n800.
Halbamy
Thanks for the tip on the fluendo gstreamer plugin.
I was getting the following error:
~ $ gmencoder -i myth://172.16.1.34:6543/1091_20070715180000.mpg -o file:///tmp/recording.avi
(gmemcoder:22117): GStreamer-WARNING **: adding flushing pad 'video_e0' to running element 'flupsdemux0'
(gmemcoder:22117): GStreamer-WARNING **: adding flushing pad 'audio_c0' to running element 'flupsdemux0'
Error: Error [1] Internal data flow error. (gstbasesrc.c(1642): gst_base_src_loop (): /pipe/bin2/src:
streaming task paused, reason error (-5))
When I removed the gstreamer0.10-fluendo-mpegdemux plugin, everything started to work.
How come when I use the gmencoder command;
gmencoder -i myth://127.0.0.1:6543/livetv?channel=7 -o file:////home/user/channel7.avi
I get the gui of gmencoder but nothing else happens?
I've just tried to get it up and running on my N800, i can log in, the channels and recordings are shown... if i select a channel i get a segfault:
mtv[2712]: GLIB CRITICAL ** GLib - g_io_channel_write_chars: assertion `channel != NULL' failed
mtv[2712]: GLIB CRITICAL ** GLib - g_io_channel_flush: assertion `channel != NULL' failed
Damn fine work! Makes me want to purchase a N800!
Once working, how reliable is it? Does it crash much at present?
I have a Sony PSP, do you know if anybody is working on something similar for PSP?
Thanks
Mike
Any chance we'll see a 64 bit repository of the packages listed on the GMythStreamer
site.
Some of the svn's on the GMS_Howto
return errors last I tried them.
Thanks
Jay
I have the same problem and have taken the same steps as Alf, except that I did on Ubuntu Feisty
Hi anders, thanks for trying...
I never saw this problem before. I will find out what is happening in your case. Come back soon....
Hi Jason,
It seems there is another gmencoder application, and so I believe some people have installed a different gmencoder.
The gmencoder we need is the one described at:
http://gmyth.sourceforge.net/wiki/index.php/GMythStream
Are you using the right gmencoder? It does not have an ui, in the sense that it just convert the video to a new file.
RHAlYF Your blog is great. Articles is interesting!
qljbza Thanks to author.
MufGd0 Good job!
Z4ok0n Magnific!
Good job!
Yes Thanks Melunko for replying :) I had a 64bit package from getdeb. I installed gutsy 32bit just to solve the 64bit headache. It works now!!!! Was pretty easy to get working. Did i need to enable remote connections to mysql mythtv user?
any ways the only problem im having is the video/audio sync is off. the audio plays before the video.
Good job!
Magnific!
Good job!
Wonderful blog.
Hello all!
Finally myth frontend for maemo! However, I couldn't get it working, it complains about not being able to connect to db.
In the end, I had to open sources to see why, and it seems that that mythtv database name is fixed to "mythconverg"?? I chose not to use this name, and still don't want to change that :) I haven't seen anything that would recommend using this default name, but I doubt that this is necessary as other frontends allow me to choose this.
I know this isn't a big thing to change myself, but I wouldn't want to recompile every time new version comes. So would it be possible for you to add this configuration option?
Hello all!
Y1Ei9f You have a talant! Write more!
i2IHuD Good job!
GHIUVC Hello all!
actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.
I7jZiU The best blog you have!
JHeDeO Nice Article.
Good job!
Please write anything else!
actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.
Thanks to author.
Good job!
Nice Article.
Good job!
Good job!
Good job!
TBqDsx write more, thanks.
Nice Article.
Nice Article.
Good job!
Wonderful blog.
Hello all!
Nice Article.
Thanks to author.
Magnific!
Please write anything else!
actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.
Thanks to author.
Nice Article.
Nice Article.
Friends help you move. Real friends help you move bodies
All generalizations are false, including this one.
Lottery: A tax on people who are bad at math.
actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.
Oops. My brain just hit a bad sector.
actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.
Thanks to author.
Save the whales, collect the whole set
Build a watch in 179 easy steps - by C. Forsberg.
Lottery: A tax on people who are bad at math.
Nice Article.
When there's a will, I want to be in it.
Suicidal twin kills sister by mistake!
Friends help you move. Real friends help you move bodies.
Energizer Bunny Arrested! Charged with battery.
The gene pool could use a little chlorine.
Give me ambiguity or give me something else.
Build a watch in 179 easy steps - by C. Forsberg.
I'm not a complete idiot, some parts are missing!
A flashlight is a case for holding dead batteries.
Energizer Bunny Arrested! Charged with battery.
Wonderful blog.
Energizer Bunny Arrested! Charged with battery.
actually, that's brilliant. Thank you. I'm going to pass that on to a couple of people.
Wonderful blog.
I'm not a complete idiot, some parts are missing!
Change is inevitable, except from a vending machine.
Good job!
C++ should have been called B
Change is inevitable, except from a vending machine.
What is a free gift ? Aren't all gifts free?
Oops. My brain just hit a bad sector.
Change is inevitable, except from a vending machine.
C++ should have been called B
Oops. My brain just hit a bad sector.
Suicidal twin kills sister by mistake!
Calvin, we will not have an anatomically correct snowman!
Hello all!
Save the whales, collect the whole set
Lottery: A tax on people who are bad at math.
Build a watch in 179 easy steps - by C. Forsberg.
Thanks to author.
C++ should have been called B
Give me ambiguity or give me something else.
Suicidal twin kills sister by mistake!
If ignorance is bliss, you must be orgasmic.
Oops. My brain just hit a bad sector.
Oops. My brain just hit a bad sector.
Thanks to author.
Suicidal twin kills sister by mistake!
640K ought to be enough for anybody. - Bill Gates 81
Energizer Bunny Arrested! Charged with battery.
When there's a will, I want to be in it.
I have live TV working great. However, I don't have a list of recordings. Any idea why?
I started a thread on internettablettalk.com under 'apps'
Payday loan
URLsWithAHREF={1,5} buy discount tramadol | buy drug tramadol | buy tablet tramadol | buy tramadol 180 | buy tramadol cheap | buy tramadol cod | buy tramadol free shipping | buy tramadol hcl | buy tramadol no prescription | buy tramadol now | buy tramadol online cod | buy tramadol overnight
URLsWithURL={1,5}[url=http://cheaptramadol-lilu.blogspot.com/] buy discount tramadol [/url] | [url=http://gigo-tramadolonline.blogspot.com/] buy drug tramadol [/url] | [url=http://crushingultram.blogspot.com/] buy tablet tramadol [/url] | [url=http://tramadol-low-blood-pressure.blogspot.com/] buy tramadol 180 [/url] | [url=http://buy-tramadol-180.blogspot.com/] buy tramadol cheap [/url] | [url=http://buy-tramadol-cheap-saab.blogspot.com/] buy tramadol cod [/url] | [url=http://saab-buy-tramadol-cod.blogspot.com/] buy tramadol free shipping [/url] | [url=http://buy-tramadol-free-shipping-saab.blogspot.com/] buy tramadol hcl [/url] | [url=http://buytramadolhcl.blogspot.com/] buy tramadol no prescription [/url] | [url=http://buy-tramadol-no-prescription-saab.blogspot.com/] buy tramadol now [/url] | [url=http://tramfarmastoraz.blogspot.com/] buy tramadol online cod [/url] | [url=http://tramfarmastorag.blogspot.com/] buy tramadol overnight [/url]
Greatings=Cool site!|thanks for letting me view your guest book and giving me all the information|Really great site with alot of good information!! Keep up the good work!!!!|Nice! We really amused by the website.|A very interesting site with top design and contents!|Greetings Very good web site. I loved it. Found invaluable information. Just what I was looking for :-) Regards and best wishes|WOW, so much stuff here, an excellent resource. Thanks guys!|Hi everyone. Great site. Hold on.|Your site was so interesting and informative I had to call a friend to tell her about it. Great work|Hammm… Nice article… Interesting.|Hello, nice site look this:|See you...Thanks, its great to receive such positive comments.|Your site has very much liked me. I shall necessarily tell about him to the friends.|This is one of the best sites I have ever found. Thanks!!! Very nice and informal. I enjoy being here.|Very good site! I like it! Thanks!|Cool design, great info!|Hi! Guys how you manage to make such perfect sites? Good fellows!|very well made it .All information on this site is represented|I glad too see this interest site, I tell my friends about it! They like sites like that: site|This is a cool site! Thanks and wish you better luck! Brilliant but simple idea.|Here is intresting people… Lets talk!|Your site is very convenient in navigation and has good design. Thanks!|Very interesting and beautiful site. It is a lot of ful information. Thanks.|Very good site. Thank you!!!|Save time by hitting.|I really do like this place.|Very realistic and amusing site.|It is a member of the site.|Nice site. Thanks.|I would love to hear more about this …|hi, you have super site.|That was a very nice post, I’m proud of you!|hello, your site is lucky.|Hi this is a very informative site!|Save your time, please.|The mission of the your site.|hi im mohan i am having problems.|hi.. just droppin’ by your site.. it’s really cute… nice work!|Thanks for the interesting and informative site. That’s definitely what I’ve been looking for.|Very good site with a lot of useful information|Yes. Very good site! worth to visit!|archy it i, and i like you!|Very good website you have here.|Thanks for taking a few of us.|Keep up this great resource.|I found it very interesting.|i love is it.|The more you know about site|Hi, nice site! Your hard work paid off|The site’s very professional|Keep up this great resource|Exciting website. Thank you.|thanks you peopels.|The site’s very professional! Keep up the good work!|I like your diary. Allow to be friends!|good! support!|Great place to visit!
This post has been removed by the author.
Post a Comment
<< Home