Hi,

Johannes Stezenbach schrieb:
>>>Either use getopt(), or the same getenv() hack used for VIDEODEV.

getopt is a mess like doing basic, at least one evening of
reading, and nothing understood (but who wonders i still
should learn C++ first, don't i?).
anyway i did it the getenv way and wrote some (kinda formatted)
usage info, which is readable, if called in it's directory,
on a 80x25 screen giving examples and all info needed to use the
"features".


Regards Onno


> I use vim and have the following on my ~/.vimrc:
> let c_space_errors=1

P.S.
the .vimrc stuff yields an error for me (.. not a recognized
vimrc command), but using sed is no problem :-)

--- test_stillimage.c   Thu Aug 14 19:40:43 2003
+++ test_stillimage.c-sstime-patch      Wed Oct  8 18:19:57 2003
@@ -3,6 +3,12 @@
  * and mpeg2encode from ftp.mpeg.org, and must have a supported
  * size, e.g. 702x576:
  *   $ convert -sample 702x576\! test.jpg test.mpg
+ *
+ * or more advanced using netpbm and mpeg2enc (not mpeg2encode) :
+ *   $ cat image.jpg | jpegtopnm | pnmscale -xsize=704 -ysize=576 |\
+ *      ppmntsc --pal | ppmtoy4m  -F 25:1 -A 4:3 |\
+ *      mpeg2enc -f 7 -T 90 -F 3 -np -a 2 -o "image.mpg"
+ * 
  */
 
 #include <sys/ioctl.h>
@@ -19,7 +25,13 @@
 
 
 static
-const char *usage_string = "\n\tusage: %s <still.mpg> ...\n\n";
+const char *usage_string = "\n\tusage: %s <still.mpg> [still.mpg ...]\n\n\t
+to use another videodev than the first, set the environment variable VIDEODEV\t
+ [EMAIL PROTECTED] export VIDEODEV=\"/dev/dvb/adapter1/video1\".\n
+to display the image <n> seconds, instead of 10, set the variable SSTIME\t
+ e.g. [EMAIL PROTECTED] export SSTIME=\"60\" to display the still for 1 minute.\n
+this options can be set in the same line as the %s command:\t
+ e.g. $ SSTIME=25 VIDEODEV=/dev/dvb/adapter1/video1 %s ...\n";
 
 
 int main (int argc, char **argv)
@@ -29,15 +41,22 @@
        struct stat st;
        struct video_still_picture sp;
        char *videodev = "/dev/dvb/adapter0/video0";
+       char *env_sstime;
        int i = 1;
+       int tsec = 10;
 
        if (argc < 2) {
-               fprintf (stderr, usage_string, argv[0]);
+               fprintf (stderr, usage_string, argv[0],argv[0],argv[0]);
                return -1;
        }
 
        if (getenv ("VIDEODEV"))
                videodev = getenv("VIDEODEV");
+       
+       if (getenv ("SSTIME")) {
+               env_sstime = getenv("SSTIME");
+               tsec = atoi(env_sstime);
+       }
 
        if ((fd = open(videodev, O_RDWR)) < 0) {
                perror(videodev);
@@ -71,8 +90,8 @@
        }
        free(sp.iFrame);
 
-       printf("Display image 10 seconds ...\n");
-       sleep(10);
+       printf("Display image %d seconds ...\n",tsec);
+       sleep(tsec);
        printf("Done.\n");
        if (argc > ++i)
                goto next_pic;

Reply via email to