[PATCH] lavu: add av_get_color_string() and use it in -colors option
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-) diff --git a/cmdutils.c b/cmdutils.c index 514ebad..549c673 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -713,6 +713,19 @@ void show_pix_fmts(void) } } +void show_colors(void) +{ + char buf[256]; + int i; + + /* print header */ + fprintf(stderr, av_get_color_string(buf, sizeof(buf), -1)); + + for (i = 0; av_get_color_string(buf, sizeof(buf), i); i++) { + printf("%s", buf); + } +} + int read_yesno(void) { int c = getchar(); diff --git a/cmdutils.h b/cmdutils.h index c3d8a42..191ee36 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -195,6 +195,12 @@ void show_formats(void); void show_codecs(void); /** + * Print a listing containing all the color names supported by the + * program. + */ +void show_colors(void); + +/** * Print a listing containing all the filters supported by the * program. */ diff --git a/cmdutils_common_opts.h b/cmdutils_common_opts.h index da30997..1e3799a 100644 --- a/cmdutils_common_opts.h +++ b/cmdutils_common_opts.h @@ -6,6 +6,7 @@ { "version", OPT_EXIT, {(void*)show_version}, "show version" }, { "formats" , OPT_EXIT, {(void*)show_formats }, "show available formats" }, { "codecs" , OPT_EXIT, {(void*)show_codecs }, "show available codecs" }, + { "colors" , OPT_EXIT, {(void*)show_colors }, "show recognized color names" }, { "bsfs" , OPT_EXIT, {(void*)show_bsfs }, "show available bit stream filters" }, { "protocols", OPT_EXIT, {(void*)show_protocols}, "show available protocols" }, { "filters", OPT_EXIT, {(void*)show_filters }, "show available filters" }, diff --git a/doc/fftools-common-opts.texi b/doc/fftools-common-opts.texi index d72ca5c..5b25971 100644 --- a/doc/fftools-common-opts.texi +++ b/doc/fftools-common-opts.texi @@ -59,6 +59,9 @@ Codec can handle input truncated at random locations instead of only at frame bo @item -bsfs Show available bitstream filters. + at item -colors +Show recognized color names. + @item -protocols Show available protocols. diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c index d67d31b..e701620 100644 --- a/libavutil/parseutils.c +++ b/libavutil/parseutils.c @@ -373,6 +373,24 @@ int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, return 0; } +char *av_get_color_string(char *buf, int buf_size, int color_idx) +{ + /* print header */ + if (color_idx < 0) { + snprintf(buf, buf_size, "%-32s #RRGGBB\n", "name"); + } else { + ColorEntry *color; + if (color_idx >= FF_ARRAY_ELEMS(color_table)) + return NULL; + color = &color_table[color_idx]; + snprintf(buf, buf_size, "%-32s #%02X%02X%02X\n", + color->name, + color->rgb_color[0], color->rgb_color[1], color->rgb_color[2]); + } + + return buf; +} + /* get a positive number between n_min and n_max, for a maximum length of len_max. Return -1 if error. */ static int date_get_num(const char **pp, diff --git a/libavutil/parseutils.h b/libavutil/parseutils.h index c3986af..3e3a34b 100644 --- a/libavutil/parseutils.h +++ b/libavutil/parseutils.h @@ -73,6 +73,20 @@ int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, void *log_ctx); /** + * Print in buf the string corresponding to the color with + * number color_idx, or an header if color_idx is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param color_idx the number of the pixel format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + * @return the printed string or NULL if color_idx doesn't correspond to any + * color + */ +char *av_get_color_string(char *buf, int buf_size, int color_idx); + +/** * Parses timestr and returns in *time a corresponding number of * microseconds. * -- 1.7.2.3
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/cmdutils.c b/cmdutils.c index 514ebad..549c673 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -713,6 +713,19 @@ void show_pix_fmts(void) } }
+void show_colors(void) +{ + char buf[256]; + int i; +
+ /* print header */ + fprintf(stderr, av_get_color_string(buf, sizeof(buf), -1)); + + for (i = 0; av_get_color_string(buf, sizeof(buf), i); i++) { + printf("%s", buf); + }
is it intentional to mix stderr & stdout ?
+} + int read_yesno(void) { int c = getchar(); diff --git a/cmdutils.h b/cmdutils.h index c3d8a42..191ee36 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -195,6 +195,12 @@ void show_formats(void); void show_codecs(void);
/** + * Print a listing containing all the color names supported by the + * program. + */ +void show_colors(void); + +/** * Print a listing containing all the filters supported by the * program. */ diff --git a/cmdutils_common_opts.h b/cmdutils_common_opts.h index da30997..1e3799a 100644 --- a/cmdutils_common_opts.h +++ b/cmdutils_common_opts.h @@ -6,6 +6,7 @@ { "version", OPT_EXIT, {(void*)show_version}, "show version" }, { "formats" , OPT_EXIT, {(void*)show_formats }, "show available formats" }, { "codecs" , OPT_EXIT, {(void*)show_codecs }, "show available codecs" }, + { "colors" , OPT_EXIT, {(void*)show_colors }, "show recognized color names" }, { "bsfs" , OPT_EXIT, {(void*)show_bsfs }, "show available bit stream filters" }, { "protocols", OPT_EXIT, {(void*)show_protocols}, "show available protocols" }, { "filters", OPT_EXIT, {(void*)show_filters }, "show available filters" }, diff --git a/doc/fftools-common-opts.texi b/doc/fftools-common-opts.texi index d72ca5c..5b25971 100644 --- a/doc/fftools-common-opts.texi +++ b/doc/fftools-common-opts.texi @@ -59,6 +59,9 @@ Codec can handle input truncated at random locations instead of only at frame bo @item -bsfs Show available bitstream filters.
+@item -colors +Show recognized color names. + @item -protocols Show available protocols.
diff --git a/libavutil/parseutils.c b/libavutil/parseutils.c index d67d31b..e701620 100644 --- a/libavutil/parseutils.c +++ b/libavutil/parseutils.c @@ -373,6 +373,24 @@ int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, return 0; }
+char *av_get_color_string(char *buf, int buf_size, int color_idx) +{ + /* print header */ + if (color_idx < 0) { + snprintf(buf, buf_size, "%-32s #RRGGBB\n", "name");
this would benefit from a buf_size check and maybe failure if the buffer is too short instead of returning truncated items same for the other rows except that LGTM [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Republics decline into democracies and democracies degenerate into despotisms. -- Aristotle
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach. -- FFmpeg = Forgiving and Fanciful Meaningless Portable Erroneous Governor
On 10/17/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach. -- FFmpeg = Forgiving and Fanciful Meaningless Portable Erroneous Governor
What about 16bit colors?
On date Friday 2013-10-18 09:52:48 +0000, Paul B Mahol encoded:
On 10/17/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach. -- FFmpeg = Forgiving and Fanciful Meaningless Portable Erroneous Governor
What about 16bit colors?
We don't have 16bit colors yet, we can extend it later, doing it now would be overkill. -- FFmpeg = Fancy & Fanciful Mortal Pure Everlasting Governor
On 10/18/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Friday 2013-10-18 09:52:48 +0000, Paul B Mahol encoded:
On 10/17/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach. -- FFmpeg = Forgiving and Fanciful Meaningless Portable Erroneous Governor
What about 16bit colors?
We don't have 16bit colors yet, we can extend it later, doing it now would be overkill.
Extend how?
-- FFmpeg = Fancy & Fanciful Mortal Pure Everlasting Governor _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
On date Friday 2013-10-18 12:07:04 +0000, Paul B Mahol encoded:
On 10/18/13, Stefano Sabatini <stefasab@gmail.com> wrote: [...]
What about 16bit colors?
We don't have 16bit colors yet, we can extend it later, doing it now would be overkill.
Extend how?
av_get_color16_name() or whatever. [...] -- FFmpeg = Freak & Fancy Majestic Perennial Exxagerate Gadget
On 10/18/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Friday 2013-10-18 12:07:04 +0000, Paul B Mahol encoded:
On 10/18/13, Stefano Sabatini <stefasab@gmail.com> wrote: [...]
What about 16bit colors?
We don't have 16bit colors yet, we can extend it later, doing it now would be overkill.
Extend how?
av_get_color16_name() or whatever.
That is ugly.
[...] -- FFmpeg = Freak & Fancy Majestic Perennial Exxagerate Gadget _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
On date Thursday 2013-10-17 19:06:39 +0200, Stefano Sabatini encoded:
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach.
Ping. -- FFmpeg = Fiendish & Fundamentalist Monstrous Practical Exciting Gorilla
On 10/20/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Thursday 2013-10-17 19:06:39 +0200, Stefano Sabatini encoded:
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach.
Ping.
I already commented, but perhaps you like to ignore my comments.
On date Monday 2013-10-21 07:20:55 +0000, Paul B Mahol encoded:
On 10/20/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Thursday 2013-10-17 19:06:39 +0200, Stefano Sabatini encoded:
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach.
Ping.
I already commented, but perhaps you like to ignore my comments.
"It's ugly" is hardly a useful comment. So, what about: const char *av_get_color_name(const char **bufp, const uint16_t **rgbp, int color_idx) ? -- FFmpeg = Forgiving & Fundamentalist Marvellous Political Elitarian Gadget
On 10/21/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Monday 2013-10-21 07:20:55 +0000, Paul B Mahol encoded:
On 10/20/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Thursday 2013-10-17 19:06:39 +0200, Stefano Sabatini encoded:
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote:
--- cmdutils.c | 13 +++++++++++++ cmdutils.h | 6 ++++++ cmdutils_common_opts.h | 1 + doc/fftools-common-opts.texi | 3 +++ libavutil/parseutils.c | 18 ++++++++++++++++++ libavutil/parseutils.h | 14 ++++++++++++++ 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach.
Ping.
I already commented, but perhaps you like to ignore my comments.
"It's ugly" is hardly a useful comment.
So, what about: const char *av_get_color_name(const char **bufp, const uint16_t **rgbp, int color_idx)
Color can be given in other colorspaces. But looking that this function use is quite limited I'm not motivated to think about it more.
? -- FFmpeg = Forgiving & Fundamentalist Marvellous Political Elitarian Gadget _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
On date Monday 2013-10-21 08:54:37 +0000, Paul B Mahol encoded:
On 10/21/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Monday 2013-10-21 07:20:55 +0000, Paul B Mahol encoded:
On 10/20/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Thursday 2013-10-17 19:06:39 +0200, Stefano Sabatini encoded:
On date Tuesday 2013-10-15 11:58:44 +0200, Michael Niedermayer encoded:
On Sat, Mar 12, 2011 at 01:36:05PM +0100, Stefano Sabatini wrote: > --- > cmdutils.c | 13 +++++++++++++ > cmdutils.h | 6 ++++++ > cmdutils_common_opts.h | 1 + > doc/fftools-common-opts.texi | 3 +++ > libavutil/parseutils.c | 18 ++++++++++++++++++ > libavutil/parseutils.h | 14 ++++++++++++++ > 6 files changed, 55 insertions(+), 0 deletions(-)
New patches, provide a more flexible approach.
Ping.
I already commented, but perhaps you like to ignore my comments.
"It's ugly" is hardly a useful comment.
So, what about: const char *av_get_color_name(const char **bufp, const uint16_t **rgbp, int color_idx)
Color can be given in other colorspaces. But looking that this function use is quite limited I'm not motivated to think about it more.
What this function does is to simply expose the color name definitions, which is given as RGB 8-bits per component, and I'm not even sure that 16bits per components are used for specifying standard colors (human vision won't be able to reliably distinguish them). We have already a RGB to YUV utilities (libavutil/colorspace.h) so the colorspace representation is not an issue. I will push my latest patches if I see no more comments. -- FFmpeg = Frightening and Free Mastodontic Peaceless Enchanting Glue
Le sextidi 26 vendémiaire, an CCXXII, Stefano Sabatini a écrit :
/** + * Get color name with index color_idx, as recognized by the + * av_parse_color() function.
I suggest to try to make it clearer that this functions is intended to enumerate the hardcoded color names known to the library, as opposed to, for example, convert a color into a user-readable string.
+ * + * @param bufp pointer to the address where the color name string address is written
What is the point of both returning it through the return value and a pointer?
+ * @param rgb pointer to the address where the 3-values array containing the RGB + * components is written, may be NULL
Inconsistent naming of the argument here and in the prototype, compared to the function definition "rgbp". And the description is really not clear.
+ * @param color_idx the number of the color entries, starting from 0 + * @return the color name string or NULL if color_idx is not in the array + */ +const char *av_get_color_name(const char **bufp, const uint8_t **rgb, int color_idx); + +/** * Parse timestr and return in *time a corresponding number of * microseconds. *
May I suggest: av_get_known_color_name(unsigned id, const uint8_t **rgbp); Get the name of a color from the internal table of hard-coded named colors. [in] id: index of the requested color, starting from 0 [out] rgbp: if not NULL, will point to a 3-elements array with the color value in RGB OTOH, since it only concerns hard-coded colors, I believe it very unlikely more than 8-bits will be required. But if you want more, than I suggest to go directly to 32-bits. Regards, -- Nicolas George
On date Monday 2013-10-21 11:08:17 +0200, Nicolas George encoded:
Le sextidi 26 vendémiaire, an CCXXII, Stefano Sabatini a écrit :
/** + * Get color name with index color_idx, as recognized by the + * av_parse_color() function.
I suggest to try to make it clearer that this functions is intended to enumerate the hardcoded color names known to the library, as opposed to, for example, convert a color into a user-readable string.
+ * + * @param bufp pointer to the address where the color name string address is written
What is the point of both returning it through the return value and a pointer?
+ * @param rgb pointer to the address where the 3-values array containing the RGB + * components is written, may be NULL
Inconsistent naming of the argument here and in the prototype, compared to the function definition "rgbp".
And the description is really not clear.
+ * @param color_idx the number of the color entries, starting from 0 + * @return the color name string or NULL if color_idx is not in the array + */ +const char *av_get_color_name(const char **bufp, const uint8_t **rgb, int color_idx); + +/** * Parse timestr and return in *time a corresponding number of * microseconds. *
May I suggest:
av_get_known_color_name(unsigned id, const uint8_t **rgbp);
Get the name of a color from the internal table of hard-coded named colors.
[in] id: index of the requested color, starting from 0 [out] rgbp: if not NULL, will point to a 3-elements array with the color value in RGB
OTOH, since it only concerns hard-coded colors, I believe it very unlikely more than 8-bits will be required. But if you want more, than I suggest to go directly to 32-bits.
Updated. -- FFmpeg = Faithless Fanciful Muttering Puritan Elfic Gymnast
On date Monday 2013-10-21 11:36:37 +0200, Stefano Sabatini encoded:
On date Monday 2013-10-21 11:08:17 +0200, Nicolas George encoded:
Le sextidi 26 vendémiaire, an CCXXII, Stefano Sabatini a écrit :
/** + * Get color name with index color_idx, as recognized by the + * av_parse_color() function.
I suggest to try to make it clearer that this functions is intended to enumerate the hardcoded color names known to the library, as opposed to, for example, convert a color into a user-readable string.
+ * + * @param bufp pointer to the address where the color name string address is written
What is the point of both returning it through the return value and a pointer?
+ * @param rgb pointer to the address where the 3-values array containing the RGB + * components is written, may be NULL
Inconsistent naming of the argument here and in the prototype, compared to the function definition "rgbp".
And the description is really not clear.
+ * @param color_idx the number of the color entries, starting from 0 + * @return the color name string or NULL if color_idx is not in the array + */ +const char *av_get_color_name(const char **bufp, const uint8_t **rgb, int color_idx); + +/** * Parse timestr and return in *time a corresponding number of * microseconds. *
May I suggest:
av_get_known_color_name(unsigned id, const uint8_t **rgbp);
Get the name of a color from the internal table of hard-coded named colors.
[in] id: index of the requested color, starting from 0 [out] rgbp: if not NULL, will point to a 3-elements array with the color value in RGB
OTOH, since it only concerns hard-coded colors, I believe it very unlikely more than 8-bits will be required. But if you want more, than I suggest to go directly to 32-bits.
Updated.
ping nicolas. -- FFmpeg = Forgiving and Fostering Mastering Proud Energized Geek
Le tridi 3 brumaire, an CCXXII, Stefano Sabatini a écrit :
ping nicolas.
You adopted most my suggestions, I have no further remarks on the matter. I believe you can safely assume there are no more objections to the 8-bits RGB return array. Regards, -- Nicolas George
On date Saturday 2013-10-26 12:05:58 +0200, Nicolas George encoded:
Le tridi 3 brumaire, an CCXXII, Stefano Sabatini a écrit :
ping nicolas.
You adopted most my suggestions, I have no further remarks on the matter. I believe you can safely assume there are no more objections to the 8-bits RGB return array.
Thanks, applied. -- FFmpeg = Fundamentalist and Fundamentalist Minimal Problematic Enlightening Geisha
On 10/27/13, Stefano Sabatini <stefasab@gmail.com> wrote:
On date Saturday 2013-10-26 12:05:58 +0200, Nicolas George encoded:
Le tridi 3 brumaire, an CCXXII, Stefano Sabatini a ecrit :
ping nicolas.
You adopted most my suggestions, I have no further remarks on the matter. I believe you can safely assume there are no more objections to the 8-bits RGB return array.
Thanks, applied.
In file included from ffprobe.c:2557: ./cmdutils_common_opts.h:17:45: warning: incompatible pointer types initializing 'int (*)(void *, const char *, const char *)' with an expression of type 'void (void *, const char *, const char *)' [-Wincompatible-pointer-types] { "colors" , OPT_EXIT, {.func_arg = show_colors }, "show available color names" }, ^~~~~~~~~~~
-- FFmpeg = Fundamentalist and Fundamentalist Minimal Problematic Enlightening Geisha _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
participants (5)
-
Michael Niedermayer -
Nicolas George -
Paul B Mahol -
Stefano Sabatini -
stefano.sabatini-lala@poste.it