Hi, my friend offered me a freelance job to make an application that can display a video file to a TV while at the same time also displaying a number on top of it. The number is from a queue that can be incremented by pressing a button. So it's like an interactive queuing application. I've got some question about this:

1. Maybe for displaying the queue number, I can use SDL or maybe go pure DX. But what about the one to play the video from the Video-Out to the TV? Is there any LGPL / free API for this? Can't afford a comercial one as of now. :D

2. What would the approx. time be if I can only work on this project on saturday & sunday?

3. My friend also ask me for the price. How much should I charge for this? I haven't got any clue about this because usually the price have been set for me if I do a freelance (beside my dayjob).

- You are being paid to write a program in which you have no earthly clue where to even begin.
- The functionality of your program seems to serve no real meaningful purpose (though it *almost* sounds to me like you are trying to decode sat feeds).
- You do not know how much your own time and effort is worth.

To answer these respectively (my rehashing of your questions, not your questions).
1. You can do what you are asking different various ways. I actually had to write my own AVI/MPEG decoder once. The vfw library is such a lifesaver in comparison to my nasty reverse-engineered library. You can use DX or OGL or whatever to output the video once you have decoded it. Consult the docs for whatever API you use for video to create the desired TV-out result.

2. Ask more questions as to how this program will even prove useful. It is pointless to write code that doesn't do anything important unless it either pays well enough to be worth your wasted skills or you are out to learn something. In this case, it may be worth the real-life programming experience. I would estimate the time to program something like this to be something like 45minutes to 1.5 hours. But on the other hand, I know my level of programming experience, and my level of experience with OGL, DX, my understanding of my own video drivers, and how to decode video streams. You may not know some of these things and you will spend the first few afternoons reading books, technical specs, and probably tutorial websites.

3. You are worth exactly what you feel worth. If someone asks you to spit out code you have written before and will probably copy and paste from another project, you are making substancial profit and even if you charge the same price as a project you enter blindly, you are spending less time on R&D and more time on features and extras. On the flip-side, when you do not have knowledge about something you spend more time reading than you do coding. Or you spend a great deal of time trying to debug. Is your time spent debugging more or less valuable than lets say someone scouring a grill at McDonalds? Is it as important as repairing a helocopter rotor? Just charge him a flat bid for the project instead of toying with hourly rates. Tell him you will do it for $x. You tell me how much it would cost to motivate you to do this task. Then tell him.

- You are being paid to write a program in which you have no earthly clue where to even begin.
- The functionality of your program seems to serve no real meaningful purpose (though it *almost* sounds to me like you are trying to decode sat feeds).
- You do not know how much your own time and effort is worth.

To answer these respectively (my rehashing of your questions, not your questions).
1. You can do what you are asking different various ways. I actually had to write my own AVI/MPEG decoder once. The vfw library is such a lifesaver in comparison to my nasty reverse-engineered library. You can use DX or OGL or whatever to output the video once you have decoded it. Consult the docs for whatever API you use for video to create the desired TV-out result.

2. Ask more questions as to how this program will even prove useful. It is pointless to write code that doesn't do anything important unless it either pays well enough to be worth your wasted skills or you are out to learn something. In this case, it may be worth the real-life programming experience. I would estimate the time to program something like this to be something like 45minutes to 1.5 hours. But on the other hand, I know my level of programming experience, and my level of experience with OGL, DX, my understanding of my own video drivers, and how to decode video streams. You may not know some of these things and you will spend the first few afternoons reading books, technical specs, and probably tutorial websites.

3. You are worth exactly what you feel worth. If someone asks you to spit out code you have written before and will probably copy and paste from another project, you are making substancial profit and even if you charge the same price as a project you enter blindly, you are spending less time on R&D and more time on features and extras. On the flip-side, when you do not have knowledge about something you spend more time reading than you do coding. Or you spend a great deal of time trying to debug. Is your time spent debugging more or less valuable than lets say someone scouring a grill at McDonalds? Is it as important as repairing a helocopter rotor? Just charge him a flat bid for the project instead of toying with hourly rates. Tell him you will do it for $x. You tell me how much it would cost to motivate you to do this task. Then tell him.

Thanks for the reply. Well I know my C++ and have some experience with SDL. My OGL & DX though, are quite basic. I usually use a third party wrapper (i.e. graphics engine) for this. And you're right, video decoding is new to me. So maybe I'll have to read A LOT regarding this. Furthermore, even if I can make it to play on the monitor, I couldn't be quite sure whether it could be played on the TV. BTW, I've heard of a library called libavcodec. Maybe I can use it.

The purpose of the application itself is for a queue / waiting list like in a doctor's office (for the patients waiting list) or something. So they can see the current number and watch a video being played on the TV at the same time.

So with all of this limitation, I am not quite sure how to "tag the price". But I'm beginning to have some idea.

Thanks again.

09-09-2008

master5001

Oh, ok. Well I stand corrected, that is actually very useful. What OS are you working with on this project? It is a step in the right direction toward offering you useful help. libavcodec is indeed quite useful. Especially since you are eliminating the need to reinvent the wheel. M$ has their own stuff (which was the vfw library I mentioned before). So yeah, if you are a linux guy (my hats off to a fellow penguin fan if you are) then by all means check out libav*.

09-09-2008

phantomotap

Just a... helper I suppose: don't use a static overlay; force the overlay to drift considerably.

Soma

(For the curious, I've written what is basically this program before and promptly had to rewrite the bloody thing. Every office was equipped with a plasma display.)

09-09-2008

master5001

I wrote something that needed to show statistics on an overlay before, and I found it was effective to just have a static overlay that has shifting colors (obviously a subtle shift, since you don't want to make the text appear like Super Mario when he gets a star man).

09-19-2008

g4j31a5

Sorry for the long delay. Been busy "bug hunting" for my day job. BTW, it seems like the freelance job is postponed. My friend said that I should wait for him to call me back because the owner is still having some more thoughts.

Thanks for the feedbacks guys. :D

09-19-2008

master5001

No problem. So you moonlight as an exterminator? Just kidding, or am I?