Allow user to specify rgb.txt for imlib2 vhook
authorRamiro Polla <ramiro.polla@gmail.com>
Fri, 15 Jun 2007 20:40:14 +0000 (20:40 +0000)
committerRamiro Polla <ramiro.polla@gmail.com>
Fri, 15 Jun 2007 20:40:14 +0000 (20:40 +0000)
Originally committed as revision 9326 to svn://svn.ffmpeg.org/ffmpeg/trunk

doc/hooks.texi
vhook/imlib2.c

index 4950450..d4c4c5b 100644 (file)
@@ -67,8 +67,13 @@ with the full path to the font file, as in:
 @end example
 where 20 is the point size.
 
+You can specify the filename to read RGB color names from. If none are
+specified, these defaults are used: @file{/usr/share/X11/rgb.txt} and
+@file{/usr/lib/X11/rgb.txt}
+
 Options:
 @multitable @columnfractions .2 .8
+@item @option{-C <rgb.txt>}   @tab The filename to read RGB color names from
 @item @option{-c <color>}     @tab The color of the text
 @item @option{-F <fontname>}  @tab The font face and size
 @item @option{-t <text>}      @tab The text
@@ -137,6 +142,14 @@ Usage examples:
      a newline are treated as end-of-file. To create blank lines, use lines
      that consist of space characters only.
 
+   # Scrolling credits with custom color from a text file
+   ffmpeg -i input.avi -vhook \
+     'vhook/imlib2.so -C rgb.txt -c CustomColor1 -F VeraBd.ttf/16 -x 100 -y -1.0*N -f credits.txt' \
+     -sameq output.avi
+
+   This example does the same as the one above, but specifies an rgb.txt file
+   to be used, which has a custom made color in it.
+
    # scrolling credits from a graphics file
    ffmpeg -sameq -i input.avi \
      -vhook 'vhook/imlib2.so -x 0 -y -1.0*N -i credits.png' output.avi
index 4e6ffb6..98ccaf8 100644 (file)
  *
  * Options:
  *
+ * -C <rgb.txt>         The filename to read RGB color names from
+ *                      Defaults if none specified:
+ *                      /usr/share/X11/rgb.txt
+ *                      /usr/lib/X11/rgb.txt
  * -c <color>           The color of the text
  * -F <fontname>        The font face and size
  * -t <text>            The text
@@ -176,6 +180,7 @@ int Configure(void **ctxp, int argc, char *argv[])
 {
     int c;
     ContextInfo *ci;
+    char *rgbtxt = 0;
     char *font = "LucidaSansDemiBold/16";
     char *fp = getenv("FONTPATH");
     char *color = 0;
@@ -203,8 +208,11 @@ int Configure(void **ctxp, int argc, char *argv[])
         imlib_add_path_to_font_path(fp);
 
 
-    while ((c = getopt(argc, argv, "c:f:F:t:x:y:i:")) > 0) {
+    while ((c = getopt(argc, argv, "C:c:f:F:t:x:y:i:")) > 0) {
         switch (c) {
+            case 'C':
+                rgbtxt = optarg;
+                break;
             case 'c':
                 color = optarg;
                 break;
@@ -246,11 +254,16 @@ int Configure(void **ctxp, int argc, char *argv[])
         char buff[256];
         int done = 0;
 
+        if (rgbtxt)
+            f = fopen(rgbtxt, "r");
+        else
+        {
         f = fopen("/usr/share/X11/rgb.txt", "r");
         if (!f)
             f = fopen("/usr/lib/X11/rgb.txt", "r");
+        }
         if (!f) {
-            fprintf(stderr, "Failed to find rgb.txt\n");
+            fprintf(stderr, "Failed to find RGB color names file\n");
             return -1;
         }
         while (fgets(buff, sizeof(buff), f)) {